如何使用 ARM 模板复制 Azure SQL 数据库
How to Copy Azure SQL Database using ARM Template
不确定 ARM 是否支持它。我只能找到 power-shell references.
您可以使用 sourceDatabaseId 属性 来引用另一个数据库。然后您可以根据要创建的数据库类型指定各种创建模式:
{
"properties": {
"createMode": "OnlineSecondary",
"sourceDatabaseId": "[resourceId('Microsoft.Sql/servers/databases', variables('sql01Name'), 'databasename')]"
}
}
您目前无法使用 ARM 模板部署 dacpac。上面的 link 使用 PowerShell 而不是 ARM。您可以使用 ARM 模板从源数据库创建数据库作为副本。
为任何 Azure 操作查找示例模板的一种简单方法是在门户中执行操作 - 在这种情况下,复制数据库 - 然后在门户中打开相应的资源组边栏选项卡,列出部署,找到刚刚提交的部署并打开它。然后从菜单栏中选择 select ViewTemplate 并检查 Template 选项卡和 Parameters 选项卡。这些向您展示了完整的模板和实际使用的参数值。然后,您可以下载模板以及随附的 Powershell 脚本。
对于数据库复制,这里是模板:
{
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"databaseName": {
"type": "string"
},
"serverName": {
"type": "string"
},
"location": {
"type": "string"
},
"createMode": {
"type": "string"
},
"sourceDatabaseId": {
"type": "string"
},
"requestedServiceObjectiveName": {
"type": "string"
}
},
"resources": [
{
"apiVersion": "2014-04-01-preview",
"location": "[parameters('location')]",
"name": "[concat(parameters('serverName'), '/', parameters('databaseName'))]",
"properties": {
"createMode": "[parameters('createMode')]",
"sourceDatabaseId": "[parameters('sourceDatabaseId')]",
"requestedServiceObjectiveName": "[parameters('requestedServiceObjectiveName')]"
},
"type": "Microsoft.Sql/servers/databases"
}
]
}
对于数据库复制createMode = 'Copy'
并确保提供格式如下的完全限定的 resourceId:
"/subscriptions/<sub-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/Servers/<server-name>/databases/<database-name>"
确保资源组名称大小写正确并且服务器名称全部小写。
不确定 ARM 是否支持它。我只能找到 power-shell references.
您可以使用 sourceDatabaseId 属性 来引用另一个数据库。然后您可以根据要创建的数据库类型指定各种创建模式:
{
"properties": {
"createMode": "OnlineSecondary",
"sourceDatabaseId": "[resourceId('Microsoft.Sql/servers/databases', variables('sql01Name'), 'databasename')]"
}
}
您目前无法使用 ARM 模板部署 dacpac。上面的 link 使用 PowerShell 而不是 ARM。您可以使用 ARM 模板从源数据库创建数据库作为副本。
为任何 Azure 操作查找示例模板的一种简单方法是在门户中执行操作 - 在这种情况下,复制数据库 - 然后在门户中打开相应的资源组边栏选项卡,列出部署,找到刚刚提交的部署并打开它。然后从菜单栏中选择 select ViewTemplate 并检查 Template 选项卡和 Parameters 选项卡。这些向您展示了完整的模板和实际使用的参数值。然后,您可以下载模板以及随附的 Powershell 脚本。
对于数据库复制,这里是模板:
{
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"databaseName": {
"type": "string"
},
"serverName": {
"type": "string"
},
"location": {
"type": "string"
},
"createMode": {
"type": "string"
},
"sourceDatabaseId": {
"type": "string"
},
"requestedServiceObjectiveName": {
"type": "string"
}
},
"resources": [
{
"apiVersion": "2014-04-01-preview",
"location": "[parameters('location')]",
"name": "[concat(parameters('serverName'), '/', parameters('databaseName'))]",
"properties": {
"createMode": "[parameters('createMode')]",
"sourceDatabaseId": "[parameters('sourceDatabaseId')]",
"requestedServiceObjectiveName": "[parameters('requestedServiceObjectiveName')]"
},
"type": "Microsoft.Sql/servers/databases"
}
]
}
对于数据库复制createMode = 'Copy'
并确保提供格式如下的完全限定的 resourceId:
"/subscriptions/<sub-id>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/Servers/<server-name>/databases/<database-name>"
确保资源组名称大小写正确并且服务器名称全部小写。