2016-10-04 27 views
0

我试图创建一个ARM模板,该部署主活动地理复制副数据库的主数据库,这两个数据库都是现在的基本层。我使用“createMode”创建辅助数据库:“OnlineSecondary”,而“sourceDatabaseId”是已创建的主数据库,但是我收到错误“此功能不适用于所选数据库版本(基本)”。我认为从2016年4月起,所有数据库层都可以使用主动地理复制功能?我将无法使用ARM模板进行设置吗?如何使用天蓝色资源管理器模板部署带有地理复制的SQL数据库

我的模板的相关部分是:

{ 
       "name": "[variables('sqlDatabaseName')]", 
       "type": "databases", 

       "location": "East US", 
       "apiVersion": "2014-04-01-preview", 
       "dependsOn": [ 
        "[concat('Microsoft.Sql/servers/', ,variables('sqlServerName'), '-east')]" 
       ], 
       "tags": { 
        "displayName": "SqlDatabase" 
       }, 
       "properties": { 
        "createMode": "OnlineSecondary", 
        "sourceDatabaseId": "[resourceId('Microsoft.Sql/servers/databases', concat(variables('sqlServerName'), '-west'), variables('sqlDatabaseName'))]", 
        "collation": "[parameters('deployinfo_sqlDatabaseCollation')]", 
        "edition": "[parameters('deployinfo_sqlDatabaseEdition')]", 
        "maxSizeBytes": "1073741824", 
        "requestedServiceObjectiveName": "[parameters('deployinfo_sqlDatabaseRequestedServiceObjectiveName')]" 
       } 
      } 

更新 - 增加了主数据库资源JSON

这是主要的数据库资源块:

{ 
       "name": "[variables('sqlDatabaseName')]", 
       "type": "databases", 
       "location": "West US", 
       "apiVersion": "2014-04-01-preview", 
       "dependsOn": [ 
        "[concat('Microsoft.Sql/servers/', variables('sqlServerName'), '-west')]" 
       ], 
       "tags": { 
        "displayName": "SqlDatabase" 
       }, 
       "properties": { 
        "collation": "[parameters('deployinfo_sqlDatabaseCollation')]", 
        "edition": "[parameters('deployinfo_sqlDatabaseEdition')]", 
        "maxSizeBytes": "1073741824", 
        "requestedServiceObjectiveName": "[parameters('deployinfo_sqlDatabaseRequestedServiceObjectiveName')]" 
       } 
      } 

回答

0

找到了答案。事实证明,如果你没有指定你所需要的sql server的版本,它就会激活一个不支持活动地理复制的旧版本。我需要将SQL Server声明为版本12.0才能使复制正常工作。

0

是。 Geo-Replication也可以配置为基本层,是的,您可以使用ARM模板进行配置。我目前正在研究完全相同的事情,并且可以成功完成。对于地域复制我的数据库模板看起来像这样在第一次尝试:

{ 
"type": "databases", 
"name": "SecondaryDB", 
"apiVersion": "2014-04-01-preview", 
"location": "West US", 
"tags": { 
    "displayName": "SqlDatabase" 
}, 
"properties": { 
    "createMode": "OnlineSecondary", 
    "sourceDatabaseId": "[resourceId('Microsoft.Sql/servers/databases', 'primaryserver01', 'PrimaryDB')]", 
    "collation": "SQL_Latin1_General_CP1_CI_AS", 
    "edition": "Basic", 
    "maxSizeBytes": "1073741824", 
    "requestedServiceObjectiveName": "Basic" 
    }, 
"dependsOn": ["[concat('Microsoft.Sql/servers/', 'secondaryserver01')]"]} 

我最好的猜测是,这个问题是在传递到模板尤其传递到“编辑”和“requestedServiceObjectiveName”的参数参数。

+0

感谢您的回复,很高兴知道其他人已经配置好了。我将“Basic”传递给“edition”和“requestedServiceObjectiveName”。 –

+0

除此之外几乎所有东西看起来都一样。您还可以发布用于创建主数据库的模板吗?它可能有助于调试问题。 –

+0

我继续前进,并添加主分贝部分。我不得不重新创建它,因为我已经将地理复制部分从我的模板中拉出来了,但它基本上是我以前所拥有的。两个DB都被传递了相同的参数,用于编辑和requestedServiceObjectiveName。这个过程中有不同的部分,或许在powershell脚本中,它决定了api的一个版本? –

相关问题