软件开发的家园,编程爱好者的天地.

现在是:北京时间 2016/4/14 上午11:50:51 星期四

设为首页  |  加入收藏  |  网站地图

SQL Server 2008 数据库复制实现数据同步常见问题
发布于:第八基地 来源:互联网 作者:天堂路上 时间:2016-04-25 点击:339

操作使用的一些技巧(事务复制类型):

1. 如何修改一个已经发布的表的属性?

将发布所有订阅删除,(发布不用删除),就可以在发布属性的项目中取消表,然后就可以修改该表了,修改后,再将表加入发布内就可以了。

2. 常用的操作界面

(1) 一般都在监视器--发布项目,可以看到快照分发和订阅的即时信息。

(2) 另外一个操作地方是发布的属性,(在属性--状态里可以启动代理)。

(3) 还有一个是工具--复制--配置发布、订阅服务器和分发,需要订阅的服务器必须在这里指定授权后订阅才能成功.

============

问题:

数据库无法登陆的老问题:数据库属性-安全里面,不要选仅windows登陆,换另外一个模式。

0. 订阅一个快照发布(不是事务复制)出错,"21776 名称xxx在TransPublication集合上没有找到",在企业管理器中,将发布数据库和订阅数据库都停止或者断开,再启动,重新连接就可以订阅快照发布了.真是奇怪,有莫名其妙的问题可以尝试重启

服务器试试,有时后一台机器上可以正常控制订阅操作,而另外一台机器上却订阅操作出错,也重新连接服务器试试.

1) 一开始遇到的问题是,注册的local服务器不能用,删除后重新命名搞定。

2) SQL Server代理正在使用系统帐户,它会导致复制失败,点这个提示点确定后,本账户的选项为灰色,原来是配置发布的服务器不是本机,到本机上操作发布,就可以选"本账户"了。

3) 又遇到不能署名订阅,"不允许请求的署名订阅",明明发布和订阅服务器双方都注册了,也双方都建立了

订阅的用户帐号,原因:在这步,点注册服务器,然后不能选默认的模拟SQL登陆,而是要选"使用SQL身份验证",然后输入名称和密码。

如果始终弹出"不允许请求的署名订阅",不能进到选择登陆模式的界面,退出订阅向导,在企业管理器中,进入发布服务器,复制-右键-"配置发布、订阅服务器和分发"-订阅服务器-添加订阅服务器机器名和帐号,如果已经有了,直接确定下。再

进订阅服务器,订阅就不会显示不能署名订阅了。

以上过程可能发现明明订阅服务器名字已经在发布服务器添加了,还是出现这个问题,就一定要在订阅服务器进入发布服务器,然后添加订阅服务器的名字,为什么会这样,可能是在发布服务器指定了改订阅服务器的名字后,但订阅服务器没有刷新,可以断开一次订阅服务器和发布服务器,再来订阅,也可以解决。

4. 请求订阅已经建立好了,但订阅状态显示"正在重试", 上次动作"进程未能连接到subscriber SHD-SHD"。

原因是我安装sql后,曾经改过电脑的名字,改回SHD-SHD.(有的人是因为SQL服务器端口修改过造成)。还有可能是MS SQL Server和SQL Server Agent服务没有用域用户身份启动并运行,于是我把B加到A所在的域,并且把A的管理员用户加到B的SQLServerAgent服务的登陆用户中。

5. 但订阅状态显示"请求共享代理程序失败", "进程未能连接到distributor..."。

怀疑是订阅设置时,连接发布数据库的帐号有问题,在订阅(右键)的历史记录中查看具体的错误原因。帐号正确后,历史记录又说订阅端机器没有配置,于是全部删除订阅和发布来试,结果发布确无法删除发布,出现20015错误,原来是订阅的机器通过局域网,打开了快照的共享目录没有关闭,关闭后,成功删除发布。如果还无法删,干脆把共享的快照目录取消共享,再删,然后重新配置快照目录共享。

6. 订阅服务器上的订阅又无法删除了,提示"无法更新或删除从 MSX 服务器上发起的作业"。

这是因为:计算机更换名之后就出现这种错误,自己不能修改自己创建的作业。

解决办法:  

在msdb的sysjobs表中把originating-server中的值全部改为更改后的计算机名

update   msdb..sysjobs   set   originating_server   =   '现服务器名'

有时可以到管理-sql server代理--作业,查看更多情况和操作。

7. 全部重新创建发布和订阅成功,执行却又出现"发布内容 null"的提示。

是因为订阅服务器没有连接到分发服务器。(1) SQLSERVERAGENT没启动;(2)MS SQL Server和SQL Server Agent服务必须以域用户身份启动并运行,以上问题检查中随时注意SQLSERVERAGENT(控制面板-管理-服务)服务是否已经启动。

8. 订阅服务器已经登陆上发布服务器,但在建立订阅时看不见该服务器的发布。

是因为没有配置分发服务器,工具-复制-"配置发布、订阅服务器和分发",再检查SQLSERVERAGENT是否运行。然后再在发布属性-发布访问列表,添加订阅服务器登陆的登陆名,订阅端终于看见发布了。

9. 发布 'xxx' 的初始快照尚不可用。

保证SQLSERVERAGENT已经运行,复制=》发布内容=》发布项目mytab=》右击右侧的订阅=》重新初始化

如果还不行,复制监视器--发布服务器--xxx--发布的项目--快照,看到进程未能创建文件“\\XXZ\SQLPUB\unc”,到该文件夹重新配置sql的帐号对该文件夹权限为"完全"。

10. 订阅端产生 "快照尚不可用 发生操作系统错误 53",订阅服务器帐号访问快照文件夹出权限不够。

分配权限,还有检查防火墙,被禁止了访问。

11. 有个表无法发布,选择框显示红叉,没有主键的表无法发布。

12. 进程未能从表“[dbo].[syncobj_0x3745373834413345]”向外大容量复制。

在写 BCP 数据文件时发生 I/O 错误(源: ODBC SQL Server Driver (ODBC); 错误代码: 0)

解决方法:就是字符类型全部改为n类型的解决问题(char-nchar,varchar-nvarchar,ntext).

13、在数据发布时报如下错误信息:

在BCP数据文件中遇到意外的EOF(源:ODBC SQL Server Driver(ODBC):错误代码:S1000)

这是因为数据库中含有TEXT或nTExt或Image字段引起的,只要在某项发布属性页中选择<快照>-<快照格式>-<字符模式格式>,即可解决该问题。

上一篇:没有了
对我有帮助
(0)
0%
对我没帮助
(0)
0%
返回顶部
在线反馈
在线反馈