迁移 SQL 服务器
本文介绍如何迁移到 SQL Server 基础结构,以便在 Azure Stack Hub 资源提供程序数据库上托管 Azure 应用程序服务,包括 appservice_hosting 和 appservice_metrics。
备份应用程序服务机密
准备迁移时,必须备份初始部署使用的应用程序服务密钥。 请遵循以下步骤,使用管理员门户备份应用程序服务机密:
以服务管理员身份登录到 Azure Stack Hub 管理员门户。
浏览到“应用程序服务”->“机密”。
选择“下载机密”。
准备好下载机密时,选择“保存”,并将应用程序服务机密 (SystemSecrets.JSON) 文件存储到安全位置。
从当前服务器备份应用程序服务数据库
若要还原应用程序服务,需要 Appservice_hosting 和 Appservice_metering 数据库备份。 建议使用 SQL Server 维护计划或 Azure 备份服务器,以确保定期安全地备份和保存这些数据库。 但是,可以使用任何方法来确保定期创建 SQL 数据库备份。
若要在登录到 SQL Server 时手动备份这些数据库,请使用以下 PowerShell 命令:
$s = "<SQL Server computer name>"
$u = "<SQL Server login>"
$p = read-host "Provide the SQL admin password"
sqlcmd -S $s -U $u -P $p -Q "BACKUP DATABASE appservice_hosting TO DISK = '<path>\hosting.bak'"
sqlcmd -S $s -U $u -P $p -Q "BACKUP DATABASE appservice_metering TO DISK = '<path>\metering.bak'"
注意
如果需要备份 SQL AlwaysOn 数据库,请遵照这些说明操作。
成功备份所有数据库之后,请将 .bak 文件连同应用程序服务机密信息一起复制到安全位置。
在新的生产就绪 SQL Server 实例上还原应用程序服务数据库
应用程序服务 SQL Server 数据库应在生产就绪的 SQL Server 实例上还原。
准备 SQL Server 实例来托管应用程序服务数据库后,请使用以下步骤从备份还原数据库:
使用管理员权限登录到要托管已恢复应用程序服务数据库的 SQL Server。
从以管理员权限运行的命令提示符,使用以下命令还原应用程序服务数据库:
sqlcmd -U <SQL admin login> -P <SQL admin password> -Q "RESTORE DATABASE appservice_hosting FROM DISK='<full path to backup>' WITH REPLACE" sqlcmd -U <SQL admin login> -P <SQL admin password> -Q "RESTORE DATABASE appservice_metering FROM DISK='<full path to backup>' WITH REPLACE"
验证两个应用程序服务数据库是否均已成功还原,然后退出 SQL Server Management Studio。
迁移 SQL Server
在 Azure Stack Hub 管理员门户中,导航到“网络安全组”,然后查看 ControllersNSG 网络安全组。
默认情况下,所有应用程序服务基础结构角色都会禁用远程桌面。 将“Inbound_Rdp_2289”规则操作修改为“允许”访问。
导航到包含应用程序服务资源提供程序部署的资源组。 默认情况下,资源组以 AppService.<region> 格式命名。
连接到 CN0-VM。
打开管理员 PowerShell 会话并运行
net stop webfarmservice
。针对所有其他控制器重复步骤 3 和 4。
返回到 CN0-VM 远程桌面会话,然后将机密文件复制到控制器。
在管理员 PowerShell 会话中运行以下代码:
Restore-AppServiceStamp -FilePath <local secrets file> -OverrideDatabaseServer <new database server> -CoreBackupFilePath <filepath>
- 出现确认密钥值的提示。 按 Enter 键继续,或关闭 PowerShell 会话以取消。
cmdlet 完成后,将删除自定义辅助角色层中的所有辅助角色实例,并在下一步中重新添加这些实例。
在同一 PowerShell 会话或新的管理 PowerShell 会话中,运行以下 PowerShell 脚本。 该脚本会检查所有关联的虚拟机规模集并执行对应的操作,包括重新添加自定义辅助角色层的实例:
Restore-AppServiceRoles
在同一会话中或新的管理 PowerShell 会话中,运行
net start webfarmservice
命令。对所有其他控制器重复以上步骤。
在 Azure Stack 管理员门户中,导航回 ControllersNSG 网络安全组。
修改“Inbound_Rdp_3389”规则以拒绝访问。