SQL Server跨數(shù)據(jù)庫訪問及分布式事務(wù)的使用及配置
一、跨數(shù)據(jù)庫訪問
第一種方式
SELECT * FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=遠程ip;User ID=sa;Password=密碼'
).庫名.dbo.表名
WHERE 條件
第二種方式
在sql server組->服務(wù)->安全性->鏈接服務(wù)器下建立一個具有別名的鏈接服務(wù)器。然后通過以下方式訪問:
SELECT * FROM [鏈接服務(wù)器名].庫名.dbo.表名
WHERE 條件
需要注意的是建立鏈接數(shù)據(jù)庫服務(wù)器類型如果選擇“SQL server”,那么鏈接服務(wù)器名稱必須用要鏈接的服務(wù)器的在網(wǎng)絡(luò)中的機器名或IP,如果要使用其它別名,可以在WINDOWS\system32\drivers\etc\hosts文件里添加一個別名的映射。
解除SQL阻止(sqlserver 2005情況)
SQL Server 阻止了對組件 ‘Ad Hoc Distributed Queries’ 的 STATEMENT’OpenRowset/OpenDatasource’ 的訪問,因為此組件已作為此服務(wù)器安全配置的一部分而被關(guān)閉。系統(tǒng)管理員可以通過使用 sp_configure 啟用 ‘Ad Hoc Distributed Queries’。有關(guān)啟用 ‘Ad Hoc Distributed Queries’ 的詳細信息,請參閱 SQL Server 聯(lián)機叢書中的 “外圍應(yīng)用配置器”。
因為SQL2005默認是沒有開啟’Ad Hoc Distributed Queries’ 組件,開啟方法如下
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO
關(guān)閉Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries', 0
reconfigure
exec sp_configure 'show advanced options', 0
reconfigure
二、分布式事務(wù)的配置
1.用DTCPing.exe工具測試兩臺機器的DTC服務(wù)是否可以聯(lián)通。
2.如果有問題檢查MSDTC服務(wù)是否啟動。
3.MSDTC依賴于RPC,RPC使用的端口是135,測試135端口是否打開.是否有防火墻?如果有先關(guān)了防火墻. telnet IP 135 如果是關(guān)閉的打開它.
4.打開“控制面板->管理工具->組件服務(wù)”,然后展開“組件服務(wù)->計算機->我的電腦”右鍵屬性。選擇MSDTC的Tab欄,點擊安全性配置按鈕,打開窗口,將“網(wǎng)絡(luò)DTC訪問”選項選中,并將“允許遠程客戶端”,“允許入站”,“允許出站”都選中,并選擇“不要求進行驗證”,“啟用事務(wù)Internet協(xié)議(TIP)事務(wù)”,“啟用XA事務(wù)”都選中。然后確定即可。(以上選項windows默認不開放,必須配置)
5.檢查你的兩臺服務(wù)器是否在同一個域中. 如果不在同一個域中,是否建立可信任聯(lián)接.
6.如果是WIN2000,升級到SP4
7.確認MDAC版本是2.6以上,最好是2.8.
8.在SQL server存儲過程中使用分布式事務(wù)時,必須SET XACT_ABORT ON --設(shè)置分布式事務(wù)如果發(fā)生問題主動回滾操作
9.可以聲明使用BEGIN DISTRIBUTED TRANSACTION,如果未明確生明,在事務(wù)塊中包含鏈接服務(wù)器的訪問,SQL server會自動升級成分布式事務(wù)。
posted on 2010-10-18 10:50 輕松 閱讀(4623) 評論(0) 編輯 收藏 所屬分類: 其他文章