超詳細SQL SERVER 2016跨網段和局域網發佈訂閱配置圖解和常見問題

此次實驗分別在局域網和跨網段進行,先局域網中配置,再跨網段配置,按需查看。sql

下面文章的內容將分爲兩個部分數據庫

目錄windows

1、經過非命令行方式配置同步訂閱安全

(1)實驗環境說明服務器

(2)實驗前準備網絡

(3)訂閱設置工具

(4)測試同步訂閱sqlserver

2、常見問題彙總測試

3、總結.net

 

正文部分

1、經過非命令行方式配置同步訂閱

(1)實驗環境說明

實驗環境,兩臺在同一局域網(跨網段的在後面再詳細說明)的PC機,這裏PC1是做爲分發服務器,PC2做爲訂閱服務器

PC1

系統:win10

數據庫版本:SQL Server 2016

IP:192.168.0.62

Sqlserver端口:1433

計算機名:DESKTOP-Aaron1

工做組:WORKGROUP

用戶名:SqlServer

 

PC2

系統:win10

數據庫版本:SQL Server 2016

IP:192.168.0.152

Sqlserver端口:1433

計算機名:DESKTOP-Aaron2

工做組:WORKGROUP

用戶名:SqlServer

 

(2)實驗前準備

檢查幾個設置,這是實驗成功的關鍵,PC1和PC2都要進行相同的配置。

a.開共享

 

在任務欄的計算機圖標右鍵->打開網絡和共享中心->更改高級共享設置

 

在高級共享裏面開啓共享

b.防火牆開1433 端口

打開控制面板,選擇系統與安全

 

打開防火牆設置中的高級設置

 

 

 

新建一個入站規則

 

點擊新建規則->端口

 

端口->填寫開放的端口號

 

填寫開放的端口號->選擇容許鏈接

 

下面的所有默認就能夠

 

 

c.配置管理器設置TCP/IP啓用

 

打開SQL Server 2016 配置管理器,網絡配置->協議->TCP/IP開啓

 

選中TCP/IP右鍵「屬性」,在屬性中把對應的ip 192.168.0.152的Enabled設置爲「是」,端口號爲默認的1433

 

d.Sql Server Browser 服務開啓

若是在SSMS工具中找不到局域網內的其餘數據庫服務器,能夠開啓這個功能

 

 

e.兩臺機有相同的帳戶(用戶名和密碼要一致)

在兩臺機中我都新建了一個相同的賬戶名和密碼的帳戶

 

 

f.數據庫添加windows帳戶訪問

打開SSMS添加上面新建的windows帳戶SqlServer

 

 

g.數據庫開啓容許遠程鏈接

在SSMS中開啓數據庫容許遠程鏈接

 

 

h.測試網絡是否鏈接成功

這是最關鍵的一步,也是下面訂閱同步操做的前提,打開cmd命令窗口(windows+R 輸入cmd回車)。

先使用ping命令測試網絡鏈接是否有問題(PC1和PC2都要ping測試是否互通)

 

就算能ping通,只能說明局域網內存在這臺機,也不表明能實現同步,還要測試端口是否可用。

使用telnet命令測試端口是否可用 telnet 192.168.0.62 1433

出現這個窗口表示可用

 

(3)訂閱設置

已經在PC1新建了一個新的數據庫Test1,Test1裏面有一張表Table_1, Table_1插入了幾條測試數據,把數據庫Test1備份複製到PC2機器上還原。

配置PC1做爲分發服務器

打開數據庫的 複製->本地發佈,右鍵新建發佈

 

下面的步驟按照截圖來,這裏的發佈數據庫選擇的是測試用的Test1,咱們的實驗就是要把PC1的Test1數據庫同步到PC2的數據庫Test1。

 

選擇要發佈的表,後期還能夠添加新表。

 

 

這裏爲了方便測試數據,點擊了「更改」按鈕,設置同步的頻率爲10秒。

下一步。選擇「在如下windows帳戶下運行」,填寫PC1機windows帳戶(這裏要填域\帳戶),鏈接發佈服務器使用的是sa帳戶。(這裏選擇「在sqlserver代理帳戶下運行」通過測試也是能夠的)

 

配置PC2做爲訂閱服務器

設置訂閱能夠在分發服務器上也能夠在訂閱服務器上,結果是同樣的,這裏咱們在分發服務器上設置

右鍵本地訂閱,新建訂閱

 

選擇PC1機發布服務器的發佈任務

 

下一步,有兩個選項,此次實驗是在分發服務器運行推送訂閱,選擇第一項

下一步,點擊「添加訂閱服務器」,服務器名稱選擇的是PC2機的名稱,使用windows身份驗證,這裏能鏈接上的緣由是咱們兩臺機都有相同的用戶名和密碼,也是上面說明中要配置相同windows帳戶的緣由(這裏也可使用數據庫的帳戶登陸)

要訂閱的是PC2機上的Test1數據庫

下一步,設置訂閱屬性

選擇「在如下windows帳戶下運行」,填寫PC1機windows帳戶,由於咱們在發佈服務器上進行分發。

後面的設置默認就行

 

 

(4)測試同步訂閱

當前PC1的Test1數據庫表內容爲

咱們插入幾條數據

 

查看PC2機的數據庫Test1的表數據有沒有變化

詳細的內容還能夠查看同步狀態信息,選中訂閱服務器右鍵,查看同步狀態。

點擊「監視」

 

還有代理狀態

雙擊右表的狀態條能夠查看同步的各類參數

到這裏同步訂閱功能測試完成。

 

2、常見問題彙總

(1)搜索不到局域網內的其它SqlServer數據庫

 

 

 

首先檢查一下網絡是否有問題,是否開啓了網絡發現,具體看上面的實驗前準備。

(2)訂閱的時候提示沒法訪問文件之類的問題

這個是訪問文件的權限問題,在windows裏對不能訪問的文件添加相應的權限便可。這裏遇到過的是沒法訪問快照文件。

 

(3)跨網段配置發佈訂閱

因爲公司的兩臺服務器不在同一個網段,因此上面的配置是不成功的,差異在哪裏呢?

情景再現:

PC1:發佈服務器

IP:10.33.1.222

掩碼:255.255.254.0

PC2:訂閱服務器

IP:10.24.0.100

掩碼:255.255.248.0

 

首先判斷兩臺機器是否連通的,否則什麼都是白搭。使用ping命令互相ping一下,若是沒問題再使用telnet測試端口是否可用telnet 10.248.22.100 1433,確認沒問題以後,發現鏈接沒問題啊,而後直接使用IP做爲數據庫登錄名:

結果報了要使用數據庫實例名稱登陸的錯誤,以前測試過使用名稱也是登陸不上的,問題的根源是由於不在同一個網段中,網絡發現開啓了也找不到對應這個名字的機器。那咱們本身指定這個名稱對應的IP地址就好啦。good~生氣

在發佈服務器的C:\Windows\System32\drivers\etc 目錄下找到hosts 文件,配置訂閱服務器的ip地址和數據庫實例名稱,這樣發佈服務器就能夠找到不在同一個網段的訂閱服務器實例了。

相關文章
相關標籤/搜索