msdtc进程是做什么用的?

msdtc进程是做什么用的?,第1张

进程文件:msdtc 或者 msdtcexe
进程名称: distributed transaction coordinator
描述: msdtcexe是微软分布式传输协调程序。该进程调用系统microsoft personal web server和microsoft sql server。该服务用于管理多个服务器
出品者:microsoft corp
属于: microsoft personal web server
系统进程:是
后台进程:是
使用网络:是
硬件相关:否
常见错误:未知
内存使用:未知
安全等级:0
间谍软件:否
广告软件:否
病毒:否
木马:否

1 双方启动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设置
打开“管理工具――组件服务”,以此打开“组件服务――计算机”,在“我的电脑”上点击右键。在MSDTC选项卡中,点击“安全配置”按钮。
在安全配置窗口中做如下设置:

问题 如何通过触发器实现数据库的即时同步?

解答 具体的解决方法请参考下文

即时同步两个表的示例如下:

测试环境如下:SQL Sever 数据库 远程主机名:xz 用户名:sa 密码:无 数据库名:test

创建测试表 请注意不能用标识列做主键 因为不能进行正常的更新

然后在本机上创建测试表 注意远程主机上也要做同样的建表 *** 作 只是不写触发器

if exists (select from dbo sysobjects where id = object_id(N [test] ) and OBJECTPROPERTY(id N IsUserTable ) = )

drop table [test]

create table test(id int not null constraint PK_test primary key

name varchar( ))

go

创建同步的触发器

create trigger t_test on test

for insert update delete

as

set XACT_ABORT on

启动远程服务器的MSDTC服务

exec master xp_cmdshell isql /S xz /U sa /P /q exec master xp_cmdshell net start msdtc no_output no_output

启动本机的MSDTC服务

exec master xp_cmdshell net start msdtc no_output

进行分布事务处理 假如表用标识列做主键 你可以使用下面的这个方法

BEGIN DISTRIBUTED TRANSACTION

delete from openrowset( sqloledb xz ; sa ; test dbo test)

where id in(select id from deleted)

insert into openrowset( sqloledb xz ; sa ; test dbo test)

select from inserted

mit tran

go

插入数据测试

insert into test

select aa

union all select bb

union all select c

union all select dd

union all select ab

union all select bc

union all select ddd

删除数据测试

delete from test where id in( )

更新数据测试

update test set name=name+ _ where id in( )

最后显示测试的结果

select from test a full join

lishixinzhi/Article/program/Oracle/201311/17111

500内部服务器错误(>Data Server=\SQLEXPRESS;Initial Catalog=……
Data Server=服务器名\SQLEXPRESS;Initial Catalog=……
Data Server=localhost\SQLEXPRESS;Initial Catalog=……
Data Server=;Initial Catalog=……
Data Server=服务器名;Initial Catalog=……
哪种正确,这跟数据库版本有关系,如果是SQL Server 2005 Express版本,则必须要有“\SQLEXPRESS”。而且如果这个字符串是定义为一个变量的时候,VS2005还会在“\”的下面加个红色的波浪 线提示你“\S是无法识别的转义序列”,因此如果字符串是定义为一个变量的时候应该写成Server=\\SQLEXPRESS。

Distributed Transaction Coordinator,是微软分布式传输协调程序。该进程调用系统Microsoft Personal Web Server和Microsoft SQL Server。该服务用于管理多个服务器。msdtcexe是一个并列事务,是分布于两个以上的数据库,消息队列,文件系统或其他事务保护资源管理器,删除要小心。
如果你确定不会用到它,那就可以删除。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13448663.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-08
下一篇 2023-08-08

发表评论

登录后才能评论

评论列表(0条)

保存