在当前正在复制的数据库中,我想停止复制(停止日志读取器进程)一段时间,但我想继续对同一个数据库进行日志备份。
日志备份是否会释放日志以供重复使用,还是日志读取器任务会保持原样,以便执行复制以将事务复制到分发数据库?所有这些都假设日志的空间可用于日志增长。我认为,标记为复制但尚未分发的事务日志中剩余的内容不会被覆盖,但我想验证这一点。
如果是这样,当我重新启动日志读取器进程时,事务将被写入分发数据库,然后日志将继续像过去一样被处理并适当缩小。
答案1
日志备份不会释放日志以供重复使用。发布数据库中事务日志中已标记为复制的事务只有在成功写入分发数据库后才会被取消标记。只有这样,日志的该部分才能被标记为重复使用。
从您停止日志读取器代理的那一刻起,您很可能会注意到一些事务日志增长,其中 log_reuse_wait_desc 是 REPLICATION。
例如:
SELECT name, log_reuse_wait_desc FROM sys.databases
最初,log_reuse_wait_desc 可能是 LOG_BACKUP,但是在执行日志备份之后,如果日志读取器代理没有运行,则 log_reuse_wait_desc 将为 REPLICATION。