MSSQL2005数据库复制

MSSQL2005数据库复制时,出现的一个错误。

错误消息:
合并进程无法将快照传递给订阅服务器。如果使用 Web 同步,则合并进程可能还无法创建或写入消息文件。进行故障排除时,请使用详细的历史日志记录来重新启动同步,并指定要写入的输出文件。(源:MSSQL_REPL,错误号: MSSQL_REPL-2147201001)
获取帮助: http://help/MSSQL_REPL-2147201001
进程无法向表“”dbo”.”searu””进行大容量复制。 (源: MSSQL_REPL,错误号: MSSQL_REPL20037)
获取帮助: http://help/MSSQL_REPL20037
成批发送失败 (源: MSSQLServer,错误号: 0)
获取帮助: http://help/0
链接服务器 ‘(null)’ 的 OLE DB 访问接口’STREAM’ 返回了对列 ‘[!BulkInsert].address’ 无效的数据。(源:MSSQLServer,错误号: 7339)
获取帮助: http://help/7339
若要获取详细说明初始化订阅表时所遇到的错误的错误文件,请执行在下面显示的 bcp 命令。有关该 bcp 实用工具及其支持的选项的详细信息,请参阅 BOL。 (源: MSSQLServer,错误号: 20253)
获取帮助: http://help/20253
bcp”searu”.”dbo”.”searu”in”\\172.16.0.23\d$\Sqlpub\unc\hr$searu_sqlpub\20110921100773\searu_nh_25.bcp” -e “errorfile” -t”\n\n” -r”\n\n” -m10000 -Ssearu\searu -T -w (源: MSSQLServer,错误号: 20253)
获取帮助: http://help/20253

解决方法:
【SQL Server 配置管理器】–>“SQL Server 服务”–>右击 SQL Server ()–>“属性”–>“高级”–>“启动参数”–>添加“;-T4808”

MSSQL2005数据库复制

重启SQL Server服务–>查询分析器中执行“DBCC tracestatus”,返回如下结果则成功:
TraceFlag   Status   Global   Session
1  4808       1       1       0

MSSQL2005数据库复制

配置MSSQL2005复制遇到的问题和一些可能未注意的细节:
a、sql server agent服务这个不用说;
b、防火墙防病毒软件阻止了共享文件的写权限,开放1433端口;
c、使用到的数据库登录名未映射获取相应权限;
d、如果安装数据库实例之后更改过计算机名的解决方法:
执行下面的语句,完成后重新启动SQL服务
if serverproperty(‘servername’) <> @@servername
begin
declare @server sysname
set @server = @@servername
exec sp_dropserver @server = @server
set @server = cast(serverproperty(‘servername’) as sysname)
exec sp_addserver @server = @server , @local = ‘LOCAL’
end
e、错误信息:违反了Primary Key约束’PK_SeaRu’。不能在对象’dbo.SeaRu’中插入重复键。
源: MSSQLServer,错误号: 2627
解决方法:发布时数据库数据被执行插入或修改动作,将该发布快照重新运行即可。
f、能ping通ip,ping不通计算机名,可以修改$windows$\system32\drivers\etc\hosts
ps、我碰到的问题就是上面的那个错误提示了,害我重做了好几次……

MSSQL复制配置过程:发布–>分发–>订阅
新建Windows-Administrators用户sqlcopy;
新建共享文件夹sqlpub,sqlcopy有完全控制权限;
SQLSERVERAGENT服务使用sqlcopy帐户运行;
MSSQL实例安全性设置为混合验证;
*在各连接端新建别名;
*在发布服务器与订阅服务器上互相注册;
跟着向导走……