跨数据库事务保存以及服务器的配置
2013-09-25 00:27
330 查看
1. 添加链接服务器(在本地服务器通过link添加远程服务器)
EXEC sp_droplinkedsrvlogin RemoteServerLink,Null --删除映射(录与链接服务器上远程登录之间的映射)
EXEC sp_dropserver RemoteServerLink--删除远程服务器链接
EXEC sp_addlinkedserver
@server='RemoteServerLink',--被访问的服务器别名
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='192.168.10.1' --要访问的服务器
EXEC sp_addlinkedsrvlogin
'RemoteServerLink', --被访问的服务器别名
'false',
NULL,
'sa', --帐号
'123456' --密码
2. 在事务开始前加入set xact_abort ON语句
对于大多数 OLE DB 提供程序(包括 SQL Server),必须将隐式或显示事务中的数据修改语句中的 XACT_ABORT 设置为 ON。唯一不需要该选项的情况是在提供程序支持嵌套事务时。
如:
SET XACT_ABORT on
BEGIN DISTRIBUTED TRANSACTION
inserte into ....................
COMMIT TRAN
3. MSDTC设置
打开“管理工具――组件服务”,以此打开“组件服务――计算机”,在“我的电脑”上点击右键。在MSDTC选项卡中,点击“安全配置”按钮。
在安全配置窗口中做如下设置:
l 选中“网络DTC访问”
l 在客户端管理中选中“允许远程客户端”“允许远程管理”
l 在事务管理通讯中选“允许入站”“允许出站”“不要求进行验证”
选中启用XA事务
l 保证DTC登陆账户为:NT Authority\NetworkService
4. 远程服务器上的名称解析
分布式事务的参与服务器是需要相互访问的,发起查询的服务器要根据机器名或ip查找远程服务器的,同样远程服务器也要查找发起服务器,远程服务器通过发起服务器的机器名查找服务器,所以要保证远程服务器能够通过发起服务器的机器名访问到发起服务器。
一般的,两个服务器在同一网段机器名能就行很好的解析,但是也不保证都能很好的解析,所以比较保险的做法是:
在远程服务器的在“C:\WINDOWS\system32\drivers\etc\hosts”文件中增加一条记录:
xxx.xxx.xxx.xxx 发起服务器名
EXEC sp_droplinkedsrvlogin RemoteServerLink,Null --删除映射(录与链接服务器上远程登录之间的映射)
EXEC sp_dropserver RemoteServerLink--删除远程服务器链接
EXEC sp_addlinkedserver
@server='RemoteServerLink',--被访问的服务器别名
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='192.168.10.1' --要访问的服务器
EXEC sp_addlinkedsrvlogin
'RemoteServerLink', --被访问的服务器别名
'false',
NULL,
'sa', --帐号
'123456' --密码
2. 在事务开始前加入set xact_abort ON语句
对于大多数 OLE DB 提供程序(包括 SQL Server),必须将隐式或显示事务中的数据修改语句中的 XACT_ABORT 设置为 ON。唯一不需要该选项的情况是在提供程序支持嵌套事务时。
如:
SET XACT_ABORT on
BEGIN DISTRIBUTED TRANSACTION
inserte into ....................
COMMIT TRAN
3. MSDTC设置
打开“管理工具――组件服务”,以此打开“组件服务――计算机”,在“我的电脑”上点击右键。在MSDTC选项卡中,点击“安全配置”按钮。
在安全配置窗口中做如下设置:
l 选中“网络DTC访问”
l 在客户端管理中选中“允许远程客户端”“允许远程管理”
l 在事务管理通讯中选“允许入站”“允许出站”“不要求进行验证”
选中启用XA事务
l 保证DTC登陆账户为:NT Authority\NetworkService
4. 远程服务器上的名称解析
分布式事务的参与服务器是需要相互访问的,发起查询的服务器要根据机器名或ip查找远程服务器的,同样远程服务器也要查找发起服务器,远程服务器通过发起服务器的机器名查找服务器,所以要保证远程服务器能够通过发起服务器的机器名访问到发起服务器。
一般的,两个服务器在同一网段机器名能就行很好的解析,但是也不保证都能很好的解析,所以比较保险的做法是:
在远程服务器的在“C:\WINDOWS\system32\drivers\etc\hosts”文件中增加一条记录:
xxx.xxx.xxx.xxx 发起服务器名
相关文章推荐
- NHibernate使用MemCache二级缓存
- T-SQL查询:连续输出2个日期间的日期
- WordPress NOSpam PTI插件‘comment_post_ID’参数SQL注入漏洞
- 在SQL Server中使用命令调用SSIS包的具体方法
- SQL Server 比较日期大小的方法
- 如何优化SQL语句的心得浅谈
- 把excel表格里的数据导入sql数据库的两种方法
- oracle中的decode的使用介绍
- oracle中读写blob字段的问题解析
- Oracle case函数使用介绍
- MySQL存储引擎MyISAM与InnoDB的优劣
- Oracle工程硕士——Oracle ERP从业者的新选择
- MS SQL 统计信息浅析上篇
- Using Oracle DBMS_SYSTEM.SET_EV and Oracle DBMS_SYSTEM.READ_EV
- [笔记]--Mysql错误解决办法
- Oracle创建表空间
- 老手是如果教新手写程序的
- MS SQL 统计信息浅析上篇
- SQL 必知必会·笔记<16>使用视图
- ORACLE数据库、表空间、表的容量相关查询--1