澳门新葡亰网址下载MSDTC问题集

by admin on 2020年1月28日

前些天在对系统表sysusers进行删减顾客的操作时,现身了上面包车型大巴失实:

少年老成、链接服务器的 OLE DB 访问接口 “SQLNCLI” 无法起动分布式事务。

重视原文作:本文转发自

 难点现象

澳门新葡亰网址下载,在试行遍布式事务时,在sql server 二〇〇五下收受如下错误:

链接服务器”xxxxxxx”的 OLE DB 访问接口 “SQLNCLI” 重返了音信”未有挪动专门的学业。”。

消息 7391,级别 16,状态 2,过程 xxxxx,第 16 行

没辙推行该操作,因为链接服务器 “xxxxx” 的 OLE DB 访谈接口 “SQLNCLI”
不或许起动分布式事务。

在sql server 二零零三下收受如下错误:

该操作未能实践,因为 OLE DB 提供程序 ‘SQ英雄结盟EDB’ 无法起动分布式事务。

[OLE/DB provider returned message: 新业务无法注册到钦命的事体微处理器中。
]

OLE DB 错误追踪[OLE/DB Provider ‘SQLOLEDB’
ITransactionJoin::JoinTransaction returned 0x8004d00a]。

 建设方案

  1. 两岸运营MSDTC服务(运转形式:允许net start msdtc命令)
    MSDTC服务提供遍及式事务服务,假诺要在数据库中央银行使遍及式事务,必需在加入的相互服务器运转MSDTC(Distributed
    Transaction Coordinator)服务。

  2. 开发双边135端口(展开药方式:运转相应的服务就能够)
    MSDTC服务注重于RPC(Remote Procedure Call
    (RPC卡塔尔国)服务,RPC使用135端口,保险RPC服务运营,假诺服务器有防火墙,有限支撑135端口不被防火墙挡住。使用“telnet
    IP 135 ”命令测量检验对方端口是或不是门户开放。也可用端口扫描软件(譬如Advanced
    Port Scanner)扫描端口以咬定端口是或不是开放。

  3. 管教链接服务器中语句没有访谈发起事务服务器的操作
    在倡导事务的服务器推行链接服务器上的询问、视图或存款和储蓄进度中包蕴访谈发起事务服务器的操作,那样的操作叫做环回(loopback),是不被扶助的,所以要确认保证在链接服务器中空中楼阁这里类操作。

  4. 在作业开端前行入set xact_abort ON语句
    对于大部分 OLE DB 提供程序(满含 SQL
    Server),必须将隐式或出示事务中的数据改善语句中的 XACT_ABORT 设置为
    ON。独一不需求该接收的景色是在提供程序帮忙嵌套事务时。

  5. MSDTC设置
    展开“处理工科具――组件服务”,以此展开“组件服务――Computer”,在“笔者的微管理机”上点击右键。在MSDTC选项卡中,点击“安全结构”开关。

  在平安结构窗口中做如下设置:

  • 选中“网络DTC访问”。
  • 在客商端管住中当选“允许远程客商端”“允许远程管理”。
  • 在事务管理通信中选“允许入站”“允许出站”“不必要开展表明”。
  • 保障DTC登陆账户为:NT AuthorityNetworkService
  1. 链接服务器和名称深入深入分析难点
    建立链接sql server服务器,日常有两种状态:

 第生龙活虎种意况,付加物选”sql server”

  EXEC sp_addlinkedserver

    @server=’linkServerName’,

    @srvproduct = N’SQL Server’

这种气象,@server
(linkServerName)便是要链接的sqlserver服务器名恐怕ip地址。

 第三种景况,访问接口选“Microsoft OLE DB Provider Sql Server”或“Sql
Native Client”

  EXEC sp_addlinkedserver

    @server=’ linkServerName ‘,

    @srvproduct=”,

    @provider=’SQLNCLI’,

    @datasrc=’sqlServerName’

这种地方,@datasrc(sqlServerName)正是要链接的骨子里sqlserver服务器名可能ip地址。

Sql
server数据库引擎是因而地点安装的服务器名或者ip地址访谈链接服务器,DTC服务也是通过服务器名或许ip地址访谈链接服务器,所以要保障数据库引擎和DTC都能透过服务器名可能ip地址访谈到链接服务器。

数据库引擎和DTC解析服务器的章程不太黄金时代致,下边分不要讲述

6.1 数据库引擎
率先种景况的@server也许第三种情形的@datasrc设置为ip地址时,数据库引擎会依照ip地址访谈链接服务器,这时候没有必要做名称深入解析。

先是种景况的@server或许第三种情状的@datasrc设置为sql
server服务器名时,供给做名称分析,正是把服务器名剖判为ip地址。

有七个主意深入分析服务器名:

一是在sql
server客商端配置中设置多少个别名,将方面包车型大巴劳动器名对应到链接服务器的ip地址。

二是在“C:WINDOWSsystem32driversetchosts”文件中扩展一条记下:

xxx.xxx.xxx.xxx 服务器名

意义同样是把劳务器名对应到链接服务器的ip地址。

6.2 DTC
随意哪生龙活虎种情景,只要@server设置的是劳务器名并不是ip地址,就需求实行名称拆解深入分析,办法同地点第三种办法,在hosts文件中追加解析记录,上边的第大器晚成种艺术对DTC不起功能。

如果@server设置的是ip地址,相近无需做域名剖析专门的职业。

 

骨子里在设置MSDTC安全那部分,允许远程顾客端这些能够不勾选,但最首要的是上边那一步,在事务管理通信中选“允许入站”“允许出站”“不要求开展求证”,在windows2000中暗中同意的是选的率先项须求对双边开展认证,作者碰着的动静,把那几个改进来就不会再报错了。别的上面包车型地铁不行登陆客商只好用极度network
service,用其他在sqlserver里就能够说msdtc不可用。

系统安装达成了,今后大家最早对她张开设置。

未启用对系统目录的超过常规规更新。系统助理馆员必得重新配置 SQL Server
以允许这种操作。

二、select * into、drop、Truncate Table是无法在链接中央银行使的(涉及到更权限)

刚安装完结的系统是未有密码的,大家用root直接登陆进去。
# sysinstall
对系统举办安装。
选择【Configure】进入
【Root Password】设置root密码。
【Networking】选用【sshd】启用ssh远程登陆,那样大家就能够在终极上对系统举办设置了,
不用在VMware里面来回切换,方便!
 
慎选【Exit】退出设置分界面。
系统互联网设置
安装前,能够先查看一些网卡号
# ifconfig -a
lnc0:
flags=108843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,NEEDSGIANT>
mtu 1500
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu
1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
 
# ee /etc/rc.conf
加入:
ifconfig_lnc0=”inet 192.168.10.20 netmask 255.255.255.0″ #
IP地址和子网掩码
defaultrouter=”192.168.10.10″ # 私下认可网关
hostname=”www.rd.bj” # 机器名称
 
# ee /etc/hosts
加入:
192.168.10.20     www.rd.bj   # 将IP和机械名做映射
 
# ee /etc/resolv.conf
加入:
nameserver 127.0.0.1
 
好了,基本的互连网设置已经成功了,
我们reboot一下机器让设置生效。接着大家就足以在终极上操作了。
 
安顿SSH服务,指标是让root客户能够登陆。(因为那是八个试验性质的系统,所以让root登入,借使是分娩系列大概要幸免这么做,能够用个权力比较小的顾客登陆,用su转到root。
# ee /etc/ssh/sshd_config
将PermitRootLogin设置成yes
将UseDNS设置成no,指标是明确命令禁止DNS查询,那样做SSH登陆的时候会异常的快。
将UsePAM设置成yes
# /etc/rc.d/sshd restart       #重启ssh服务
上述的配备是应用密码的方法登入的,
那对于二个实验系统的话是不曾怎么关联的。但万大器晚成用于生产类别,安全隐患依然相当的大,在此间,笔者做一点补偿,使用密钥认证的诀窍登陆种类。
 
率先,小编选用的SSH终端工具为:SecureCRT,能够用她来临盆公钥。
 
 
接下来依照向导生成所需的公文,密钥类型选取【DSA】。请记住你的在那进程中输入的通畅短语(其实就是你以往登入的时候要输入的,就一定于您自身设置的贰个密码)。
本条向导实现之后,会转移多个文本,暗中认可是Identity和Identity.pub。
 
前几天上马对服务器进行配置,有了上面密码情势登陆的底工,我们先是将Identity.pub上盛传服务器,这里我们可以依附另三个工具
SecureFx,她和SecureCRT同盟的不得了好。上传的目录为/root/.ssh/(因为我们要用root的报到,所以要上传到root的家目
录),要是家目录里面没有.ssh目录,能够和睦建二个。
# mkdir /root/.ssh
将上传上来的公钥转变来Openssl格式的公钥,并导入到authorized_keys文件中
# ssh-keygen -X -f Identity.pub >> authorized_keys
# chmod 0640 authorized_keys     #仅同意属主读写
# rm -rf Identity.pub
# ee ee /etc/ssh/sshd_config
将PubkeyAuthentication设置成yes   
将AuthorizedKeysFile .ssh/authorized_keys前的#号去掉
# /etc/rc.d/sshd restart       #重启ssh服务
 
好了,以往在回到SecureCRT终端,重新登陆一向下探底视,她会唤醒您输入通行短语。SSH到此就安插甘休了,作者想行使密钥认证的议程应该能够使我们轻装上阵一点。
 
网络难题解决了,接下去,大家将在跟系统进行升高和编写翻译内核了,首先大家来对系统进行进级。
系统的升官(src和ports)
要对系统晋级,大家一定要接收到二个软件:cvsup,大家得以应用光盘安装(在其次张光盘里),那样节省时间。
# sysinstall
选择【Configure】进入
【Packages】 -> 【CD/DVD】 -> 【devel】
选中 [X] cvsup-without-gui-16.1h_2
再选拔【OK】,再次回到到上少年老成分界面,选用【Install】,等待安装达成。
设置完CVSUP后 默许是装在了/usr/local/bin 下的 cvsup
# rehash
 
cvsup装好后,我们就足以来提高一下大家系统的src和ports目录了。
# cd /usr/share/examples/cvsup
# ls
cvs-supfile                 # 升级CVSUP自身的
doc-supfile                # 操作系统文书档案进级文件
gnats-supfile             # FreeBSD BUG数据库
ports-supfile              # Ports进级文件
stable-supfile             # 牢固版的FreeBSD晋级
standard-supfile        # 最新版的FreeBSD晋级
 
我们首先对ports进行升高,配置ports-supfile文件
 
# ee ports-supfile
 
改进一下一些:
*default host=cvsup.cn.FreeBSD.org    
#CVS服务器,接纳一个快点服务器节省时间
*default base=/usr                             #
cvsup选择文件的贮存目录
*default prefix=/usr
*default release=cvs tag=. 
*default delete use-rel-suffix
# 更新任何Ports,那么些要留意一下,暗中认可值就是它,将会更新任何Ports,
# 若只必要立异某些Ports目录,在后边加#,将它注释掉
# 将ports-all
注释后,将前面须要更新的目录前边的#去掉,那样正是单个更新
ports-all
设置好构造文件后,保存退出后推行:
# cvsup -g -L 2 ports-supfile
立异好ports后,我们就用同生龙活虎的艺术创新src。为了服务器的手舞足蹈,大家那边采取stable-supfile作为大家的更新配备文件。
遵照下面相像的点子校正配置文件中的参数,保存退出后实行:
# cvsup -g -L 2 stable-supfile

缓和格局:

三、SQL Server 阻止了对组件 ‘Ad Hoc Distributed Queries’ 的 STATEMENT’OpenRowset/OpenDatasource’ 的拜访。

 难题现象

在Sql Server中国远洋运输总公司程查询的时候现身难点:

select * from openrowset( ‘SQLOLEDB’, ‘DBSeverMSSQL2008’; ‘sa’;
‘123321’,SCJZData.dbo.[2014TestRemote])

结果提醒:
    SQL Server 阻止了对组件 ‘Ad Hoc Distributed Queries’ 的
STATEMENT’OpenRowset/OpenDatasource’
的拜望,因为此组件已当作此服务器安全安顿的生机勃勃有的而被关门。系统管理员可以通过使用
sp_configure 启用 ‘Ad Hoc Distributed Queries’。有关启用 ‘Ad Hoc
Distributed Queries’ 的详细音讯,请参阅 SQL Server 联机丛书中的
“外围应用配置器”。
 化解方法

 启用Ad Hoc Distributed Queries:
  exec sp_configure ‘show advanced options’,1
  reconfigure
  exec sp_configure ‘Ad Hoc Distributed Queries’,1
  reconfigure
 使用产生后,关闭Ad Hoc Distributed Queries:
  exec sp_configure ‘Ad Hoc Distributed Queries’,0
  reconfigure
  exec sp_configure ‘show advanced options’,0
  reconfigure

刚安装到位的连串是还未密码的,咱们用root直接登陆进去。 # sysinstall
对系统进行安装。…

 展开mssql server
属性—》服务器选项—-》启用对系统目录的奇怪更新(允许对系统目录进行直接改造卡塔尔 
就能够

四、不援救对系统目录实行即席更新:配置选项 ‘show advanced options’ 已从 1 更正为 1。请运维 RECONFIGURE 语句进行设置。

 运行SQL语句

use master
go
— 启用 SQL Server 的 CLR 功能
exec sp_configure ‘show advanced options’,1;
go
RECONFIGURE
–RECONFIGURE WITH OVERRIDE

go
exec sp_configure ‘clr enabled’,1;
go
RECONFIGURE
–RECONFIGURE WITH OVERRIDE
go

if object_id(‘dbo.des_encrypt’,’FS’) is not null
 drop function dbo.des_encrypt;
go

if object_id(‘dbo.des_decrypt’,’FS’) is not null
 drop function dbo.des_decrypt;
go

— 成立程序集
if exists (select * from sys.assemblies where name=’DES’)
 drop assembly DES;
go
create assembly DES authorization dbo
from ‘C:localccc.dll’ — dll 文件路线
with permission_set=safe;
go

create function dbo.des_encrypt (@text nvarchar(max), @key
nvarchar(128))
returns nvarchar(max)
as external name DES.DES.DESEncrypt;
go

— select dbo.des_encrypt(N’hello world’, N’88888888′);

create function dbo.des_decrypt (@text nvarchar(max))
returns nvarchar(max)
as external name DES.DES.DESDecrypt;
go

 难点现象

配备选项 ‘show advanced options’ 已从 1 改过为 1。请运营 RECONFIGURE
语句举行设置。
消息 5808,级别 16,状态 1,第 1 行
不帮衬对系统目录进行即席更新。
配备选项 ‘clr enabled’ 已从 1 纠正为 1。请运维 RECONFIGURE
语句举办安装。
消息 5808,级别 16,状态 1,第 1 行
不协理对系统目录举办即席更新。

 消逝办法

  把RECONFIGURE 改成 RECONFIGURE WITH OVERRIDE。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图