你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 PowerShell 将 Azure SQL 托管实例数据库还原到另一个地理区域
适用于:Azure SQL 托管实例
此 PowerShell 脚本示例从远程地理区域还原 Azure SQL 托管实例数据库(异地还原)。
如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户。
注意
本文使用 Azure Az PowerShell 模块,这是与 Azure 交互时推荐使用的 PowerShell 模块。 若要开始使用 Az PowerShell 模块,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
使用 Azure Cloud Shell
Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
选项 | 示例/链接 |
---|---|
选择代码块右上角的“试用”。 选择“试用”不会自动将代码复制到 Cloud Shell。 | |
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 | |
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
若要在 Azure Cloud Shell 中运行本文中的代码,请执行以下操作:
启动 Cloud Shell。
选择代码块上的复制按钮以复制代码。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码粘贴到 Cloud Shell 会话中。
选择 Enter 运行此代码。
如果选择在本地安装并使用 PowerShell,则本教程需要 Azure PowerShell 1.4.0 或更高版本。 如果需要升级,请参阅安装 Azure PowerShell 模块。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount
来创建与 Azure 的连接。
示例脚本
# Connect-AzAccount
# The SubscriptionId in which to create these objects
$SubscriptionId = '<put subscription_id here>'
# Set the information for your managed instance
$SourceResourceGroupName = "myResourceGroup-$(Get-Random)"
$SourceInstanceName = "myManagedInstance-$(Get-Random)"
$SourceDatabaseName = "myInstanceDatabase-$(Get-Random)"
# Set the information for your destination managed instance
$TargetResourceGroupName = "myTargetResourceGroup-$(Get-Random)"
$TargetInstanceName = "myTargetManagedInstance-$(Get-Random)"
$TargetDatabaseName = "myTargetInstanceDatabase-$(Get-Random)"
Connect-AzAccount
Set-AzContext -SubscriptionId $SubscriptionId
$backup = Get-AzSqlInstanceDatabaseGeoBackup `
-ResourceGroupName $SourceResourceGroupName `
-InstanceName $SourceInstanceName `
-Name $SourceDatabaseName
$backup | Restore-AzSqlInstanceDatabase -FromGeoBackup `
-TargetInstanceDatabaseName $TargetDatabaseName `
-TargetInstanceName $TargetInstanceName `
-TargetResourceGroupName $TargetResourceGroupName
清理部署
使用以下命令删除资源组及其相关的所有资源。
Remove-AzResourceGroup -ResourceGroupName $TargetResourceGroupName
脚本说明
此脚本使用以下命令。 表中的每条命令均链接到特定于命令的文档。
命令 | 注释 |
---|---|
New-AzResourceGroup | 创建用于存储所有资源的资源组。 |
Get-AzSqlInstanceDatabaseGeoBackup | 从 Azure SQL 托管实例中的数据库获取一个或多个异地备份。 |
Restore-AzSqlInstanceDatabase | 通过异地备份在 SQL 托管实例上创建数据库。 |
Remove-AzResourceGroup | 删除资源组,包括所有嵌套的资源。 |
后续步骤
有关 PowerShell 的详细信息,请参阅 Azure PowerShell 文档。
可以在 Azure SQL 数据库 PowerShell 脚本中找到更多 Azure SQL 数据库 PowerShell 脚本示例。