Azure SQL 托管实例链接功能的最佳做法
适用于:Azure SQL 托管实例
本文概述了使用 Azure SQL 托管实例链接功能时的最佳做法。 Azure SQL 托管实例链接功能将托管在任意位置的 SQL Server 连接到 SQL 托管实例,使用户能够准实时地将数据复制到云。
注意
链接的某些功能已正式发布,还有一些当前为预览版。 查看先决条件了解详细信息。
定期创建日志备份
链接功能使用基于 Always On 可用性组的分布式可用性组技术复制数据。 使用分布式可用性组进行的数据复制基于复制事务日志记录。 只有在将事务日志记录复制到次要副本上的数据库之后,才能从 SQL Server 主实例上的数据库中截断这些记录。 如果网络连接问题导致事务日志记录复制速度缓慢或受阻,则日志文件将在主实例上持续增长。 增长速度取决于工作负载的强度和网络速度。 如果主实例上存在长时间的网络连接中断和繁重工作负载,则日志文件可能会占用所有可用存储空间。
为了最大程度地降低日志文件增长导致 SQL Server 主实例空间不足的风险,请确保定期在 SQL Server 主实例上进行数据库日志备份。 当 SQL 托管实例是主实例时,无需执行额外的操作,因为日志备份操作已自动执行。 定期在 SQL Server 主实例上创建日志备份能使数据库更灵活地应对计划外日志增长事件。 只有在完成对 SQL 托管实例的初始种子设定之后 (即,SQL 托管实例上的数据库副本不再处于“正在恢复”状态),才应执行第一次数据库日志备份。 考虑使用 SQL Server 代理作业来计划每日日志备份任务。
可以使用 Transact-SQL (T-SQL) 脚本来备份日志文件,例如本部分提供的示例。 请将示例脚本中的占位符替换为你的数据库名称、备份文件的名称和路径以及说明。
若要备份事务日志,请使用 SQL Server 上的以下示例 Transact-SQL (T-SQL) 脚本:
-- Execute on SQL Server
-- Take log backup
BACKUP LOG [<DatabaseName>]
TO DISK = N'<DiskPathandFileName>'
WITH NOFORMAT, NOINIT,
NAME = N'<Description>', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 1
使用以下 Transact-SQL (T-SQL) 命令检查 SQL Server 上的数据库使用的日志空间:
-- Execute on SQL Server
DBCC SQLPERF(LOGSPACE);
查询输出类似于以下示例数据库 tpcc
:
在此示例中,数据库使用了 76% 的可用日志空间,而绝对日志文件大小约为 27 GB (27,971 MB)。 操作阈值可能因工作负载而异。 在前面的示例中,事务日志大小和日志使用百分比通常指示,应该进行事务日志备份以截断日志文件并释放一些空间,或者应该进行更频繁的日志备份。 也可能指示事务日志截断被未结事务阻止。 有关排除 SQL Server 中事务日志故障的更多信息,请参阅排除完整事务日志故障 (SQL Server Error 9002)。 有关排查 Azure SQL 托管实例中的事务日志问题的详细信息,请参阅排查 Azure SQL 托管实例的事务日志错误。
添加启动跟踪标志
在 SQL Server 中,将两个跟踪标志(-T1800
和 -T9567
)添加为启动参数后,可以优化通过链接进行数据复制的性能。 有关详细信息,请参阅启用启动跟踪标志。