複製和日誌傳送
日誌傳送涉及單個資料庫的兩個副本,而這兩個副本通常駐留在不同的計算機上。在任何給定時間都只有一個資料庫副本可供客戶端使用。該副本稱為主資料庫。通過日誌傳送將客戶端對主資料庫所做的更新傳播到資料庫的另一副本(稱為輔助資料庫)。日誌傳送涉及將由主資料庫上執行的每個插入、更新或刪除所組成的事務日誌應用到輔助資料庫上。
日誌傳送可以與複製一起使用,具有以下行為:
日誌傳送故障轉移後,複製不繼續。如果發生故障轉移,複製代理不連線到輔助資料庫,因此不將事務複製到訂閱伺服器。如果發生到主資料庫的故障回覆,則複製恢復。所有由日誌傳送從輔助資料庫複製回主資料庫的事務均被複制到訂閱伺服器。
如果主資料庫永久丟失,則可以重新命名輔助資料庫,以使複製可以繼續。本主題的其餘部分說明處理此情況的要求和過程。給出的示例是釋出資料庫(對日誌傳送最常見的資料庫),但也可以對訂閱資料庫和分發資料庫應用類似的過程。
有關無需重新配置複製即可恢復複製中所涉及資料庫的資訊,請參閱備份和還原複製的資料庫。
注意:
建議使用資料庫映象而不使用日誌傳送,以便提供釋出資料庫的可用性。有關詳細資訊,請參閱複製和資料庫映象。
主資料庫丟失時從輔助資料庫複製的要求和過程
注意以下要求和注意事項:
如果主資料庫包含多個釋出資料庫,則將所有釋出資料庫日誌傳送到同一個輔助資料庫。
輔助伺服器例項的安裝路徑必須與主伺服器例項的路徑相同。輔助伺服器中的使用者資料庫位置必須與主伺服器中的位置相同。
在主伺服器中備份服務主鍵。該鍵將在輔助伺服器中還原。有關詳細資訊,請參閱 BACKUP SERVICE MASTER KEY (Transact-SQL)。
日誌傳送不保證不丟失資料。主資料庫上的失敗可能導致丟失尚未備份的資料或失敗期間所丟失備份的資料。
事務複製的日誌傳送
對於事務複製,日誌傳送的行為取決於 sync with backup 選項。可以對釋出資料庫和分發資料庫設定此選項;釋出伺服器的日誌傳送僅與對釋出資料庫的設定有關。
對釋出資料庫設定此選項可確保直到在釋出資料庫上備份了事務之後才將其傳遞到分發資料庫。這樣,便可以在輔助伺服器中還原上次的釋出資料庫備份,而分發資料庫不可能具有已還原發布資料庫中沒有的事務。此選項可保證在釋出伺服器故障轉移到輔助伺服器時,釋出伺服器、分發伺服器和訂閱伺服器之間保持一致性。由於直到將事務在釋出伺服器中備份之後才能將其傳遞到分發資料庫,因此滯後時間和吞吐量會受到影響;如果應用程式允許此滯後時間,則建議對釋出資料庫設定此選項。如果未設定 sync with backup 選項,訂閱伺服器可能會收到輔助伺服器中已恢復資料庫中不再包含的更改。有關詳細資訊,請參閱快照複製和事務複製的備份和還原策略。
使用 sync with backup 選項配置事務複製和日誌傳送
如果未對釋出資料庫設定 sync with backup 選項,請執行 sp_replicationdboption '
為釋出資料庫配置日誌傳送。有關詳細資訊,請參閱日誌傳送部署。
如果釋出伺服器出現故障,則使用 RESTORE LOG 的 KEEP_REPLICATION 選項,將上次的資料庫日誌還原到輔助伺服器。這將保留資料庫的所有複製設定。有關詳細資訊,請參閱故障轉移到日誌傳送輔助伺服器和 RESTORE (Transact-SQL)。
將 msdb 資料庫和 master 資料庫從主伺服器還原到輔助伺服器。有關詳細資訊,請參閱還原 model 和 msdb 資料庫時的注意事項和還原 master 資料庫時的注意事項。如果主伺服器同時也是分發伺服器,則將分發資料庫從主伺服器還原到輔助伺服器。
這些資料庫在複製配置和設定方面必須與主伺服器中的釋出資料庫一致。
在輔助伺服器中,重新命名計算機,再重新命名 Microsoft SQL Server 例項,以便與主伺服器名稱匹配。有關重新命名計算機的資訊,請參閱 Windows 文件。有關重新命名伺服器的資訊,請參閱如何重新命名承載 SQL Server 獨立例項的計算機和如何重新命名 SQL Server 故障轉移群集例項。
在輔助伺服器中,還原以前從主伺服器備份的服務主鍵。有關詳細資訊,請參閱 RESTORE SERVICE MASTER KEY (Transact-SQL)。
不設定 sync with backup 選項的情況下配置事務複製和日誌傳送
為釋出資料庫配置日誌傳送。有關詳細資訊,請參閱日誌傳送部署。
如果釋出伺服器出現故障,則使用 RESTORE LOG 的 KEEP_REPLICATION 選項,將上次的資料庫日誌還原到輔助伺服器。這將保留資料庫的所有複製設定。有關詳細資訊,請參閱故障轉移到日誌傳送輔助伺服器和 RESTORE (Transact-SQL)。
將 msdb 資料庫和 master 資料庫從主伺服器還原到輔助伺服器。有關詳細資訊,請參閱還原 model 和 msdb 資料庫時的注意事項和還原 master 資料庫時的注意事項。如果主伺服器同時也是分發伺服器,則將分發資料庫從主伺服器還原到輔助伺服器。
這些資料庫在複製配置和設定方面必須與主伺服器中的釋出資料庫一致。
在輔助伺服器中,重新命名計算機,再重新命名 SQL Server 例項,以便與主伺服器名稱匹配。有關重新命名計算機的資訊,請參閱 Windows 文件。有關重新命名伺服器的資訊,請參閱如何重新命名承載 SQL Server 獨立例項的計算機和如何重新命名 SQL Server 故障轉移群集例項。
可能從日誌讀取器代理會收到錯誤訊息,指出釋出資料庫與分發資料庫不同步。
在輔助伺服器中,還原以前從主伺服器備份的服務主鍵。有關詳細資訊,請參閱 RESTORE SERVICE MASTER KEY (Transact-SQL)。
執行 sp_replrestart。該儲存過程可用於強制日誌讀取器代理忽略釋出資料庫日誌中所有以前複製的事務。儲存過程完成後應用的事務由日誌讀取器代理處理。有關詳細資訊,請參閱 sp_replrestart (Transact-SQL)。
儲存過程成功執行後,請重新啟動日誌讀取器代理。有關詳細資訊,請參閱如何啟動和停止複製代理 (SQL Server Management Studio)。
可以在釋出伺服器中應用已經分發到訂閱伺服器的事務。為確保分發代理嘗試在訂閱伺服器中重新應用這些事務時不會因錯誤而失敗,請指定標題為“遇到資料一致性錯誤時繼續”的代理配置檔案。有關詳細資訊,請參閱跳過事務複製中的錯誤。
合併複製的日誌傳送
請按照下面過程中的步驟配置合併複製和日誌傳送。
配置合併複製和日誌傳送
為釋出資料庫配置日誌傳送。有關詳細資訊,請參閱日誌傳送部署。
如果釋出伺服器出現故障,則使用 RESTORE LOG 的 KEEP_REPLICATION 選項,將上次的資料庫日誌還原到輔助伺服器。這將保留資料庫的所有複製設定。有關詳細資訊,請參閱故障轉移到日誌傳送輔助伺服器和 RESTORE (Transact-SQL)。
將 msdb 資料庫和 master 資料庫從主伺服器還原到輔助伺服器。有關詳細資訊,請參閱還原 model 和 msdb 資料庫時的注意事項和還原 master 資料庫時的注意事項。如果主伺服器同時也是分發伺服器,則將分發資料庫從主伺服器還原到輔助伺服器。
這些資料庫在複製配置和設定方面必須與主伺服器中的釋出資料庫一致。
在輔助伺服器中,重新命名計算機,再重新命名 SQL Server 例項,以便與主伺服器名稱匹配。有關重新命名計算機的資訊,請參閱 Windows 文件。有關重新命名伺服器的資訊,請參閱如何重新命名承載 SQL Server 獨立例項的計算機和如何重新命名 SQL Server 故障轉移群集例項。
在輔助伺服器中,還原以前從主伺服器備份的服務主鍵。有關詳細資訊,請參閱 RESTORE SERVICE MASTER KEY (Transact-SQL)。
將釋出資料庫與一個或多個訂閱資料庫同步。通過此操作可以上載那些以前在釋出資料庫中做出的但未在已還原備份中顯示的更改。可以上載的資料取決於篩選釋出的方法:
如果不篩選釋出,則應能通過與最新的訂閱伺服器同步而使釋出資料庫成為最新的。
如果篩選釋出,則可能無法使釋出資料庫成為最新的。假設有一個按如下方式分割槽的表:每個訂閱僅收到一個區域(北部、東部、南部和西部)的客戶資料。如果每個資料分割槽至少有一個訂閱伺服器,那麼使每個分割槽與訂閱伺服器同步會更新發布資料庫。但是,以西部分割槽為例,如果未將其資料複製到任何訂閱伺服器,則無法使釋出伺服器中的這一資料成為最新的。在這種情況下,建議重新初始化所有訂閱,以使釋出伺服器和訂閱伺服器中的資料收斂。有關詳細資訊,請參閱重新初始化訂閱。
如果與執行 SQL Server 2005 之前的 SQL Server 版本的訂閱伺服器同步,則訂閱無法匿名;它必須是客戶端訂閱或伺服器訂閱(在早期版本中稱為本地訂閱和全域性訂閱)。有關詳細資訊,請參閱同步資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-494029/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【RocketMQ】Dledger日誌複製原始碼分析MQ原始碼
- 5-5配置Mysql複製 基於日誌點的複製MySql
- Go 實現 Raft 第三篇:命令和日誌複製GoRaft
- mysql 基於日誌的主從複製MySql
- SQL server資料庫高可用日誌傳送的方法SQLServer資料庫
- SQL Server誤區 一個例項多個映象和日誌傳送延遲SQLServer
- Raft演算法系列教程3:日誌複製Raft演算法
- DB2日誌傳送基礎知識講解CIDB2
- 複製和引用複製
- logging 重複打日誌
- 使用 Vim 傳送郵件和檢查日曆
- IDEA如何快速複製日誌生成sql語句,太妙啦IdeaSQL
- 淺複製和深複製的概念與值複製和指標複製(引用複製)有關 淺複製 “指標複製 深複製 值複製指標
- JS物件複製:深複製和淺複製JS物件
- Scrapy的日誌等級和請求傳參
- PostgreSQL構建流複製拉取日誌的起始位置在哪裡SQL
- python日誌重複輸出Python
- python 深複製和淺複製Python
- JavaScript 淺複製和深複製JavaScript
- 使用阿里簡訊(防止薅羊毛、限制傳送次數)直接複製直接用阿里
- MariaDB系列之三:基於日誌(binlog)主主複製(Master-Master)AST
- go slice深複製和淺複製Go
- Go 語言傳值和深淺複製問題Go
- Linux如何遠端複製,限速和斷點續傳Linux斷點
- Mysql 傳統主從複製MySql
- 線上將傳統模式複製改為GTID複製模式模式
- MySQL 傳統複製與 GTID 複製原理及操作詳解MySql
- 對於複製普通物件 深複製和淺複製是否一樣物件
- oracle DG 日誌傳輸小結Oracle
- 案例二十每分鐘監控錯誤日誌併傳送郵件給相關人員
- python深複製和淺複製的區別Python
- js 淺複製和深複製的區別和應用JS
- lumen cli日誌和普通日誌分開儲存
- Kubernetes 叢集日誌 和 EFK 架構日誌方案架構
- scrapy處理post請求的傳參和日誌等級
- 0229-UDP 傳送和接收UDP
- 0230-TCP 傳送和接收TCP
- 郵件和簡訊傳送
- Go的Channel傳送和接收Go