none
确保在对发布服务器进行备份时,日志读取器代理未运行并且未在已发布的表上进行其他数据库活动。 RRS feed

  • 问题

  • 确保在对发布服务器进行备份时,日志读取器代理未运行并且未在已发布的表上进行其他数据库活动。

    数据库的复制注意事项中有以上描述,是什么原理,应该怎么操作,会有什么影响?

    2014年4月24日 7:15

答案

  • 是在SQL Server联机丛书中看到了

    目录是 复制><mshelp:link filterstring="(("ProductVers"="kbsqlserv100") OR ("DocSet"="NETFramework"))" keywords="8ad54b96-f0c4-4194-abb9-1a5d6864d025">规划和体系结构(复制)</mshelp:link> > <mshelp:link filterstring="(("ProductVers"="kbsqlserv100") OR ("DocSet"="NETFramework"))" keywords="a9610c72-fbc0-4daf-86d6-5bc94de206b3">解决方案设计注意事项(复制)</mshelp:link> > 对于事务复制有若干注意事项:

    其中有如下注意事项

    事务日志空间

    <content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">

    对于要使用事务复制发布的每个数据库,请确保已为事务日志分配了足够的空间。 已发布数据库的事务日志可能要比相同的未发布数据库的日志需要更大的空间,因为日志记录被移至分发数据库之后才会被截断。

    如果分发数据库不可用,或者日志读取器代理没有运行,则发布数据库的事务日志将继续增长。 日志不能在超过尚未传递至分发数据库的最早的已发布事务处截断。 建议将事务日志文件设置为自动增长,以便日志可以适应这些情况。 有关详细信息,请参阅 <mshelp:link filterstring="(("ProductVers"="kbsqlserv100") OR ("DocSet"="NETFramework"))" keywords="29ddac46-7a0f-4151-bd94-75c1908c89f8" tabindex="0">CREATE DATABASE (Transact-SQL)</mshelp:link> 和 <mshelp:link filterstring="(("ProductVers"="kbsqlserv100") OR ("DocSet"="NETFramework"))" keywords="15f8affd-8f39-4021-b092-0379fc6983da" tabindex="0">ALTER DATABASE (Transact-SQL)</mshelp:link>。

    建议在分发数据库上设置 sync with backup 选项,该选项可以推迟发布数据库上日志的截断,直到分发数据库中的相应事务均已备份为止。 这可导致发布数据库中产生更大的事务日志。 有关此选项的详细信息,请参阅<mshelp:link filterstring="(("ProductVers"="kbsqlserv100") OR ("DocSet"="NETFramework"))" keywords="a8afcdbc-55db-4916-a219-19454f561f9e" tabindex="0">快照复制和事务复制的备份和还原策略</mshelp:link>。

    </content>

    2014年4月28日 4:33

全部回复

  • 上面的描述应该是进行日志备份的时候的注意事项

    如果日志读取器代理正在进行读取日志记录,那么日志是不能备份到bak文件的

    你使用下面语句查看的时候会看到log_reuse_wait_desc为replicate,所以不能进行日志备份

    SELECT [log_reuse_wait],[log_reuse_wait_desc]  FROM sys.[databases]

    2014年4月24日 8:05
  • 上下文是什么?是要用备份来初始化复制吗? 


    Please Mark As Answer if it is helpful.

    2014年4月24日 9:18
  • 不是,我们的项目想用复制技术达到读写分离的目的,在研究sql server文档的时候,看到这个提示,不明白什么意思,应该注意什么
    2014年4月28日 0:32
  • 复制不能与日志备份并存吗?
    2014年4月28日 0:33
  • 当然可以并存,所以我才想问一下你是在哪里看到的这篇文章?因为要根据上下文来看这句话的意思。

    Please Mark As Answer if it is helpful.

    2014年4月28日 1:13
  • 是在SQL Server联机丛书中看到了

    目录是 复制><mshelp:link filterstring="(("ProductVers"="kbsqlserv100") OR ("DocSet"="NETFramework"))" keywords="8ad54b96-f0c4-4194-abb9-1a5d6864d025">规划和体系结构(复制)</mshelp:link> > <mshelp:link filterstring="(("ProductVers"="kbsqlserv100") OR ("DocSet"="NETFramework"))" keywords="a9610c72-fbc0-4daf-86d6-5bc94de206b3">解决方案设计注意事项(复制)</mshelp:link> > 对于事务复制有若干注意事项:

    其中有如下注意事项

    事务日志空间

    <content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5">

    对于要使用事务复制发布的每个数据库,请确保已为事务日志分配了足够的空间。 已发布数据库的事务日志可能要比相同的未发布数据库的日志需要更大的空间,因为日志记录被移至分发数据库之后才会被截断。

    如果分发数据库不可用,或者日志读取器代理没有运行,则发布数据库的事务日志将继续增长。 日志不能在超过尚未传递至分发数据库的最早的已发布事务处截断。 建议将事务日志文件设置为自动增长,以便日志可以适应这些情况。 有关详细信息,请参阅 <mshelp:link filterstring="(("ProductVers"="kbsqlserv100") OR ("DocSet"="NETFramework"))" keywords="29ddac46-7a0f-4151-bd94-75c1908c89f8" tabindex="0">CREATE DATABASE (Transact-SQL)</mshelp:link> 和 <mshelp:link filterstring="(("ProductVers"="kbsqlserv100") OR ("DocSet"="NETFramework"))" keywords="15f8affd-8f39-4021-b092-0379fc6983da" tabindex="0">ALTER DATABASE (Transact-SQL)</mshelp:link>。

    建议在分发数据库上设置 sync with backup 选项,该选项可以推迟发布数据库上日志的截断,直到分发数据库中的相应事务均已备份为止。 这可导致发布数据库中产生更大的事务日志。 有关此选项的详细信息,请参阅<mshelp:link filterstring="(("ProductVers"="kbsqlserv100") OR ("DocSet"="NETFramework"))" keywords="a8afcdbc-55db-4916-a219-19454f561f9e" tabindex="0">快照复制和事务复制的备份和还原策略</mshelp:link>。

    </content>

    2014年4月28日 4:33