迁移 SQL 服务器

本文介绍如何迁移到 SQL Server 基础结构,以便在 Azure Stack Hub 资源提供程序数据库上托管 Azure 应用程序服务,包括 appservice_hosting 和 appservice_metrics。

备份应用程序服务机密

准备迁移时,必须备份初始部署使用的应用程序服务密钥。 请遵循以下步骤,使用管理员门户备份应用程序服务机密:

  1. 以服务管理员身份登录到 Azure Stack Hub 管理员门户。

  2. 浏览到“应用程序服务”->“机密”。

  3. 选择“下载机密”。

    显示如何在 Azure Stack Hub 管理员门户中下载机密的屏幕截图。

  4. 准备好下载机密时,选择“保存”,并将应用程序服务机密 (SystemSecrets.JSON) 文件存储到安全位置。

    显示如何在 Azure Stack Hub 管理员门户中保存机密的屏幕截图。

从当前服务器备份应用程序服务数据库

若要还原应用程序服务,需要 Appservice_hostingAppservice_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 实例来托管应用程序服务数据库后,请使用以下步骤从备份还原数据库:

  1. 使用管理员权限登录到要托管已恢复应用程序服务数据库的 SQL Server。

  2. 从以管理员权限运行的命令提示符,使用以下命令还原应用程序服务数据库:

    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"
    
  3. 验证两个应用程序服务数据库是否均已成功还原,然后退出 SQL Server Management Studio。

迁移 SQL Server

  1. 在 Azure Stack Hub 管理员门户中,导航到“网络安全组”,然后查看 ControllersNSG 网络安全组。

  2. 默认情况下,所有应用程序服务基础结构角色都会禁用远程桌面。 将“Inbound_Rdp_2289”规则操作修改为“允许”访问。

  3. 导航到包含应用程序服务资源提供程序部署的资源组。 默认情况下,资源组以 AppService.<region> 格式命名。

  4. 连接到 CN0-VM

  5. 打开管理员 PowerShell 会话并运行 net stop webfarmservice

  6. 针对所有其他控制器重复步骤 3 和 4。

  7. 返回到 CN0-VM 远程桌面会话,然后将机密文件复制到控制器。

  8. 在管理员 PowerShell 会话中运行以下代码:

    Restore-AppServiceStamp -FilePath <local secrets file> -OverrideDatabaseServer <new database server> -CoreBackupFilePath <filepath>
    
    1. 出现确认密钥值的提示。 按 Enter 键继续,或关闭 PowerShell 会话以取消。
  9. cmdlet 完成后,将删除自定义辅助角色层中的所有辅助角色实例,并在下一步中重新添加这些实例。

  10. 在同一 PowerShell 会话或新的管理 PowerShell 会话中,运行以下 PowerShell 脚本。 该脚本会检查所有关联的虚拟机规模集并执行对应的操作,包括重新添加自定义辅助角色层的实例:

    Restore-AppServiceRoles
    
  11. 在同一会话中或新的管理 PowerShell 会话中,运行 net start webfarmservice 命令。

  12. 对所有其他控制器重复以上步骤。

  13. 在 Azure Stack 管理员门户中,导航回 ControllersNSG 网络安全组。

  14. 修改“Inbound_Rdp_3389”规则以拒绝访问。

后续步骤

备份 Azure Stack Hub 上的应用程序服务还原 Azure Stack Hub 上的应用程序服务