SQLServer之創建鏈接伺服器

来源:https://www.cnblogs.com/vuenote/archive/2019/03/28/10611411.html
-Advertisement-
Play Games

創建鏈接伺服器註意事項 當我們要跨本地資料庫,訪問另外一個資料庫表中的數據時,本地資料庫中就必須要創建遠程資料庫的DBLINK,通過DBLINNK資料庫可以像訪問本地資料庫一樣訪問遠程資料庫表中的數據。 鏈接伺服器允許訪問針對OLE DB數據源的分散式異構查詢。創建鏈接伺服器後,可以針對此伺服器運行 ...


創建鏈接伺服器註意事項

當我們要跨本地資料庫,訪問另外一個資料庫表中的數據時,本地資料庫中就必須要創建遠程資料庫的DBLINK,通過DBLINNK資料庫可以像訪問本地資料庫一樣訪問遠程資料庫表中的數據。

鏈接伺服器允許訪問針對OLE DB數據源的分散式異構查詢。創建鏈接伺服器後,可以針對此伺服器運行分散式查詢,並且查詢可以連接來自多個數據源的表。如果鏈接伺服器被定義為SQL Server的實例,則可以執行遠程存儲過程。

鏈接伺服器的功能和必需參數可能會有很大差異。

使用SSMS資料庫管理工具創建DBLINK

1、連接伺服器-》展開伺服器-》展開伺服器對象-》展開鏈接伺服器-》右鍵點擊鏈接伺服器-》點擊新建鏈接伺服器。

2、在新建鏈接伺服器彈出框-》點擊常規-》輸入鏈接伺服器名稱-》選擇伺服器類型。

3、在新建鏈接伺服器視窗-》點擊安全性-》選擇鏈接伺服器的登陸類型-》添加或者刪除登陸遠程伺服器的映射

4、在新建連接伺服器彈出框-》點擊伺服器選項-》選擇伺服器選項的屬性。

5、在新建鏈接伺服器彈窗框-》點擊確定-》在對象資源管理器查看結果。

使用SSMS資料庫管理工具創建DBLINK

語法

--聲明資料庫引用
use master;
go

--創建DbLink語法
--第一步:定義DBLINK類型
exec master.dbo.sp_addlinkedserver @server='鏈接伺服器名稱',@srvproduct='SQL Server';
go
--第二步:定義DBLINK連接屬性
--第一種安全性:不建立連接(刪除下邊的登陸)
--第二種安全性:不使用安全上下文建立連接
--exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'鏈接伺服器名稱', @locallogin = NULL , @useself = N'False'
--go
--第三種安全性:使用登錄名的當前安全上下文建立連接
--exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'鏈接伺服器名稱', @locallogin = NULL , @useself = N'True'
--go
--第四種安全性:使用此安全上下文建立連接
--exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname='鏈接伺服器名稱',@locallogin=NULL,@useself='False',@rmtuser='登錄名',@rmtpassword='密碼';
--go
--排序規則相容
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'collation compatible', @optvalue=N'true' | N'false'
go
--數據訪問
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'data access', @optvalue=N'true' | N'false'
go
--訂閱伺服器
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'dist', @optvalue=N'true' | N'false'
go
--發佈伺服器
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'pub', @optvalue=N'true' | N'false'
go
--RPC
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'rpc', @optvalue=N'true' | N'false'
go
--RPC 超時
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'rpc out', @optvalue=N'true' | N'false'
go
--分發伺服器
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'sub', @optvalue=N'true' | N'false'
go
--連接超時值
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'connect timeout', @optvalue=N'0'
go
--排序規則名稱
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'collation name', @optvalue=null
go
--惰性架構驗證
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'lazy schema validation', @optvalue=N'true' | N'false'
go
--查詢超時值
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'query timeout', @optvalue=N'0'
go
--使用遠程排序規則
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'use remote collation', @optvalue=N'true' | N'false'
go
--為RPC啟用針對分散式事務的升級
exec master.dbo.sp_serveroption @server=N'鏈接伺服器名稱', @optname=N'remote proc transaction promotion', @optvalue=N'true' | N'false'
go

語法解析

第一步和第二步必須同時執行,後面DBLINK屬性可以不寫使用系統預設。

示例:以我自己本機為例

--聲明資料庫引用
use master;
go

--創建DbLink語法
--第一步:定義DBLINK類型
exec master.dbo.sp_addlinkedserver @server='TANG\SQLEXPRESS',@srvproduct='SQL Server';
go

----排序規則相容
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'collation compatible', @optvalue=N'false'
--go
----數據訪問
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'data access', @optvalue=N'true'
--go
----訂閱伺服器
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'dist', @optvalue=N'false'
--go
----發佈伺服器
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'pub', @optvalue=N'false'
--go
----RPC
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'rpc', @optvalue=N'false'
--go
----RPC 超時
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'rpc out', @optvalue=N'false'
--go
----分發伺服器
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'sub', @optvalue=N'false'
--go
----連接超時值
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'connect timeout', @optvalue=N'0'
--go
----排序規則名稱
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'collation name', @optvalue=null
--go
----惰性架構驗證
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'lazy schema validation', @optvalue=N'false'
--go
----查詢超時值
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'query timeout', @optvalue=N'0'
--go
----使用遠程排序規則
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'use remote collation', @optvalue=N'true'
--go
----為RPC啟用針對分散式事務的升級
--exec master.dbo.sp_serveroption @server=N'TEST', @optname=N'remote proc transaction promotion', @optvalue=N'true'
--go

--第二步:定義DBLINK連接屬性
--第一種安全性:不建立連接(刪除下邊的登陸)
--第二種安全性:不使用安全上下文建立連接
--exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TANG\SQLEXPRESS', @locallogin = NULL , @useself = N'False'
--go
--第三種安全性:使用登錄名的當前安全上下文建立連接
exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'TANG\SQLEXPRESS', @locallogin = NULL , @useself = N'True'
go
--第四種安全性:使用此安全上下文建立連接
--exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname='TANG\SQLEXPRESS',@locallogin=NULL,@useself='False',@rmtuser='tests',@rmtpassword='1234';
--go

示例結果:顯示創建結果

DBLINK使用

示例

SELECT * FROM 	[testss].[dbo].[test1]	   AS A 
INNER JOIN  [TANG\SQLEXPRESS].[testss].[dbo].[test3] AS B ON A.classid=B.id

結果

DBLINK鏈接優缺點

優點

1、允許跨伺服器訪問。

2、數據量少的情況下用dblink比較簡單,迅速。

3、可以執行遠程存儲過程等。

缺點

1、遠程查詢時易受網路等影響。

2、鏈接穩定性較差。

3、大量消耗資料庫資源。

4、可擴展性較差。

5、維護性差、安全性較低。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Solr的時區為什麼總是UTC? 從資料庫同步數據到Solr, 為什麼時間總是少了8小時? 要怎樣修改Solr的預設時區?這篇文章來做個實踐和探討. ...
  • 下載鏈接: ※ 如果沒有 直接複製url 到瀏覽器下載 1:下載完成 2:解壓 3: 複製 放到use/local目錄下 4:進入 redis 目錄 ( 確認 /url/local/redis/ 目錄下的文件是否存在, INSTALL Makefile redis.conf ) 5: 生成 6: 測 ...
  • 一、輔助排序 需求:先有一個訂單數據文件,包含了訂單id、商品id、商品價格,要求將訂單id正序,商品價格倒序,且生成結果文件個數為訂單id的數量,每個結果文件中只要一條該訂單最貴商品的數據。 思路:1.封裝訂單類OrderBean,實現WritableComparable介面; 2.自定義Mapp ...
  • 第一次在博客園寫博客,寫的不好,請大家多多評論,也希望自己以後對技術探索的更深。 今天下班之後,由於晚上要發版本,所以開發同事必須留下,突然收到一封公司監控預警郵件。 瞄了幾眼,大致的意思就是說 視圖無效。由於視圖查詢的是表,所以開始做實驗測試。 實驗一: 當基表drop列的時候,視圖是否還是有效? ...
  • 本篇博文介紹瞭如何在URL中直接發起HTTP請求, 操作Solr的文檔? 如何通過Solr的Web界面添加、修改、刪除文檔? 還涉及到常見的Solr刪除文檔的方式: URL發起HTTP請求, Solr Web中的document中提交請求. ...
  • Redis 三大特性: Redis 支持數據的持久化,可以將記憶體中的數據保存在磁碟中,重啟的時候可以再次載入進行使用 Redis 不僅支持簡單的 鍵 * 值 類型的數據, 還提供list、set、zset、hash 等數據結構存儲 Redis 支持數據的備份,即master -slave模式的數據備 ...
  • 原理:多個msyql/mariadb之間可以實時同步,任意節點的操作可以立即同步到其他節點,底層採用galera插件同步,類似rsync,上層mysql相對於galera是透明的,可以實現多節點同時讀寫(無法實現讀寫分離)。 NOTE:普通的msyql/mariadb無法集成galera,要想使用g ...
  • zookeeper簡介 1.官網:http://zookeeper.apache.org/ 介紹:Apache ZooKeeper致力於開發和維護開源伺服器,實現高度可靠的分散式協調。 ZooKeeper是一種集中式服務,用於維護配置信息,命名,提供分散式同步和提供組服務。 所有這些類型的服務都以分 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...