两个都是win2003server装sql2005x64版的,两台机都是1433端口,不在一个局域网内,相距很远,上千公里。但是网络连接还是挺快的,现在要把一台sqlserver中的一个库复制到另一个,保持同步,我筠选择是的事务复制。
现在我身边的这台机,简称sqlserver1,当成发布机,远程机,是sqlserver2,是订阅机。
如前所述,我现在吐血了,事情的经过是事这样的:
在本地机新建发布,正常,再新建订阅(推送订阅)正常,但是打开复制监视器,老提示有错误:进程无法连接上subscriber。我本地机和远程机sqlagent服务都已经建了一个独立用户(加入管理员组了),并且sqlserver 配置管理器改成此账号运行了。另外我也把发布服务器上的快照目录改成//XXXX/sqlrepldata这样的目录形式了,并且也把目录安全设置中加上了刚建的账号的全部控制权限了,但是这一切都没用,还是提示连不上subscripber,但是我本机明明是可以连上远程机的,因为2台机已经互相注册过了。本地机可以直接打开远程机的数据库。而且这2台机都是用别名进行注册的。后来想推送不行,我就在远程机上进行请求订阅,还是不行。在本地机新建发布,正常,发远程机建订阅(请求订阅),也正常。但是就是查看同步状态时,老是提示什么: 由于出现操作系统错误 53,进程无法读取文件“\\xxxx\MssqlReplData\unc\xxxxxxx.pre”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20143)
获取帮助: http://help/MSSQL_REPL20143
找不到网络路径。
(源: MSSQL_REPL,错误号: MSSQL_REPL53) 这个\\xxxx\\mssqlrepldata这样的共享就是在网上找了N多解决方法以后自已照做的,结果根本没用,因为这些人老是提到一个就是说必须要在同一个域中,问题是我2台sqlserver不在一个域中,所以不明白为何要搞什么共享。实在蛋疼,实验结果也是一样,根本没用。还是出错。
后来杂七杂八的还出现过一些错误:
已以用户 xxxx 的身份执行。 客户端没有所需的特权 总之就是一点,就是无法复制。我就想不通ms把这个复制搞的这么复杂干什么,就算你搞复杂了,你难道不能把说明写的详细一点嘛。例如一定要指定说明2台sqlserver都不能改端口,我前面就是因为有一台sqlserver为了防止攻击,改过了1433,结果死活建不了订阅,后来改成1433就好了,能建订阅了,但是还是出错。在我看来,复制明明就该很简单,2台sqlserver,只要能通信,就该能复制啊。你不能把全部流程都写出来吗?哪一条不满足为何不让大家一看就知道呢,非要搞这么垃圾的一大堆设置出来折腾人。唉。累的吐血。想看微软的帮助文件,结果还没看几分钟,就给转的眼花潦乱。 当年sql2000的时代,我也配置过复制,当时也能配置成功,现在为何就不行了呢,当时我记得是在局域网里配置的。现在变成公网就不行了吗?我两台机都是公网ip。又不是一个内网一个外网。
请各位sql达人给点提示呢,多谢了。
现在我身边的这台机,简称sqlserver1,当成发布机,远程机,是sqlserver2,是订阅机。
如前所述,我现在吐血了,事情的经过是事这样的:
在本地机新建发布,正常,再新建订阅(推送订阅)正常,但是打开复制监视器,老提示有错误:进程无法连接上subscriber。我本地机和远程机sqlagent服务都已经建了一个独立用户(加入管理员组了),并且sqlserver 配置管理器改成此账号运行了。另外我也把发布服务器上的快照目录改成//XXXX/sqlrepldata这样的目录形式了,并且也把目录安全设置中加上了刚建的账号的全部控制权限了,但是这一切都没用,还是提示连不上subscripber,但是我本机明明是可以连上远程机的,因为2台机已经互相注册过了。本地机可以直接打开远程机的数据库。而且这2台机都是用别名进行注册的。后来想推送不行,我就在远程机上进行请求订阅,还是不行。在本地机新建发布,正常,发远程机建订阅(请求订阅),也正常。但是就是查看同步状态时,老是提示什么: 由于出现操作系统错误 53,进程无法读取文件“\\xxxx\MssqlReplData\unc\xxxxxxx.pre”。 (源: MSSQL_REPL,错误号: MSSQL_REPL20143)
获取帮助: http://help/MSSQL_REPL20143
找不到网络路径。
(源: MSSQL_REPL,错误号: MSSQL_REPL53) 这个\\xxxx\\mssqlrepldata这样的共享就是在网上找了N多解决方法以后自已照做的,结果根本没用,因为这些人老是提到一个就是说必须要在同一个域中,问题是我2台sqlserver不在一个域中,所以不明白为何要搞什么共享。实在蛋疼,实验结果也是一样,根本没用。还是出错。
后来杂七杂八的还出现过一些错误:
已以用户 xxxx 的身份执行。 客户端没有所需的特权 总之就是一点,就是无法复制。我就想不通ms把这个复制搞的这么复杂干什么,就算你搞复杂了,你难道不能把说明写的详细一点嘛。例如一定要指定说明2台sqlserver都不能改端口,我前面就是因为有一台sqlserver为了防止攻击,改过了1433,结果死活建不了订阅,后来改成1433就好了,能建订阅了,但是还是出错。在我看来,复制明明就该很简单,2台sqlserver,只要能通信,就该能复制啊。你不能把全部流程都写出来吗?哪一条不满足为何不让大家一看就知道呢,非要搞这么垃圾的一大堆设置出来折腾人。唉。累的吐血。想看微软的帮助文件,结果还没看几分钟,就给转的眼花潦乱。 当年sql2000的时代,我也配置过复制,当时也能配置成功,现在为何就不行了呢,当时我记得是在局域网里配置的。现在变成公网就不行了吗?我两台机都是公网ip。又不是一个内网一个外网。
请各位sql达人给点提示呢,多谢了。
解决方案 »
- 我想在一个表中增加一个不能为空的字段,为什么不行呢?
- 怎樣判斷SQL SERVER2000中TABLE的行記錄鎖定
- 让一个字段(如dt1)的数值都减去一个固定的值(如10),SQL怎么写?
- vs2008 未在本地计算机上注册OraOLEDB.Oracle.1
- Help!
- varchar(max)在游标中使用的问题
- 请问这个关联查询地SQL语句怎样写?
- 怎么把jpg图像文件的内容存到SQL Server image字段中并正常显示
- 上帝救救我!!! DTS
- 请教:能够升级ODBC驱动吗?如何得到ODBC驱动程序?
- 一对多数据插入问题
- SQl Server连接问题 使用内网IP连不上数据库,使用计算机用户名能连上数据库
nnd.我这个目录已经设为:everyone都可以完全空制了,管理员组和新建的那个账号都是完全空制了,怎么可能还是无法找到路径呢,我已经出离气愤了。