开发者社区> 龙轩8023> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 常见的错误主要有五大类:  常见错误一:未在此实例上安装复制组件或者SqlServer复制需要有实际的服务器名称才能连接到服务器。 如图    解决方法:首先检查当前实例名称和默认名称是否一致。
+关注继续查看

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

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

如图 

 

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

Select @@servername,serverproperty(‘servername’)

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

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

USE master
        GO
        -- 设置两个变量
        DECLARE @serverproperty_servername  varchar(100), 
                @servername    varchar(100)
        -- 取得Windows NT 服务器和与指定的 SQL Server 实例关联的实例信息
        SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'))
        -- 返回运行 Microsoft SQL Server 的本地服务器名称
        SELECT @servername = CONVERT(varchar(100), @@SERVERNAME)
        -- 显示获取的这两个参数
        select @serverproperty_servername,@servername
        --如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的
        --删除错误的服务器名
        EXEC sp_dropserver @server=@servername
        --添加正确的服务器名
        EXEC sp_addserver @server=@serverproperty_servername, @local='local'
        


执行完后,重新启动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 Authority\NetworkService

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

 

该文件位于:C:\WINDOWS\system32\drivers\etc

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

 

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

 

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

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

重启MSDTC服务即可。

 

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

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

sp_link_publication [publisher],[ publisher_db], publication, security_mode, login, password,[ distributor]

sp_link_publication [‘发布服务器名称’],[‘发布数据库名称’], 发布名称,安全模式(整数), 登录名,登录密码,[‘分发服务器名称’]

示例: 

 

sp_link_publication [server],[table],TestCopy,2,YH,123456,[server]

sp_addlinkedserver [server]  

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

 

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

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

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

Use [DataBaseName]
EXEC sp_removedbreplication 
go

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SQL SERVER出现大量一致性错误的解决方法
原文:SQL SERVER出现大量一致性错误的解决方法   如果DBCC CHECKDB发现了比较少的一致性错误,可以使用   DBCC UPDATEUSAGE(DatabaseName,"dbo.ObjectName"); 语句逐个针对表或索引中的每个分区更正行、已用页、保留页、叶级页和数据页的计数。
919 0
SQL Server同步复制问题排查方法
原文:SQL Server同步复制问题排查方法 1、应用复制的命令时在订阅服务器上找不到该行 解决方法:用系统存储过程sp_browsereplcmds(返回分发数据库中存储的可读版本复制命令的结果集,并将其用作诊断工具。
1015 0
常用的sql server规范
原文:常用的sql server规范 常见的字段类型选择 1.字符类型建议采用varchar/nvarchar数据类型 2.金额货币建议采用money数据类型 3.科学计数建议采用numeric数据类型 4.
962 0
sql server 语句
use master go create database libraryDB go use libraryDB go ---方法一 create table student (    SNO int primary key,    SName char(10) ) ----方法二 ...
586 0
Sql Server 常用函数
1、CONVERT() 函数 CONVERT(data_type(length),data_to_be_converted,style) data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。 可以使用的 style 值:点击打开链接 2、DATE
1000 0
Sql Server 常用函数
1、CONVERT() 函数 CONVERT(data_type(length),data_to_be_converted,style) data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。 可以使用的 style 值:点击打开链接 2、DATE
863 0
SQL Server功能性语句
1 注释符注释是指程序代码中不执行的文本字符串,是对程序的说明,可以提高程序的可读性,使程序代码更易于维护,一般嵌入在程序中并以特殊的标记显示出来。在Transact-SQL中,注释可以包含在批处理、存储过程、触发器中,有两种类型的注释符:  --:这是ANSI标准的两个连字符组成的注释符,用于单行注释。
621 0
sqlserver 语句
select count(*) from mobi_ad_mobile_user  计数
442 0
+关注
龙轩8023
熟悉javaee开发,有多年支付领域的开发经验。关注开源~ httpclientUtil开源项目创建者。https://github.com/Arronlong
214
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载