近日接到客戶需求,想要進行地端的DB與 AWS RDS for SQL Server 進行複寫,而AWS 的官方目前有交易式複寫(Transaction Replication)的文件,但針對合併式複寫(Merge Replication)卻沒有,我在實際進行架設後,看似沒有問題的背後,其實包含了許多不同的問題,所以我特別的整理此篇文件,希望可以幫助到大家。
建立方式:
1. 請先建立RDS for SQL Server,並請在同一個網段中建立一台EC2,你可以透過 Windows with SQL Server 的 AMI 進行建立,建立完成後,確認EC2可以透過 SSMS 連接到 RDS。
2. 請透過 RDS DB instance endpoint 連線到 RDS 後,先確認 RDS 的主機名稱。
a. 請輸入下列的指令。
Select @@servername;
b. 使用nslookup 的指令反查 RDS DB instance endpoint 對應的 IP為何。
c. 請將輸出結果加一筆記錄到您的DNS Server中,或是在EC2中的 hosts 記錄中,加入一筆記錄,也是可以的。
PS: hosts 的檔案路徑: C:\Windows\System32\drivers\etc\hosts
3. 請確認在EC2上,可以透過電腦名稱連線到 RDS 端。
4. 請先在來源端,也是 EC2 上,建立複寫。
選擇需要進行複寫的資料庫
選擇合併式複寫 (Merge Replication)
選擇需要同步的表格(Table)有那些
此步驟主要是說明由於合併式複寫(Merge Replication) 會在有同步的表格最後加入一個識別欄位,所以此種複寫方式會變動到表格的結構,這點在請注意。
可以在此步驟中可以加入需要過濾的條件,但此步驟我們就先不加入。
建立完成後,即可看到已建立好一個發行集。
5. 設定完成複寫的發行集後,請在來源端的目錄路徑,設定此目錄可以允許讀寫。
路徑:C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\ReplData\
路徑的部份,其中15的部份可能會因為版本的不同而有不同,所以在請注意一下。
6. 請給予使用者 「everyone」 相關的權限。
此部份的權限設定很重要,如果沒有設定的話,你在最後的同步時,會發生下列的錯誤訊息。
Error messages:
The schema script 'testtable_2.sch' could not be propagated to the subscriber. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147201001)
Get help: http://help/MSSQL_REPL-2147201001
The process could not read file 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\ReplData\unc\EC2AMAZ-F9DPPG4_SQLTESTDB_REP-MERGE\20220305040629\testtable_2.sch' due to OS error 5. (Source: MSSQL_REPL, Error number: MSSQL_REPL0)
Get help: http://help/MSSQL_REPL0
Access is denied.
(Source: MSSQL_REPL, Error number: MSSQL_REPL5)
Get help: http://help/MSSQL_REPL5
7. 請在設定完成後,先將來源端的資料庫進行備份,並將檔案還原到RDS上。
7-1 另外由於 RDS 在還原資料庫的部份會有點不同,所以可以參考下列的文件。
How do I perform native backups of an Amazon RDS DB instance that's running SQL Server?
8. 接下來請接著設定訂閱集,此時同樣在來源端EC2上進行設定即可。
請設定連線到 RDS 中的帳號與密碼。
Caryhsu - 學無止盡: 如何透過merge Replication 複寫機制,同步 Ec2 與 Aws Rds For Sql Server 的資料庫 >>>>> Download Now
回覆刪除>>>>> Download Full
Caryhsu - 學無止盡: 如何透過merge Replication 複寫機制,同步 Ec2 與 Aws Rds For Sql Server 的資料庫 >>>>> Download LINK
>>>>> Download Now
Caryhsu - 學無止盡: 如何透過merge Replication 複寫機制,同步 Ec2 與 Aws Rds For Sql Server 的資料庫 >>>>> Download Full
>>>>> Download LINK