我做的合并复制出现大问题,请高手指教啊!!!

kundy 2003-08-22 03:56:58
我使用的是win server 2000 + sqlserver 2000.在本的数据库上建立了合并复制,出版服务器和订阅服务器在同一台机器上。

所作的合并复制将一个数据库中的6张表发布到另一个数据库中。

快照代理程序是每天每分钟运行一次。

问题是:在sqlserver 安装目录下的repldata目录下建立的unc目录中将会每隔一分钟创建一个文件夹,内含合并复制所需要的文件,一共6*6=36个文件,大小约1M。从前天到今天已经占用我1.7G硬盘啦!!!

请高手指点如何解决这个问题!!!
...全文
31 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
kundy 2003-08-28
  • 打赏
  • 举报
回复
感谢大侠z5wjz(z5wjz)的指点

虽然没有完全解决这个问题,我也非常感谢你们的帮助!

谢谢 ^_^
z5wjz 2003-08-24
  • 打赏
  • 举报
回复
配置出版物时请指定@immediate_sync 参数,
sp_addpublication
[@independent_agent = ] 'independent_agent'

指定是否有用于发布的单独的分发代理程序。independent_agent 的数据类型为 nvarchar(5),默认设置为 FALSE。如果是 true,则表示有用于该发布的独立分发代理程序。如果是 false,则表示该发布使用共享的分发代理程序,每对发布服务器数据库/订阅服务器数据库都有一个共享的代理程序。

[@immediate_sync = ] 'immediate_synchronization'

指定是否每次快照代理程序运行时都创建发布的同步文件。immediate_synchronization 的数据类型为 nvarchar(5),默认设置为 FALSE。如果是 true,则表示每次快照代理程序运行时都创建或重新创建同步文件。如果在创建订阅之前已完成快照代理程序,则订阅服务器能够立即获得同步文件。新订阅获得最后一次执行快照代理程序所生成的最新同步文件。要想使 immediate_synchronization 为 true,independent_agent 必须为 true。如果是 false,则表示只有存在新订阅时才创建同步文件。订阅服务器不能在订阅后接收同步文件,直到快照代理程序启动并完成。


kundy 2003-08-24
  • 打赏
  • 举报
回复
z5wjz(z5wjz):

谢谢你的指点。

但是,我查阅了参考帮助,发现:sp_addpublication 用于快照复制和事务复制!

而且,我该如何修改这些参数呢?谢谢指教!


happydreamer 2003-08-23
  • 打赏
  • 举报
回复
你的处理太频繁了,试试把间隔时间放长一点看看有没有这样的问题
z5wjz 2003-08-23
  • 打赏
  • 举报
回复
配置好复制后有一个代理是用来清除快照及一些无用的东西的,代理的名称我忘了,我的机器上现在没有SQL,不过你可以到作业里查找一下,通过名字大概就分出来,然后把那个代理的运行时间改得小一些,它默认每两天运行一次的.
kundy 2003-08-23
  • 打赏
  • 举报
回复
zhaoloudy(小宝):

呵呵,没想到兄弟你也遇到这个问题啊。

我现在必须要用合并复制,因为这样可以做到互相发布修改结果的。

而事务复制是单向的!
zhaoloudy 2003-08-23
  • 打赏
  • 举报
回复
兄弟。我以前也遇到过和你一样的问题。后来不用快照改为用事务复制的方式就没有这个烦恼了。
kundy 2003-08-23
  • 打赏
  • 举报
回复
z5wjz(z5wjz):

你可以查查看,在sqlserver 安装目录下的repldata目录下建立的unc目录中将会每隔一分钟创建一个文件夹,内含合并复制所需要的文件。

该文件夹不会被删除的,随时间增长,硬盘空间会减少的!
kundy 2003-08-23
  • 打赏
  • 举报
回复
z5wjz(z5wjz):

"合并代理工作成功后,快照即被删除"在我的机器上好像没有实现啊?!

我的机器上也是:
快照代理的运行时间设置为:每一分钟一次,从0:00:00至23:59:59
合并代理也设置为:每一分钟一次, 从0:00:30至23:59:59

但是快照并没有清除!
z5wjz 2003-08-23
  • 打赏
  • 举报
回复
配置合并复制时会生成两个复制代理程序:快照代理和合并代理,快照代理工作后会产生磁盘文件(快照),合并代理工作成功后,快照即被删除.所以只要将合并代理的运行时间也调整为每一分钟一次或每几分钟一次就OK了.
我的机器上将快照代理的运行时间设置为:每一分钟一次,从0:00:00至23:59:59
合并代理也设置为:每一分钟一次, 从0:00:30至23:59:59
z5wjz 2003-08-23
  • 打赏
  • 举报
回复
等一下,SQLSERVER安装中....
kundy 2003-08-23
  • 打赏
  • 举报
回复
我怀疑问题出现在快照代理程序上。

我查看sql server联机帮助,有如下内容:

快照代理程序
快照代理程序每次运行时,都会检查是否新增了任何新订阅。如果没有新订阅,则不创建任何新的脚本或数据文件。如果创建发布时启用了"立即创建第一个快照"选项,则每次快照代理程序运行时都创建新的架构和数据文件。

我想如果将"立即创建第一个快照"选项失效,该如何操作呢???
kundy 2003-08-23
  • 打赏
  • 举报
回复
z5wjz(z5wjz):
你说的是杂项代理程序中的分发清理代理程序吧?

分发清理代理程序将重复事务从分发数据库中删除。默认情况下,此代理程序为快照和事务发布每隔 72 小时运行一次。如果订阅在最大分发保持期内未进行同步处理,则分发清理代理程序可能停用订阅。 我将它的属性更改为每天每一分钟调度一次,发现没有效果。它的功能是清除distribution数据库中的重复事务,好像没有清除快照文件的功能啊。
zjcxc 2003-08-23
  • 打赏
  • 举报
回复
不用这么频率的处理吧?

合并复制可以设置为在需要时才执行的.
TaoGeGe 2003-08-23
  • 打赏
  • 举报
回复
在解決之前,先手工刪

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧