事务复制的快照对于大型数据库来说花费的时间太长

Meh*_*deh 5 replication sql-server transactional-replication

我想建立一个大型数据库(200GB)的事务复制。但是当我创建发布者并启动快照代理时,它需要很长时间并且坚持以下消息

进程正在运行,正在等待服务器的响应

在此处输入图片说明

但问题是当我看到快照文件夹的大小时,我可以看到它正在增长!但是太慢了。

在此处输入图片说明 在此处输入图片说明

你对此有什么想法吗?或任何不同的复制方式?如何找到更详细的警告或错误消息?

PS 在我的数据库中有两个图像表,它们占我数据库大小的 98%。当我不将它们包含在我的出版物中时,一切都很好。但是当我包含它们时,我将面临这个问题。

RLF*_*RLF 5

是的,通过快照初始化大型数据库可能非常缓慢且耗时。如果适合您的情况,您应该首先将数据库的副本恢复到目标计算机。

在设置订阅时选择“允许从备份文件初始化”。

由于用于设置复制的用户界面的限制,您将需要创建脚本而不是依赖 UI 工具。有一篇关于此的博客文章:

http://blogs.msdn.com/b/repltalk/archive/2010/03/16/deep-dive-on-initialize-from-backup-for-transactional-replication.aspx

来自 msdn 的帖子包括代码示例:

exec sp_addsubscription @publication = N'Repl2000', …..
    @sync_type = N'initialize with backup', @backupdevicetype='Disk',
    @backupdevicename='C:\Repl2000_RestoreThis.bak'--the last backup used to restore on the subscriber 
go
exec sp_addpushsubscription_agent …….
go
Run Code Online (Sandbox Code Playgroud)

本文还包括一些故障排除技巧。