星期日, 10月 03, 2021

[SQL] 交易式複寫-設定散發

該筆記延續 [SQL] 交易式複寫-建立 Windows 帳號和快照集資料夾,根據 教學課程:準備 SQL Server 進行複寫 (發行者、散發者、訂閱者) 文章來設定散發,該文章作法是利用複寫精靈在發行者端設定散發,同時是發行者和散發者
   
在文章內有特別提到
如果您使用 localhost 而非實際的伺服器名稱連線到 SQL Server,則系統會以警告提示您 SQL Server 無法連線到 localhost 或 IP 位址。 在警告對話方塊中選取 [確定]。 在 [連線到伺服器] 對話方塊中,將 [伺服器名稱] 從 localhost 或 IP 位址 變更為您的伺服器名稱。 然後選取 [連線] 。
嘗試用 localhost 來進行連線,並啟動複寫精靈,會出現下方錯誤訊息

[SQL] 交易式複寫-設定散發-1

在發行者端設定散發

利用複寫精靈 step by step 設定散發,以下為步驟流程

SSMS => 複寫 => 滑鼠右鍵 => 設定散發

[SQL] 交易式複寫-設定散發-2

啟動設定散發精靈

[SQL] 交易式複寫-設定散發-3

把 Node1 設定為散發者

[SQL] 交易式複寫-設定散發-4

指定快照集資料夾,該步驟必須把路徑改為網路路徑,也就是快照資料集的分享路徑

[SQL] 交易式複寫-設定散發-5


設定散發資料庫,該資料庫會儲存複寫所用的預存程序、結構描述和中繼資料

[SQL] 交易式複寫-設定散發-6

設定發行者使用指定的散發資料庫

[SQL] 交易式複寫-設定散發-7

執行上述設定並產生 Scritp 檔案

[SQL] 交易式複寫-設定散發-8

設定明細,完成散發設定

[SQL] 交易式複寫-設定散發-10

[SQL] 交易式複寫-設定散發-11

設定完成後可以在系統資料庫內看見 distribution 資料庫

[SQL] 交易式複寫-設定散發-13

設定完成後,在 SQL Server Agent 內可以看見相關的 Job

[SQL] 交易式複寫-設定散發-12
散發精靈產生的 Script
/****** 正在編寫複寫組態指令碼。指令碼日期: 2021/10/2 下午 03:43:23 ******/
/****** 請注意: 基於安全的考量,所有密碼參數都是用 NULL 或空的字串來編寫指令碼。******/

/****** 正在將伺服器安裝為散發者。指令碼日期: 2021/10/2 下午 03:43:23 ******/
use master
exec sp_adddistributor 
	@distributor = N'NODE1\SQL2019', 
	@password = N''
GO
exec sp_adddistributiondb 
	@database = N'distribution', 
	@data_folder = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\Data', 
	@log_folder = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQL2019\MSSQL\Data', 
	@log_file_size = 2, 
	@min_distretention = 0, 
	@max_distretention = 72, 
	@history_retention = 48,
	@deletebatchsize_xact = 5000, 
	@deletebatchsize_cmd = 2000, 
	@security_mode = 1 -- 預設值 - Windows 整合式驗證,連接到散發者時要使用的安全性模式
GO

use [distribution] 
if (not exists (select * from sysobjects where name = 'UIProperties' and type = 'U ')) 
	create table UIProperties(id int) 
if (exists (select * from ::fn_listextendedproperty('SnapshotFolder', 'user', 'dbo', 'table', 'UIProperties', null, null))) 
	EXEC sp_updateextendedproperty N'SnapshotFolder', N'\\Node1\repldata', 'user', dbo, 'table', 'UIProperties' 
else 
	EXEC sp_addextendedproperty N'SnapshotFolder', N'\\Node1\repldata', 'user', dbo, 'table', 'UIProperties'
GO

exec sp_adddistpublisher 
	@publisher = N'Node1\SQL2019', 
	@distribution_db = N'distribution', 
	@security_mode = 1, -- 預設值,散發者的複寫代理程式利用 Windows 驗證來連接到發行者。
	@working_directory = N'\\Node1\repldata', 
	@trusted = N'false', 
	@thirdparty_flag = 0, 
	@publisher_type = N'MSSQLSERVER'
GO

設定完成後,SSMS => 複寫 => 滑鼠右鍵,就可以看見 [發行者屬性]、[散發者屬性] 和 [停用發行與散發] 這三個選項

沒有留言:

張貼留言