我的数据库一直没有更新,但是还是会每次生成93.7M的目录,按日期编号的,每个目录大小都一模一样。我理解的是只有更新才有数据啊,要不然目录会越来越大,我设置的1分钟循环,多大的硬盘都不够用
而且在这样的发布下,订阅的服务器每次都会通过网络读取这93.7M的数据去更新目的库,虽然每次更新下来等于没更新,但是浪费网络和CPU资源哦
是什么关键的地方没设置对么?

解决方案 »

  1.   

    帮助里有这么一段,没看懂为事务复制制定计划
    事务复制需要在以下方面制定计划: 事务日志空间。
    分发数据库的磁盘空间。
    要发布的各个表的主键。
    即时更新和排队更新。
    转换复制的数据。
    事务复制中的 text 和 image 数据类型。
    标识范围。
    约束和 NOT FOR REPLICATION。 
    事务日志空间
    对于将要在事务复制中发布的各个数据库,确保分配给事务日志足够的空间。已发布数据库的事务日志可能需要比同样的、未发布数据库的日志更多的空间。这是因为日志记录在移动到分发数据库之后才会被清除。如果分发数据库不可用,或者日志读取器代理未在运行,那么发布数据库的事务日志将继续增长。除非完全关闭数据库的复制,否则晚于最先发布但尚未传入分发数据库的事务日志无法被截断。建议将事务日志文件设置为自动增长,以便日志可以适应这些环境。分发数据库的磁盘空间
    如果计划创建事务发布,并使快照文件可立即为订阅服务器所用,请为分发数据库分配足够的磁盘空间,以便存储最后一次快照之后的所有事务。使快照文件可立即为订阅服务器所用,尽管这样可提高新的订阅服务器访问发布的速度,但是该选项要求分发数据库拥有更大的磁盘空间。这还意味着每当快照代理程序运行时,将会生成一个新的快照。如果不使用该选项,并不允许匿名订阅,则只有存在新的订阅时才需要生成新的快照。分发数据库立即开始收集事务,并继续保存它们,直到再次运行快照代理程序(无论以调度还是手工运行)。在下一次快照代理程序运行后,清除任务开始通过从第一个快照中删除行来清除和减小分发数据库的大小。因此,如果使用默认的调度,即每天运行一次快照代理程序,那么必须具有足够的磁盘空间以存储一天中发生的所有事务。类似地,如果计划创建事务发布并允许对发布的匿名订阅,那么必须让分发数据库拥有足够的磁盘空间以存储自上次快照后的所有事务。允许匿名订阅还意味着每当运行快照代理程序时都会生成新的快照。在以上两种情况下分配更多磁盘空间的另一个方法是:比每天运行一次(默认)更频繁地运行快照代理程序以使分发数据库中必须保留的命令较少。但是,生成快照非常消耗资源,会暂时影响性能。缩短分发保持期(在"发布服务器和分发服务器属性"对话框中)也有助于保留较少的命令,因为分发清理代理程序由分发保持期控制,并将已复制的事务从分发数据库删除。主键
    在事务复制中所有已发布的表都必须包含一个已声明的主键。通过用 Transact-SQL 语句 ALTER TABLE 为现有的表添加一个已声明的主键,可以使该表为发布做好准备。事务复制中的 text 和 image 数据类型
    在事务发布中复制 text 和 image 数据类型的过程受以下因素的影响: 支持在发布服务器上对 text 和 image 列使用 INSERT、UPDATE 和 DELETE 语句,而没有特殊考虑事项。但是,这些列不能由使用快照复制或事务复制和即时更新或排队更新订阅的订阅服务器更新。
    在用于复制的已发布表上,可以使用带 WITH LOG 选项的 WRITETEXT 和 UPDATETEXT 来复制日志记录文本操作。不支持为复制而发布的 text 或 image 列,而该复制是使用带有 WITH NO_LOG 选项的 WRITETEXT 和 UPDATETEXT 操作的复制,这是因为复制读取事务日志。
    仅当所有订户都运行 Microsoft® SQL Server™ 6.0 版或更高版本订阅服务器时,才能执行 UPDATETEXT 操作。WRITETEXT 操作将被复制为 UPDATE 语句,从而使 WRITETEXT 不但实现到 SQL Server 的复制,而且实现到 ODBC 订阅服务器的复制。(UPDATETEXT 操作仅被复制为 UPDATETEXT。)
    如果要修改多个 text 列,则不使用自定义过程,因为其它 text 列的值无日志记录。相反,将生成一个标准的 UPDATE 语句。
    可配置参数 max text repl size 控制可被复制的 text 和 image 数据的最大字节数。这样可允许支持不能处理较大 text 和 image 值的 ODBC 驱动程序和 SQL Server 实例,以及具有系统资源(虚拟内存)限制的分发服务器。当发布 text 或 image 列,并且运行超过配置限制的 INSERT、UPDATE、WRITETEXT 或 UPDATETEXT 操作时,操作将失败。
    使用 sp_configure 系统存储过程可设置 max text repl size 参数。
    当发布 text 和 image 列时,文本指针应当在与 UPDATETEXT 或 WRITETEXT 操作(并可重复读取)相同的事务内检索。例如,不要在一个事务中检索文本指针,然后却在另一个事务中使用它。它可能已移动并失效。
    另外,在获得文本指针后,不应在执行 UPDATETEXT 或 WRITETEXT 语句之前,执行任何可能改变文本指针所指向的文本位置的操作(例如更新主键)。 
    以下使用 UPDATETEXT 和 WRITETEXT 操作处理要复制数据的推荐方法:开始事务。
    获得带有可重复读取隔离的文本指针。
    在 UPDATETEXT 或 WRITETEXT 操作中使用文本指针。
    提交事务。 
    说明  如果未在同一事务中获得文本指针,则允许在发布服务器处进行修改,但更改不会发布到订阅服务器。在评估订阅服务器数据库时,需要考虑的一个重要因素是:所复制的 text 和 image 列的文本指针将在订阅服务器表上被初始化,即使它们在发布服务器上未被初始化。因此,即使被分发任务添加到订阅服务器表中的各个 text 和 image 列中没有内容,它们也至少要占用 43 字节的数据库存储空间。
      

  2.   

    什么意思,关键的地方?
    我删除了复制服务器,重新定义复制服务器,重新加了快照发布,还是一样的,现在每个表多了个msrepl_tran_version字段(以前也加,搞来搞去删了几次这个字段,就不自动加了),93.7M变成121M了,但是除了大小变大了,还是每分钟出来一个121M的目录这样应该不行吧