到底该如何跨网段访问SQL Server,有一个明确的方案吗?只要能答出1000分也没问题

baby_hhh 2003-05-23 12:08:25
务器为SQL Server 2000,在一个网段,多个客户端在另一个网段,其中一个能通过BDE或者ADO链接服务器,但其他的客户端怎么也连不上,不知道客户端到底如何配置,查了很多相关的资料都不行,也没有一个明确的方案描述(一般都是说用IP连接,确省协议设为TCP/IP,但这些都试过了,没有用)。环境都建立好了,首先,DLL肯定是都有了(为了测试,客户端都索性安装了完整的SQL Server客户端),BDE(安了Delphi)和ADO(安装了最新的MDAC 2.7)也没问题,还是连不上,我觉得应该是配置的问题了,不知到底该如何配置,请高手指教
...全文
308 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
叶子 2010-05-28
  • 打赏
  • 举报
回复
zjcxc(邹建)的解决方案:

一.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的最新补丁: sp3a
'全部补丁的位置
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=9032f608-160a-4537-a2b6-4cb265b80766

'应该安装的补丁sql 2000 sp3
http://download.microsoft.com/download/d/d/e/dde427eb-0296-4eac-a47c-d11a66b03816/chs_sql2ksp3.exe


但是,我的情况是两台win2003+sql2005的服务器,在事务中使用链接服务器,也是提示:“ 'SQLOLEDB ' 无法启动分布式事务”

按照上述解决方案做:

一.不使用事务用select分布式查询,没有问题
使用事务用select分布式查询,也没有问题
使用事务用insert往链接服务器中插入记录,就出现“ 'SQLOLEDB ' 无法启动分布式事务”错误。

二.两台机的MSDTC是否都打开了. --错误依然
三.两台MSDTC都按照上述说明就行设置了。--错误依然
四.两台服务器都启动着RPC服务,135端口也都开着。--错误依然
五.把连接服务器改成MSDASQL方式的连接。--错误依然
七.两台服务器不在同一个域,在msdtc的安全设置中都设置了“不需要进行验证”。--错误依然
samuelpan 2003-05-24
  • 打赏
  • 举报
回复
首先确定两台电脑能够ping通。

然后针对sql server服务器中管理工具里的安全策略进行配置,各种限制先全部放开,这样一般没什么问题了。
baby_hhh 2003-05-24
  • 打赏
  • 举报
回复
现在初步发现的问题是,那台可以连上的机器是用名字管道连接的,将他改为TCP/IP也连不上。我认为应该是端口被封了,但我在另一台客户机上用名字管道试了,却又连不上(装了MDAC 2.71),名字管道需要特别的配置吗?
liuyun2003 2003-05-23
  • 打赏
  • 举报
回复
MSSQL好象是可以自己处理不同网段的问题的。我也没有遇到过这个问题。所以,我说不上来啊。呵呵~~~
leimin 2003-05-23
  • 打赏
  • 举报
回复
1.SQL SERVER2000安装在至少有2块网卡的SERVER上.
2.这样该SERVER就像一个ROUTER,可以跨网段了.

你是如何联的,我在单位这样联,一直用,没问题!!
leimin 2003-05-23
  • 打赏
  • 举报
回复
请将你的网络的配置具体说明一下,也许可以发现问题的所在...
baby_hhh 2003-05-23
  • 打赏
  • 举报
回复
应该不是服务器的问题,因为有一个客户端可以连上
hxshxs 2003-05-23
  • 打赏
  • 举报
回复
用路由器连接两个网段

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧