Развертывание вторичной базы данных SQL Server Azure без ElasticPool - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь развернуть базу данных sql azure с эластичным пулом и вторичным без эластичного пула, но получаю эту ошибку:

 {
  "status": "Failed",
  "error": {
    "code": "ResourceDeploymentFailure",
    "message": "The resource operation completed with terminal provisioning state 'Failed'.",
    "details": [
      {
        "code": "TargetElasticPoolDoesNotExist",
        "message": "The operation could not be completed because elastic pool 'mypool' does not exist on a target server 'myserverreplica'."
      }
    ]
  }
}

Это шаблон, который я использую (яДля простоты удалены параметры)

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        ....
    },
    "variables": {
        "sqlServerHostNameReplica": "[concat(parameters('sqlServerHostName'),'replica')]",
        "collation": "SQL_Latin1_General_CP1_CI_AS"
    },
    "resources": [
        {
            "type": "Microsoft.Sql/servers",
            "apiVersion": "2015-05-01-preview",
            "name": "[parameters('sqlServerHostName')]",
            "location": "[resourceGroup().location]",
            "tags": {
                "displayName": "SqlServer Primary",
                "Environment": "[parameters('environment')]"
            },
            "kind": "v12.0",
            "properties": {
                "administratorLogin": "[parameters('sqlServerAdminLogin')]",
                "administratorLoginPassword": "[parameters('sqlServerAdminLoginPassword')]",
                "version": "12.0"
            },
            "resources": [
                {
                    "type": "firewallRules",
                    "apiVersion": "2015-05-01-preview",
                    "name": "AllowAllWindowsAzureIps",
                    "dependsOn": [
                        "[resourceId('Microsoft.Sql/servers', parameters('sqlServerHostName'))]"
                    ],
                    "properties": {
                        "startIpAddress": "0.0.0.0",
                        "endIpAddress": "0.0.0.0"
                    }
                }
            ]
        },
        {
            "type": "Microsoft.Sql/servers",
            "apiVersion": "2015-05-01-preview",
            "name": "[variables('sqlServerHostNameReplica')]",
            "location": "[parameters('sqlServerReplicaLocation')]",
            "tags": {
                "displayName": "SqlServer Replica",
                "Environment": "[parameters('environment')]"
            },
            "kind": "v12.0",
            "properties": {
                "administratorLogin": "[parameters('sqlServerAdminLogin')]",
                "administratorLoginPassword": "[parameters('sqlServerAdminLoginPassword')]",
                "version": "12.0"
            },
            "resources": [
                {
                    "type": "firewallRules",
                    "apiVersion": "2015-05-01-preview",
                    "name": "AllowAllWindowsAzureIps",
                    "dependsOn": [
                        "[resourceId('Microsoft.Sql/servers', variables('sqlServerHostNameReplica'))]"
                    ],
                    "properties": {
                        "startIpAddress": "0.0.0.0",
                        "endIpAddress": "0.0.0.0"
                    }
                }
            ],
            "dependsOn": [
                "[resourceId('Microsoft.Sql/servers', parameters('sqlServerHostName'))]",
                "[resourceId('Microsoft.Sql/servers/elasticPools', parameters('sqlServerHostName'), parameters('sqlServerElasticPoolName'))]",
                "poolDBs"
            ]
        },
        {
            "type": "Microsoft.Sql/servers/elasticPools",
            "name": "[concat(parameters('sqlServerHostName'), '/', parameters('sqlServerElasticPoolName'))]",
            "apiVersion": "2014-04-01",
            "location": "[resourceGroup().location]",
            "tags": {
                "displayName": "ElasticPool Primary",
                "Environment": "[parameters('environment')]"
            },
            "properties": {
                "edition": "[parameters('sqlServerElasticPoolEdition')]",
                "dtu": "[parameters('sqlServerElasticPoolDtu')]",
                "databaseDtuMin": "[parameters('sqlServerDbDtuMin')]",
                "databaseDtuMax": "[parameters('sqlServerDbDtuMax')]"
            },
            "dependsOn": [
                "[resourceId('Microsoft.Sql/servers', parameters('sqlServerHostName'))]"
            ]
        },
        {
            "type": "Microsoft.Sql/servers/databases",
            "apiVersion": "2017-03-01-preview",
            "name": "[concat(parameters('sqlServerHostName'),'/', parameters('sqlServerDatabases')[copyIndex()].Name)]",
            "location": "[resourceGroup().location]",
            "tags": {
                "displayName": "Databases Primary",
                "Environment": "[parameters('environment')]"
            },
            "copy": {
                "name": "poolDBs",
                "count": "[length(parameters('sqlServerDatabases'))]"
            },
            "dependsOn": [
                "[resourceId('Microsoft.Sql/servers', parameters('sqlServerHostName'))]",
                "[resourceId('Microsoft.Sql/servers/elasticpools', parameters('sqlServerHostName'), parameters('sqlServerElasticPoolName'))]"
            ],
            "kind": "v12.0,user",
            "properties": {
                "collation": "[variables('collation')]",
                "maxSizeBytes": 268435456000,
                "catalogCollation": "[variables('collation')]",
                "zoneRedundant": false,
                "requestedServiceObjectiveName": "ElasticPool",
                "elasticPoolId": "[resourceId('Microsoft.Sql/servers/elasticpools', parameters('sqlServerHostName'), parameters('sqlServerElasticPoolName'))]"
            },
            "resources": [
            ]
        },
        {
            "condition": "[parameters('sqlServerDatabases')[copyIndex()].Replica]",
            "type": "Microsoft.Sql/servers/databases",
            "apiVersion": "2017-03-01-preview",
            "name": "[concat(variables('sqlServerHostNameReplica'),'/', parameters('sqlServerDatabases')[copyIndex()].Name)]",
            "location": "[parameters('sqlServerReplicaLocation')]",
            "tags": {
                "displayName": "Databases Replica",
                "Environment": "[parameters('environment')]"
            },
            "copy": {
                "name": "replicaDBs",
                "count": "[length(parameters('sqlServerDatabases'))]"
            },
            "dependsOn": [
                "[resourceId('Microsoft.Sql/servers/databases/', parameters('sqlServerHostName'),parameters('sqlServerDatabases')[copyIndex()].Name)]",
                "[resourceId('Microsoft.Sql/servers', variables('sqlServerHostNameReplica'))]"
            ],
            "kind": "v12.0,user",
                "North Europe"
            "properties": {
                "createMode": "OnlineSecondary",
                "sourceDatabaseId": "[resourceId('Microsoft.Sql/servers/databases/', parameters('sqlServerHostName'),parameters('sqlServerDatabases')[copyIndex()].Name)]",
                "edition": "Standard",
                "status": "Online",
                "collation": "[variables('collation')]",
                "maxSizeBytes": 268435456000,
                "requestedServiceObjectiveName": "S1",
                "containmentState": 2
            },
            "resources": []
        }
    ]
}

Из этой ссылки (мой акцент)

Каждая вторичная база данных может отдельно участвовать в пуле эластичных ресурсов или не быть ни в каком эластичном бассейне вообще .Выбор пула для каждой вторичной базы данных является отдельным и не зависит от конфигурации любой другой вторичной базы данных (первичной или вторичной).Каждый эластичный пул содержится в одном регионе, поэтому несколько вторичных баз данных в одной и той же топологии никогда не смогут совместно использовать эластичный пул.

Единственный способ получить эту работу - создать эластичныйпул с тем же именем на вторичном сервере, но в документации предполагается, что вторичный без пула должен быть возможен.

Я неправильно читаю документацию?

Спасибо

...