SQLServer分布式事务配置.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL Server分布式事物配置 适用环境操作系统:windows200数据库:sqlserver200问题现象在执行分布式事务时,在sqlserver2005下收到如下错误:消息7391,级别16,状态2,过程xxxxx,第16行无法执行该操作,因为链接服务器xxxxx的OLEDB访问接口SQLNCLI无法启动分布式事务。 解决方案双方启动MSDTC服务MSDTC服务提供分布式事务服务,如果要在数据库中使用分布式事务,必须在参与的双方服务器启动MSDTC(DistributedTransactionCoordinator)服务。打开双方135端口MSDTC服务依赖于RPC(RemoteProcedureCall(RPC))服务,RPC使用135端口,保证RPC服务启动,如果服务器有防火墙,保证135端口不被防火墙挡住。使用“telnetIP135”命令测试对方端口是否对外开放。也可用端口扫描软件(比如AdvancedPortScanner)扫描端口以判断端口是否开放。保证链接服务器中语句没有访问发起事务服务器的操作在发起事务的服务器执行链接服务器上的查询、视图或存储过程中含有访问发起事务服务器的操作,这样的操作叫做环回(loopback),是不被支持的,所以要保证在链接服务器中不存在此类操作。在事务开始前加入set xact_abort ON语句对于大多数OLEDB提供程序(包括SQL Server),必须将隐式或显示事务中的数据修改语句中的XACT_ABORT设置为ON。唯一不需要该选项的情况是在提供程序支持嵌套事务时。MSDTC设置打开“管理工具――组件服务”,以此打开“组件服务――计算机”,在“我的电脑”上点击右键。在MSDTC选项卡中,点击“安全配置”按钮。在安全配置窗口中做如下设置:选中“网络DTC访问”在客户端管理中选中“允许远程客户端”“允许远程管理”在事务管理通讯中选“允许入站”“允许出站”“不要求进行验证”保证DTC登陆账户为NTAuthority\NetworkService 4.链接服务器和名称解析问题建立链接sqlserver服务器,通常有两种情况:第一种情况,产品选”sqlserver”EXECsp_addlinkedserver@server=linkServerName,@srvproduct=NSQLServer 这种情况,@server(linkServerName)就是要链接的sqlserver服务器名或者ip地址。第二种情况,访问接口选“MicrosoftOLEDBProviderSqlServer”或“SqlNativeClient”EXECsp_addlinkedserver@server=linkServerName,@srvproduct=,@provider=SQLNCLI,@datasrc=sqlServerName 这种情况,@datasrc(sqlServerName)就是要链接的实际sqlserver服务器名或者ip地址。Sqlserver数据库引擎是通过上面设置的服务器名或者ip地址访问链接服务器,DTC服务只通过服务器名地址访问链接服务器,所以要保证数据库引擎和DTC都能通过服务器名或者ip地址访问到链接服务器。数据库引擎和DTC解析服务器的方式不太一样,下面分别叙述.1数据库引擎 第一种情况的@server或者第二种情况的@datasrc设置为ip地址时,数据库引擎会根据ip地址访问链接服务器,这时不需要做名称解析。第一种情况的@server或者第二种情况的@datasrc设置为sqlserver服务器名时,需要做名称解析,就是把服务器名解析为ip地址。有两个办法解析服务器名:一是在sqlserver客户端配置中设置一个别名,将上面的服务器名对应到链接服务器的ip地址。二是在“C:\WINDOWS\system32\drivers\etc\hosts”文件中增加一条记录:xxx.xxx.xxx.xxx服务器名作用同样是把服务器名对应到链接服务器的ip地址。.2 DTC 不管哪一种情况,只要@server设置的是服务器名而不是ip地址,就需要进行名称解析,办法同上面第二种办法,在hosts文件中增加解析记录,上面的第一种办法对DTC不起作用。 如果@server设置的是ip地址,同样不需要做域名解析工作。. 远程服务器上的名称解析 分布式事务的参与服务器是需要相互访问的,发起查询的服务器要根据机器名或ip查找远程服务器的,同样远程服务器也要查找发起服务器,远程服务器通过发起服务器的机器名查找服务器,所以要保证远程服务器能够通过发起服务器的机器名访问到发起服务器。一般的,两个服务器在同一网段机器名能就行很好的解析,但是也不保证都能很好的解析,所以比较保险的做法是:在

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档