【SQL SERVER】链接数据库“无法启动分布式事务”的问题及解决

  1. 检查网络,是否有防火墙,关闭防火墙或开放135端口。
  2. 数据库服务器属性设置,勾选红框标记位置:
    【SQL SERVER】链接数据库“无法启动分布式事务”的问题及解决_第1张图片
  3. 运行->输入comexp.msc,打开组件服务,右键本地DTC,需要勾选红框位置选项。
    【SQL SERVER】链接数据库“无法启动分布式事务”的问题及解决_第2张图片
    【SQL SERVER】链接数据库“无法启动分布式事务”的问题及解决_第3张图片
  4. 链接服务器属性设置,确保红框位置是true:
    【SQL SERVER】链接数据库“无法启动分布式事务”的问题及解决_第4张图片
  5. 运行->输入services.msc,打开服务,保证Distributed Transaction Coordinator服务开启
    【SQL SERVER】链接数据库“无法启动分布式事务”的问题及解决_第5张图片
  6. 如果上述4点均正确配置,仍然报错,则可能是因为两台服务器的域不互相信任,参考 hb_gx
    C:/WINDOWS/system32/drivers/etc/hosts,在系统目录下找到这个隐藏的hosts系统文件,在文件的末尾加上对方的IP地址和主机名,如果服务器是集群的还要加上cluster的地址和虚拟IP地址。
    136.16.25.79 GAOSHENG_Cluster
    136.16.25.40 GAOSHENG_V1
    136.16.25.80 GAOSHENG_DB1
    第一个是Cluster主机的IP和主机名,第二个是虚拟的IP和主机名,第三个才是真实地址,加上前两个地址是为了保证服务器宕机以后,Cluster做了故障转移LinkServer还能正常使用。如果不是集群服务器只需要第三个真实地址就行了,这样双方就能互相信任,正常使用分布式事务了。注意这个hosts文件两边都要配置的,配置的是对方的IP地址和文件名。

你可能感兴趣的:(数据库)