求教高手,一个数据同步产生的问题

OKILOVE 2010-01-29 10:23:50
我们用的pda点菜程序是暂存到pda上的小sybase库中,然后利用sybase的同步脚本来同步到sqlserver服务器中的。
这些年一直用没出过问题。
最近有一个酒店用的是群集服务器,现用服务器是NODE1,备份服务器是NODE2,pda链接的都是NODE1服务器(暂时没有用虚拟的服务器名)。
昨天pda同步数据时候读服务器数据(从sqlserver读取数据)没问题,但是把数据写回到sqlserver服务器时候把错,提示“中找不到服务器 'NODE1'。请执行 sp_addlinkedserver 将该服务器添加到 sysservers。”根据网上提供的方法用脚本来解决。

select * from sys.servers
--查询到的确实是NODE2

sp_dropserver [NODE2]

GO

sp_addserver [NODE1]

GO

sp_serveroption 'NODE1','data access', 'true'

GO


但是执行,重启服务之后,又报了一个新的错误“其他会话正在使用事务的上下文。”根据:
http://topic.csdn.net/u/20100115/10/3D665083-3EF2-416B-B417-10023B7A1BF3.html
http://topic.csdn.net/u/20100111/00/B3CFF4CC-31B8-42E7-809A-CE22F8648B9B.html
中提示的原因,是由于“SQLSERVER2005不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器)”
“链接服务器的属性,居然连着本机。 ”是不是由于解决第一个问题的脚本使我把链接服务器改为本机,那本身是不是第一个问题的解决方法也不对了?
求教大家:)

...全文
70 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
OKILOVE 2010-01-29
  • 打赏
  • 举报
回复
言归正传,我是为了解决第一个问题用那个脚本,更改了服务器名称为NODE1,然后出现了第二个问题,是不是本身第一个问题的解决方法(那段脚本)就存在问题?
而且用那段脚本把服务器名称就应该改为现有的计算机名称,不就是违反了“SQLSERVER2005不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器)”吗?是不是那段脚本本身存在问题?抑或是我的情况不适合这种解决方法?
--小F-- 2010-01-29
  • 打赏
  • 举报
回复
这个脚本是我帖的 哈哈
OKILOVE 2010-01-29
  • 打赏
  • 举报
回复
多谢小F,这个脚本我看过啦,也执行了,但是还是没有解决问题,是不是我没有真正理解?
--小F-- 2010-01-29
  • 打赏
  • 举报
回复
“链接服务器的属性,居然连着本机。 ”是不是由于解决第一个问题的脚本使我把链接服务器改为本机,那本身是不是第一个问题的解决方法也不对了?

你自己链接自己就错误了
--小F-- 2010-01-29
  • 打赏
  • 举报
回复
---一种解释

查看一下该存储过程中是否有链接服务器指向本地,SQLSERVER2005不支持在分布式事务处理中存在指向本地的链接服务器(环回链接服务器)

---又一种解释

中文错误信息:此游标不包括正在修改的表,或该表不能通过此游标更新。
  英文错误信息:The cursor does not include the table being modified or the table is not updatable through the cursor.
  其原因是由于计算机名和sql server 2005的servername不一致所致。
  解决方法:
  先执行
  select @@servername
  查看数据库中的servername
  然后执行:
  sp_dropserver ’old_name’
  go
  sp_addserver ’new_name’, local
  其中old_name为select @@servername语句的结果,new_name为主机名

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧