关闭

分布式查询

1777人阅读 评论(0) 收藏 举报
应用语句如下:
--启动远程服务器的MSDTC服务
exec master..xp_cmdshell 'isql /S"192.168.253.5" /U"dl" /P"333263" /q"exec
master..xp_cmdshell ''net start msdtc'',no_output"',no_output
--启动本机的MSDTC服务
exec master..xp_cmdshell 'net start msdtc',no_output

insert into dayquantity(station_number,data_date,day_water_quantity)
(select us.station_number,date1,quantity from [192.168.253.5].manger.dbo.day_report da inner
join [192.168.253.5].manger.dbo.userdata us on da.uid=us.uid where date1<'2005-9-1' and
station_number is not null)
 
遇到过的问题:
1、问题一
服务器: 消息 8501,级别 16,状态 1,行 1
服务器 'H' 上的 MSDTC 不可用。
服务器: 消息 7391,级别 16,状态 1,行 1
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned
0x8004d01c]。
解决办法:
--启动远程服务器的MSDTC服务
exec master..xp_cmdshell 'isql /S"192.168.253.5" /U"dl" /P"333263" /q"exec
master..xp_cmdshell ''net start msdtc'',no_output"',no_output
--启动本机的MSDTC服务
exec master..xp_cmdshell 'net start msdtc',no_output
 
2、问题二
出错信息:
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
OLE DB 错误跟踪[OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned
0x8004d00a]。
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
解决办法:因为其中一台服务器不支持'SQLOLEDB' ,于是把语句换成在这台服务器上执行。
调试方法:
一.A.不用事务,关用SELECT 语句.是否可以分布式查询?
   B.LINKSERVER 在做分布式更新事务时不能对本机操作.(就是不能环回分布式事务)
   C.DBCC TRACEON (3604, 7300)--用跟踪看更详细错误信息.
 
   D.下载MS提供的DTCPing.exe 分装在两台机上,按README说明来运行它.看出错信息.
http://download.microsoft.com/download/complus/msdtc/1.7/nt45/en-us/DTCPing.exe
二.两台机的MSDTC是否都打开了.
三.MSDTC设置是否正确.
1.打开命令提示,运行"net stop msdtc",然后运行"net start msdtc"。
2.转至"组件服务管理工具"。
3.浏览至"启动管理工具"。
4.选择"组件服务"。
 a.展开"组件服务"树,然后展开"我的电脑"。
 b.右键单击"我的电脑",然后选择"属性"。
 C.在 MSDTC 选项卡中,确保选中了下列选项: 网络 DTC 访问
网络管理
网络事务
    XA 事务
 e.另外,"DTC 登录帐户"一定要设置为"NT Authority/NetworkService"。
5.单击"确定"。这样将会提示您"MS DTC 将会停止并重新启动。
  所有的依赖服务将被停止。请按'是'继续"。单击"是"继续。
6.单击"确定"关闭"我的电脑"属性窗口。
四.
MSDTC依赖于RPC,RPC使用的端口是135,测试135端口是否打开.是否有防火墙?如果有先关了防火墙.
telnet IP 135
如果是关闭的打开它.
五.
有的机由于各种原因),SQLOLEDB不能使用分布式事务,更改为"MSDASQL" 的ODBC方式联接.
使用RRAS而不是RAS.(控制面版--管理工具--远程服务管理器)
Check whether you are using Remote Access Server (RAS) to access remote servers. If so, make
sure that you have implemented Routing RAS (RRAS). Linked server does not work on RAS
because RAS allows only one way communication.
七.检查你的两台服务器是否在同一个域中.
如果不在同一个域中,是否建立可信任联接.
八.如果是WIN2000,升级到SP4
九.升级MDAC到2.6以上,最好是2.8.
十.要安装SQL的最新补丁:
0
0
查看评论

分布式查询

/*分布式查询*/分布式查询(Distributed Query)能够访问存放在同一部计算机或不同计算机上的SQL Server或不同种类的数据源。众所周知,OLE DB是Microsoft规格的公用数据访问的应用程序开发界面(Application Programming Interface,AP...
  • hxd001_810
  • hxd001_810
  • 2007-12-07 17:34
  • 2578

分布式内存数据技术为查询提速

背景和需求   中国铁路客户服务中心网站(www.12306.cn)是世界规模最大的实时交易系统之一,媲美Amazon.com,节假日尤其是春节的访问高峰,网站压力巨大。据统计, 在2012年初的春运高峰期间,每天有2000万人访问该网站,日点击量最高达到14亿。大量同时涌入的网络访问造成12...
  • FENGQIYUNRAN
  • FENGQIYUNRAN
  • 2015-03-06 10:43
  • 1108

SQL SERVER 经验小结

1     在两个表关联时,写关联条件时注意,不要将有空值或为Null的字段作为连接字段 eg A表 :姓名,性别,年龄 B表:姓名,工作情况 注意:姓名有空值或为null 若select * from A inner join B on A.姓名=B.姓名&...
  • qlshuang
  • qlshuang
  • 2012-02-12 15:02
  • 1281

分布式大数据sql查询引擎Presto初识

1、背景: Hive使用MapReduce作为底层计算框架,是专为批处理设计的。但随着数据越来越多,使用Hive进行一个简单的数据查询可能要花费几分到几小时,显然不能满足交互式查询的需求。Presto是一个分布式SQL查询引擎,它被设计为用来专门进行高速、实时的数据分析。它支持标准的ANSI SQL...
  • fjssharpsword
  • fjssharpsword
  • 2017-07-05 16:33
  • 1827

SQLServer分布式查询

--用openrowset连接远程SQL或插入数据 --如果只是临时访问,可以直接用openrowset --查询示例 select * from openrowset('SQLOLEDB','sql服务器名';'用户名';'密码',...
  • marvel_java
  • marvel_java
  • 2016-12-04 12:59
  • 736

解决MSSQL不支持分布式(linked server)调用用户自定义函数的解决办法

MSSQL并不支持用户自定义函数调用linked server查询,它无法识别链接服务器部分 但我们可以采用其他方式,替换无法被解析的linked server部分内容 1、采用Openquery替代     Select * from Openquery(ne...
  • starseeker7
  • starseeker7
  • 2013-01-30 14:34
  • 780

在分布式系统中进行日志查询与管理的新手段介绍

随着技术的发展,越来越多的系统从单机转向到分布式,同时对应的日志查看方式除了直接查看文件外,也发展出了各种集中日志管理方式。其中常见日志查看方式如下:
  • Gamay
  • Gamay
  • 2017-06-13 11:38
  • 627

分布式查询

 前几天做一个分布式查询遇到了一些问题(问题详细描叙见:http://www.cnblogs.com/lizhiwen/archive/2007/08/24/868141.html),经过反复查找,总算是找到了问题所在。下面就说一下大致过程:环境:服务器Service A,Service ...
  • vipxiaotian
  • vipxiaotian
  • 2007-10-24 14:20
  • 1117

海量数据处理---分布式处理之MapReduce

方法介绍 MapReduce是一种计算模型,简单的说就是将大批量的工作(数据)分解(MAP)执行,然后再将结果合并成最终结果(REDUCE)。这样做的好处是可以在任务被分解后,可以通过大量机器进行并行计算,减少整个操作的时间。但如果你要我再通俗点介绍,那么,说白了,Mapreduce的原理就是...
  • qisefengzheng
  • qisefengzheng
  • 2015-05-26 15:48
  • 427

谈谈分布式Aggregation

聚合操作(Aggregation)是OLAP分析查询中最常见的操作之一,可以说它是数据分析查询的基石,它对应这SQL中的GROUP BY子句,OLAP中的上卷下钻操作无非就是对于GROUP BY和WHERE条件的改变,如何能够高效的实现聚合是决定OLAP分析性能的最重要因素之一(另外几个因素包括如何...
  • yu616568
  • yu616568
  • 2017-05-21 12:29
  • 824
    个人资料
    • 访问:969421次
    • 积分:12098
    • 等级:
    • 排名:第1458名
    • 原创:198篇
    • 转载:268篇
    • 译文:0篇
    • 评论:108条
    最新评论