使用日志重播服务 (LRS) 进行迁移
日志重播服务 (LRS) 是一种工具,可用于实现数据库从本地 SQL Server 到云端 SQL 托管实例的自定义迁移。 它使用日志传送技术,在需要更好地进行控制、几乎不能忍受任何停机时间或无法使用 Azure 数据迁移服务的情况下非常有用。
LRS 可以直接与 PowerShell、CLI cmdlet 或 API 一起使用,以手动生成和协调将数据库迁移到 SQL 托管实例的过程。 考虑使用 LRS 的一些原因包括:
- 更好地控制数据库迁移项目
- 几乎无法容忍迁移直接转换时的停机时间
- 无法在环境中安装 DMS 可执行文件
- 缺少对数据库备份的文件访问
- 无法打开从环境到 Azure 的网络端口
了解迁移类型
LRS 可使用两种迁移模式。
“模式” | 说明 | 推荐用于 | 备份链可用性 |
---|---|---|---|
自动完成 | 在还原最后一个备份文件时自动完成迁移 | 被动工作负载 | 必须提前提供整个备份链 |
连续 | 持续扫描新的备份文件并将其还原,从而实现数据同步 | 主动工作负载 | 可以在迁移期间添加备份链 |
无论采用哪种模式,都应计划在 30 天内完成迁移,因为 LRS 作业将在此时间后自动取消。
确保迁移过程安全
若要运行 LRS,必须具有以下 Azure 基于角色的访问控制 (RBAC) 角色之一:订阅所有者、SQL 托管实例参与者或具有 Microsoft.Sql/managedInstances/databases/*
权限的自定义角色。
需要 Azure Blob 存储帐户,并将其作为 SQL Server 实例和 SQL 托管实例之间备份文件的中间存储。 若要将 Azure Blob 存储与防火墙配合使用,需要另一个配置。 必须使用 MI 子网委派和存储服务终结点将SQL 托管实例子网添加到存储帐户的虚拟网络防火墙规则。 此外,可以使用 SAS 令牌或托管标识来访问 Azure Blob 存储帐户,但不能同时使用这两者。
提高备份和还原性能
可以将完整备份和差异备份拆分为多个文件,而不是使用单个文件,以提高备份和还原性能。 这是因为可以并行读取或写入多个文件,从而减少完成备份或还原操作所需的时间。
此外,启用备份压缩有助于提高网络传输速度。 压缩备份的大小较小,这意味着其通过网络传输所需的时间较短。 这在将大型备份传输到 Azure 或从 Azure 传输时特别有用。
强烈建议启用 CHECKSUM
进行备份,即使不需要它也是如此。 SQL 托管实例在不使用 CHECKSUM
的情况下对备份执行完整性检查,这可能会增加还原数据库所需的时间。 通过启用 CHECKSUM
,可以加快还原操作的速度。