遠程鏈接服務器詳細配置
--建立連接服務器EXEC sp_addlinkedserver '遠程服務器IP','SQL Server'--標注存儲EXEC sp_addlinkedserver@server = 'server', --鏈接服務器的本地名稱。也允許使用實例名稱,例如MYSERVER/SQL1@srvproduct = 'product_name' --OLE DB數據源的產品名。對于SQL Server實例來說,product_name是'SQL Server', @provider = 'provider_name' --這是OLE DB訪問接口的唯一可編程標識。當沒有指定它時,訪問接口名稱是 SQL Server數據源。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數據源的是MSDASQL, @datasrc = 'data_source' --這是特定OLE DB訪問接口解釋的數據源。對于SQL Server,這是 SQL Server(servername或servername/instancename)的網絡名稱。對于Oracle,這是SQL*Net別名。對于 MS Access和MSExcel,這是文件的完整路徑和名稱。對于ODBC數據源,這是系統DSN名稱, @location = 'location' --由特定OLE DB訪問接口解釋的位置, @provstr = 'provider_string' --OLE DB 訪問接口特定的連接字符串。對于ODBC連接,這是ODBC連接字符串。對于MS Excel,這是Excel 5.0, @catalog = 'catalog' --catalog的定義變化基于OLE DB訪問接口的實現。對于SQL Server,這是可選的數據庫名稱,對于DB2,這個目錄是數據庫的名稱--創建鏈接服務器上遠程登錄之間的映射EXEC sp_addlinkedsrvlogin '遠程服務器IP','false','sa','架構名','訪問密碼'--標注存儲EXEC sp_addlinkedsrvlogin @rmtsrvname = '遠程服務器IP', --要添加登錄名映射的本地鏈接服務器@useself = false, --當使用true值時,使用本地SQL或Windows登錄名連接到遠程服務器名。如果設為false,存儲過程 sp_addlinkedsrvlogin的locallogin、rmtuser和rmtpassword參數將應用到新的映射中@locallogin = NULL, --這是映射到遠程登錄名的SQL Server登錄或Windows用戶的名稱。如果這個參數置為NULL,映射將應用SQL Server實例中的所有本地登錄名@rmtuser = '架構名', --用來連接到鏈接服務器的用戶/登錄名的名稱@rmtpassword = '訪問密碼' --用來連接到鏈接服務器的用戶/登錄名的密碼--查詢數據select top 10 * from [222].pwms.pwms.bas_tb_sku--查看鏈接服務器信息select name,product,provider,data_source,query_timeout,lazy_schema_validation,is_remote_login_enabled,is_rpc_out_enabledfrom sys.serverswhere is_linked=1--配置鏈接服務器屬性exec sp_serveroption '別名','name','遠程服務器IP'--標注存儲EXEC sp_serveroption @server = 'server' --配置屬性的鏈接服務器的名稱,@optname = 'option_name' --要配置的選項,@optvalue = 'option_value' --選項的新值--附參數參 數 描 述collation compatible 如果你確認SQL Server實例與遠程SQL Server擁有相同的排序規則就啟用這個設置。由于SQL Server不再需要對數據源之間的字符列執行比較操作,把它們假定為相同的排序規則,這樣做可以提升性能collation name 如果啟用了use remote collation并且是非SQL Server的數據源,則collation name指定遠程服務器排序規則的名稱。這個排序規則名稱必須是SQL Server所支持的connect timeout 指定在超時發生之前到鏈接服務器的連接會嘗試多少秒。如果數值為“0”,sp_ configure的remote query timeout的服務器值用來當作默認值data access 如果啟用,就允許分布式查詢訪問lazy schema validation 如果設為true,則架構不會在查詢開始時去檢測遠程表。盡管這樣會減少遠程查詢的負載,但是如果架構發生了變化并且你沒有進行架構檢測,比如說查詢中引用的對象不能與查詢命令進行通信,就會生成錯誤query timeout 指定查詢等待的超時值(秒數)。如果這個值為0,則query wait選項使用sp_configure值rpc 啟用從服務器進行遠程過程調用rpc out 啟用遠程過程調用到服務器use remote collation 指定是使用遠程服務器排序規則(true)還是本地服務器排序規則(false)--刪除鏈接服務器屬性exec sp_dropserver '4'--標注存儲EXEC sp_dropserver@server = 'server' --從SQL Server實例中刪除的鏈接服務器的名稱,@droplogins = 'droplogins' --如果指定droplogins,則在刪除鏈接服務器之前要刪除登錄名映射--查看鏈接登錄名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 localLoginNamefrom sys.Linked_logins llinner join sys.servers s on s.server_id=ll.server_idleft join sys.server_principals p on p.principal_id=ll.local_principal_idwhere s.is_linked = 1--刪除鏈接服務器登錄名映射exec sp_droplinkedsrvlogin '遠程服務器IP',NULL--標注存儲EXEC sp_droplinkedsrvlogin @rmtsrvname = '遠程服務器IP' --登錄名映射的鏈接服務器名稱@locallogin = NULL --這是從鏈接服務器刪除的SQL Server登錄或Windows用戶映射的名稱
|
新聞熱點
疑難解答