SQL Server 遠(yuǎn)程連接服務(wù)器詳細(xì)配置(sp_addlinkedserver)
遠(yuǎn)程鏈接服務(wù)器詳細(xì)配置
--建立連接服務(wù)器 EXEC sp_addlinkedserver '遠(yuǎn)程服務(wù)器IP','SQL Server' --標(biāo)注存儲(chǔ) EXEC sp_addlinkedserver @server = 'server', --鏈接服務(wù)器的本地名稱。也允許使用實(shí)例名稱,例如MYSERVER\SQL1 @srvproduct = 'product_name' --OLE DB數(shù)據(jù)源的產(chǎn)品名。對(duì)于SQL Server實(shí)例來說,product_name是'SQL Server' , @provider = 'provider_name' --這是OLE DB訪問接口的唯一可編程標(biāo)識(shí)。當(dāng)沒有指定它時(shí),訪問接口名稱是 SQL Server數(shù)據(jù)源。SQL Server顯式的provider_name是 SQLNCLI(Microsoft SQL Native Client OLE DB Provider)。Oracler的是 MSDAORA,Oracle 8或更高版本的是OraOLEDB.Oracle。MS Access和MS Excel的是 Microsoft.Jet.OLEDB.4.0。IBM DB2的是DB2OLEDB,以及ODBC數(shù)據(jù)源的是MSDASQL , @datasrc = 'data_source' --這是特定OLE DB訪問接口解釋的數(shù)據(jù)源。對(duì)于SQL Server,這是 SQL Server(servername或servername\instancename)的網(wǎng)絡(luò)名稱。對(duì)于Oracle,這是SQL*Net別名。對(duì)于 MS Access和MSExcel,這是文件的完整路徑和名稱。對(duì)于ODBC數(shù)據(jù)源,這是系統(tǒng)DSN名稱 , @location = 'location' --由特定OLE DB訪問接口解釋的位置 , @provstr = 'provider_string' --OLE DB 訪問接口特定的連接字符串。對(duì)于ODBC連接,這是ODBC連接字符串。對(duì)于MS Excel,這是Excel 5.0 , @catalog = 'catalog' --catalog的定義變化基于OLE DB訪問接口的實(shí)現(xiàn)。對(duì)于SQL Server,這是可選的數(shù)據(jù)庫(kù)名稱,對(duì)于DB2,這個(gè)目錄是數(shù)據(jù)庫(kù)的名稱 --創(chuàng)建鏈接服務(wù)器上遠(yuǎn)程登錄之間的映射 EXEC sp_addlinkedsrvlogin '遠(yuǎn)程服務(wù)器IP','false','sa','架構(gòu)名','訪問密碼' --標(biāo)注存儲(chǔ) EXEC sp_addlinkedsrvlogin @rmtsrvname = '遠(yuǎn)程服務(wù)器IP', --要添加登錄名映射的本地鏈接服務(wù)器 @useself = false, --當(dāng)使用true值時(shí),使用本地SQL或Windows登錄名連接到遠(yuǎn)程服務(wù)器名。如果設(shè)為false,存儲(chǔ)過程 sp_addlinkedsrvlogin的locallogin、rmtuser和rmtpassword參數(shù)將應(yīng)用到新的映射中 @locallogin = NULL, --這是映射到遠(yuǎn)程登錄名的SQL Server登錄或Windows用戶的名稱。如果這個(gè)參數(shù)置為NULL,映射將應(yīng)用SQL Server實(shí)例中的所有本地登錄名 @rmtuser = '架構(gòu)名', --用來連接到鏈接服務(wù)器的用戶/登錄名的名稱 @rmtpassword = '訪問密碼' --用來連接到鏈接服務(wù)器的用戶/登錄名的密碼 --查詢數(shù)據(jù) select top 10 * from [222].pwms.pwms.bas_tb_sku --查看鏈接服務(wù)器信息 select name,product,provider,data_source,query_timeout,lazy_schema_validation,is_remote_login_enabled,is_rpc_out_enabled from sys.servers where is_linked=1 --配置鏈接服務(wù)器屬性 exec sp_serveroption '別名','name','遠(yuǎn)程服務(wù)器IP' --標(biāo)注存儲(chǔ) EXEC sp_serveroption @server = 'server' --配置屬性的鏈接服務(wù)器的名稱 ,@optname = 'option_name' --要配置的選項(xiàng) ,@optvalue = 'option_value' --選項(xiàng)的新值 --附參數(shù) 參 數(shù) 描 述 collation compatible 如果你確認(rèn)SQL Server實(shí)例與遠(yuǎn)程SQL Server擁有相同的排序規(guī)則就啟用這個(gè)設(shè)置。由于SQL Server不再需要對(duì)數(shù)據(jù)源之間的字符列執(zhí)行比較操作,把它們假定為相同的排序規(guī)則,這樣做可以提升性能 collation name 如果啟用了use remote collation并且是非SQL Server的數(shù)據(jù)源,則collation name指定遠(yuǎn)程服務(wù)器排序規(guī)則的名稱。這個(gè)排序規(guī)則名稱必須是SQL Server所支持的 connect timeout 指定在超時(shí)發(fā)生之前到鏈接服務(wù)器的連接會(huì)嘗試多少秒。如果數(shù)值為“0”,sp_ configure的remote query timeout的服務(wù)器值用來當(dāng)作默認(rèn)值 data access 如果啟用,就允許分布式查詢?cè)L問 lazy schema validation 如果設(shè)為true,則架構(gòu)不會(huì)在查詢開始時(shí)去檢測(cè)遠(yuǎn)程表。盡管這樣會(huì)減少遠(yuǎn)程查詢的負(fù)載,但是如果架構(gòu)發(fā)生了變化并且你沒有進(jìn)行架構(gòu)檢測(cè),比如說查詢中引用的對(duì)象不能與查詢命令進(jìn)行通信,就會(huì)生成錯(cuò)誤 query timeout 指定查詢等待的超時(shí)值(秒數(shù))。如果這個(gè)值為0,則query wait選項(xiàng)使用sp_configure值 rpc 啟用從服務(wù)器進(jìn)行遠(yuǎn)程過程調(diào)用 rpc out 啟用遠(yuǎn)程過程調(diào)用到服務(wù)器 use remote collation 指定是使用遠(yuǎn)程服務(wù)器排序規(guī)則(true)還是本地服務(wù)器排序規(guī)則(false) --刪除鏈接服務(wù)器屬性 exec sp_dropserver '4' --標(biāo)注存儲(chǔ) EXEC sp_dropserver @server = 'server' --從SQL Server實(shí)例中刪除的鏈接服務(wù)器的名稱 ,@droplogins = 'droplogins' --如果指定droplogins,則在刪除鏈接服務(wù)器之前要?jiǎng)h除登錄名映射 --查看鏈接登錄名 select s.name linkedServerName,s.data_source linkedserver_source,s.is_linked,s.modify_date, ll.remote_name,ll.local_principal_id,ll.uses_self_credential, p.name localLoginName from sys.Linked_logins ll inner join sys.servers s on s.server_id=ll.server_id left join sys.server_principals p on p.principal_id=ll.local_principal_id where s.is_linked = 1 --刪除鏈接服務(wù)器登錄名映射 exec sp_droplinkedsrvlogin '遠(yuǎn)程服務(wù)器IP',NULL --標(biāo)注存儲(chǔ) EXEC sp_droplinkedsrvlogin @rmtsrvname = '遠(yuǎn)程服務(wù)器IP' --登錄名映射的鏈接服務(wù)器名稱 @locallogin = NULL --這是從鏈接服務(wù)器刪除的SQL Server登錄或Windows用戶映射的名稱
sql
--簡(jiǎn)單點(diǎn)為遠(yuǎn)程機(jī)器設(shè)置遠(yuǎn)程鏈接服務(wù)器。 --假設(shè)遠(yuǎn)程機(jī)器IP為127.0.0.1 --建立連接服務(wù)器 EXEC sp_addlinkedserver '127.0.0.1','SQL Server' --創(chuàng)建鏈接服務(wù)器上遠(yuǎn)程登錄之間的映射 EXEC sp_addlinkedsrvlogin '10.0.0.222','false','sa','架構(gòu)名','密碼' --查詢數(shù)據(jù) select top 10 * from [127.0.0.1].數(shù)據(jù)庫(kù)名.架構(gòu)名.表名 --查看鏈接服務(wù)器信息 select name,product,provider,data_source,query_timeout,lazy_schema_validation,is_remote_login_enabled,is_rpc_out_enabled from sys.servers where is_linked=1 --配置鏈接服務(wù)器屬性設(shè)置別名 exec sp_serveroption 'remotecmp','name','127.0.0.1' --查詢數(shù)據(jù) select top 10 * from remotecmp.數(shù)據(jù)庫(kù)名.架構(gòu)名.表名
上面的文章是通過sql自帶的存儲(chǔ)過程實(shí)現(xiàn)的,其他的可以參考腳本之家其他的文章。
相關(guān)文章
SqlServer數(shù)據(jù)庫(kù)提示 “tempdb” 的日志已滿 問題解決方案
本文主要講述了筆者在執(zhí)行sql語句的過程中,遇到提示“數(shù)據(jù)庫(kù) 'tempdb' 的日志已滿。請(qǐng)備份該數(shù)據(jù)庫(kù)的事務(wù)日志以釋放一些日志空間?!钡慕鉀Q過程,希望對(duì)大家有所幫助2014-08-08SQL Server 存儲(chǔ)過程遇到“表 ''''#TT'''' 沒有標(biāo)識(shí)屬性無法執(zhí)行 SET 操作”錯(cuò)誤
這篇文章主要介紹了SQL Server 存儲(chǔ)過程遇到“表 '#TT' 沒有標(biāo)識(shí)屬性無法執(zhí)行 SET 操作”錯(cuò)誤 的相關(guān)資料,需要的朋友可以參考下2016-07-07SQLServer恢復(fù)表級(jí)數(shù)據(jù)詳解
這篇文章主要介紹了SQLServer中用于快速恢復(fù)表,而不是庫(kù),但是切記,防范總比亡羊補(bǔ)牢好,需要的朋友可以參考下2014-08-08Sql Server刪除數(shù)據(jù)庫(kù)時(shí)提示數(shù)據(jù)庫(kù)正在被使用的解決辦法
當(dāng)您嘗試刪除SQL Server中的某個(gè)對(duì)象(如數(shù)據(jù)庫(kù)、表等)時(shí),如果有程序或進(jìn)程正在使用該對(duì)象,您可能會(huì)收到一個(gè)錯(cuò)誤信息,提示該對(duì)象正被使用,所以本文給大家介紹了Sql Server刪除數(shù)據(jù)庫(kù)時(shí)提示數(shù)據(jù)庫(kù)正在被使用的解決辦法,需要的朋友可以參考下2024-05-05SQLite3數(shù)據(jù)庫(kù)的介紹和使用教程(面向業(yè)務(wù)編程-數(shù)據(jù)庫(kù))
這篇文章主要介紹了SQLite3數(shù)據(jù)庫(kù)的介紹和使用(面向業(yè)務(wù)編程-數(shù)據(jù)庫(kù)),本文從SQLite3的庫(kù)的獲取、工程管理、SQL語句介紹、C語言編程四個(gè)角度闡述了SQLite3數(shù)據(jù)庫(kù)的實(shí)際應(yīng)用,需要的朋友可以參考下2023-05-05SQL?Server數(shù)據(jù)庫(kù)命令整理大全
剛開始學(xué)數(shù)據(jù)庫(kù),可能一下子記不住那么多的命令,或者命令太多,容易混淆,不知道如何選擇最合適的那一條,所以我在這里整理好了一份經(jīng)常會(huì)用到的一些,這篇文章主要給大家介紹了關(guān)于SQL?Server數(shù)據(jù)庫(kù)命令整理大全的相關(guān)資料,需要的朋友可以參考下2024-05-05