加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

配置SqlServer同步时常见的错误以及解决方法

发布时间:2020-12-12 13:57:41 所属栏目:MsSql教程 来源:网络整理
导读:配置SqlServer同步时常见的错误以及解决方法 常见的错误主要有五大类: 常见错误一 : 未在此实例上安装复制组件或者SqlServer复制需要有实际的服务器名称才能连接到服务器。 如图 解决方法: 首先检查当前实例名称和默认名称是否一致。在Management Studio

配置SqlServer同步时常见的错误以及解决方法

常见的错误主要有五大类:

常见错误一未在此实例上安装复制组件或者SqlServer复制需要有实际的服务器名称才能连接到服务器。

如图

解决方法:首先检查当前实例名称和默认名称是否一致。在Management Studio中新建查询,输入

Sql代码

  1. Select @@servername,serverproperty(‘servername’)

执行,如下图,看2个名称是否一样。

如果发现不一致,说明你曾经修改过计算机名称的原因。需要执行下面的命令:

Sql代码

  1. <span style="font-size: 18px;">USE master
  2. GO
  3. -- 设置两个变量
  4. DECLARE @serverproperty_servername varchar(100),
  5. @servername varchar(100)
  6. -- 取得Windows NT 服务器和与指定的 SQL Server 实例关联的实例信息
  7. SELECT @serverproperty_servername = CONVERT(varchar(100),SERVERPROPERTY('ServerName'))
  8. -- 返回运行 Microsoft SQL Server 的本地服务器名称
  9. SELECT @servername = CONVERT(varchar(100),@@SERVERNAME)
  10. -- 显示获取的这两个参数
  11. select @serverproperty_servername,@servername
  12. --如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的
  13. --删除错误的服务器名
  14. EXEC sp_dropserver @server=@servername
  15. --添加正确的服务器名
  16. EXEC sp_addserver @server=@serverproperty_servername,@local='local'
  17. </span>


执行完后,重新启动sqlServer主服务:右键服务器——>"重新启动"即可。

常见错误二:在执行分布式事务时,在sql server 2005下收到如下错误:链接服务器"xxxxxxx"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "没有活动事务"。消息 7391,级别 16,状态 2,过程 xxxxx,第 16 行

无法执行该操作,因为链接服务器 "xxxxx" 的 OLE DB 访问接口 "SQLNCLI" 无法启动分布式事务。

解决方法:其实如果你按照配置说明,将所有的权限都已经放开的话,是不会出现这个问题的。如果有,你需要检查一下几项:

  1. 双方启动MSDTC服务
    MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(Distributed Transaction Coordinator)服务。

打开“控制面板----管理工具――组件服务”,以此打开“组件服务――计算机”,在“我的电脑”上点击右键,启动MSDTC服务

  1. MSDTC需要做如下几个设置

①在安全配置窗口中做如下设置选中“网络DTC访问

②在客户端管理中选中“允许远程客户端”“允许远程管理

③在事务管理通讯中选“允许入站”“允许出站”“不要求进行验证

④保证DTC登陆账户为:NT AuthorityNetworkService

  1. HOST文件中是否都添加订阅服务器和发布服务器名以及对应ip地址。格式应如下

该文件位于:C:WINDOWSsystem32driversetc

另外需要注意一点:host文件为系统文件,一般为隐藏状态,如果你发现此目录没有该文件,注意将文件夹属性设置为显示所有隐藏文件即可。

常见错误三:链接服务器"192.168.2.10"的 OLE DB 访问接口 "SQLNCLI" 返回了消息 "该伙伴事务管理器已经禁止了它对远程/网络事务的支持”错误

解决方法:这个错误很明显就是没有开启对MSDTC服务的网络访问,设置方法如下

打开“控制面板----管理工具――组件服务”,以此打开“组件服务――计算机”,在“我的电脑”上点击右键---属性,找到MSDTC选项卡。点击“安全性配置”,按如下配置

重启MSDTC服务即可。

常见错误四:无法为可更新的订阅设置发布服务器登录名。可能需要使用 sp_link_publication 直接在订阅服务器计算机上设置它。

解决方法:这个错误是最常见的错误了,解决方法就是执行一两句Sql语句即可

Sql代码

  1. sp_link_publication [publisher],[ publisher_db],publication,security_mode,login,password,[ distributor]
  2. sp_link_publication [‘发布服务器名称’],[‘发布数据库名称’],发布名称,安全模式(整数),登录名,登录密码,[‘分发服务器名称’]

示例:

Sql代码

  1. sp_link_publication [server],[table],TestCopy,2,YH,123456,[server]
  2. sp_addlinkedserver [server]

(如果是初次发布,会提示发布服务器名称不存在,那么首先使用这句话,里面的server代表的是发布服务器的名称)

常见错误五: sql server 2005发布时提示'dbo.sysmergepublications'无效的解决办法

sysmergepublications 系统表位于发布数据库中,它包含合并发布的信息,

执行下面的sql命令即可解决,其中DataBaseName要换成你提示的数据库名称。

Sql代码

  1. Use [DataBaseName]
  2. EXEC sp_removedbreplication
  3. go ?

?

还有一种方法可以解决“无法启动分布式事务”

1、运行?regedt32,浏览至?HKEY_LOCAL_MACHINESoftwareMicrosoftMSDTC。
添加一个?DWORD?值?TurnOffRpcSecurity,值数据为?1。
2、重启MS?DTC服务。
3、打开“管理工具”的“组件服务”。
??a.?浏览至"启动管理工具"。?
??b.?选择"组件服务"。?
??c.?展开"组件服务"树,然后展开"我的电脑"。?
??d.?右键单击"我的电脑",然后选择"属性"。?
???在?MSDTC?选项卡中,确保选中了下列选项:?
网络?DTC?访问
网络管理
网络事务
XA?事务
另外,"DTC?登录帐户"一定要设置为"NT?AuthorityNetworkService"。?
4、重启MS?DTC服务。
5、再次运行?regedt32,浏览至?HKEY_LOCAL_MACHINESoftwareMicrosoftMSDTC,然后删除?TurnOffRpcSecurity?项。在查看一下sp_serveroption命令有鏈接服務器的選項說明

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读