資料庫備份和複製

2021-04-19 20:35:00 字數 3812 閱讀 3663

1.1.1. 基本概念

複製是將一組資料從乙個資料來源拷貝到多個資料來源的技術,是將乙份資料發布到多個儲存站點上的有效方式。使用複製技術,使用者可以將乙份資料發布到多台伺服器上,從而使不同的伺服器使用者都可以在許可權的許可的範圍內共享這份資料複製技術可以確保分布在不同地點的資料自動同步更新,從而保證資料的一致性

1.1.2. 異構資料庫複製技術

1.1.2.1. 基本原理

主要用於分布式資料庫技術,採用的主要方式為sql重現法

sql重現法需要為每個源表建立觸發器,當源表發生修改、插入和刪除操作時,觸發器被啟動,通過呼叫儲存過程,將源表發生的操作還原為sql語句,向該源表對應的變更軌跡表中插入變更時間和還原後的sql語句,可大致分為變化捕獲和資料分發步驟。

1.1.2.2. 變化捕獲

1.1.2.3. 資料分發

將源表發生的變化應用於目標表,執行成功後刪除變更軌跡表中對應序號的記錄

1.1.3. sql server資料庫複製技術

1.1.3.1. 基本原理

sql server 主要採用publisher、subscriber的方式來處理複製。源資料所在的伺服器是publisher伺服器,負責提供資料。出版伺服器把要提供的資料的所有改變情況的拷貝複製到subscriber伺服器,subscriber伺服器包含有乙個subscriber資料庫,可接收資料的所有改變,並儲存這些改變,再把這些改變分發給subscriber伺服器。

1.1.3.2. 技術型別

按照複製目標來劃分:

1. 快照複製(snapshot)

新建乙個快照,放到指定的目錄下面供subscriber訪問。

2. 事務複製(transaction)

備份日誌,放到指定的目錄下面供subscriber訪問。

3. 合併複製(merge)

「基於sql重現法」,為源資料庫中的複製物件(源表或檢視)建立變更軌跡表,當源表發生變化時,變更軌跡表中記錄了變更情況,再通過事後從變更軌跡表中獲取sql語句,將源表中的資料複製到目標表中。

按照複製方式來劃分:

1. sql server agent 提供基於排程的複製

2. 手工複製(寫sql)

1.1.4. 案例

在開發跨地域進銷存管理系統時,如何實現不同地區的資料同步,如何保持資料的一致性、及時性成為系統成敗的關鍵。我們成功地解決了這個問題,現介紹如下。

系統環境資料庫系統:sql server 2005

作業系統:windows nt 4.0,iis4.0

網路:銷售中心通過一條專線連線到internet,各地區分銷點通過modem撥號連線到internet。

複製策略綜合考慮各種因素,如資料聯絡的緊密程度、網路的可靠性、費用等,我們選擇分散處理資料,定時同步資料的方式。為此,我們把資料分為兩類:只需單向複製的資料(例如系統的基礎資料、一部分日常處理的資料)需雙向複製的資料(一部分日常處理的資料)

不同型別的資料需採用不同的複製策略

只需單向複製的資料又可分為:由銷售中心維護,分發給各分銷點的資料;由各分銷點維護,彙總到銷售中心的資料。

由銷售中心維護,分發給各分銷點的資料在銷售中心的sql server上設定其自身作為出版伺服器和分發伺服器,定義好出版物,採用事物複製模型和匿名訂閱方式。

在分銷點的sql server上設定拉式訂閱。由各分銷點維護,彙總到銷售中心的資料在分銷點的sql server上設定其自身作為出版伺服器和分發伺服器,銷售中心的sql server作為訂閱伺服器。定義好出版物,採用事物複製模型。並設定推式訂閱,將資料複製到銷售中心

需雙向複製的資料在銷售中心的sql server上設定其自身作為出版伺服器和分發伺服器,定義好出版物,採用合併複製模型和匿名訂閱方式。在分銷點的sql server上設定拉式訂閱。

為什麼採用上述複製策略呢?這是因為銷售中心的計算機上有固定ip,而分銷點的計算機上只有動態ip以及資料有不同的分類

1.2. 資料庫備份

1.2.1. 基本概念

1.2.2. 備份方案

備份整個資料庫中的所有資料,用這個備份檔案就可以恢復整個資料庫到備份的時間截止的內容.這種備份生成的備份檔案最大,需要的時間最長,對實際業務的影響最大(如果資料庫大的話)  

備份自上次完全備份後,資料庫所做的改變.在差異備份前,必須有一次完全備份,而還原時,也必須先恢復完全備份,然後再在完全備份的基礎上恢復差異備份,不能用它單獨恢復資料庫.差異備份生成的檔案比完全備份小,需要的時間比較短

備份自上次備份後,資料庫所做的改變,在進行日誌備份前,也必須有一次完全備份.還原的時候,先還原完全備份,再還原日誌備份前,完全備份後的最近一次差異備份(如果有的話),然後再依次還原各次日誌備份.這種備份生成的備份檔案最小,處理時間也最少,對業務的影響很小,可以經常做

這種備份的使用很少,一般適用於重要資料的備份,這要求在設計資料庫時,把儲存重要的資料的表,放到單獨的檔案組中,這樣就可以單獨對重新的表進行備份.這種備份方式很少使用,它的前提也是要乙個完全備份

1.2.3. 備份方案比較

備份檔案大小處理時間對業務的影響資料重要性備註

完全備份最大

最長 最大

任何資料

差異備份較小

較短 較小

任何資料

需要完全備份一次

日誌備份最小

最短 最小

任何資料

需要完全備份一次

檔案/檔案組備份較大

較長 較大

重要資料

1.2.4. 備份方案選擇

綜上所述,做乙個合理的備份方案,應該是這樣:  

1.2.4.1. 目標

備份 恢復和複製SQLite資料庫

可使用backup restore和clone命令備份 恢復和複製sqlite資料庫。例如 1 備份資料庫 通過在命令列視窗下執行sqlite3.exe以重新建立和sqlite的連線。sqlite3test.db sqlite backup c test.db sqlite exit 2 恢復資料庫...

Mysql資料庫備份 資料庫備份和表備份

mysql中資料備份使用的命令是 mysqldump命令將資料庫中的資料備份成乙個文字檔案。表的結構和表中的資料將儲存在生成的文字檔案中。mysqldump命令的 工作原理很簡單。它先查出需要備份的表的結構,再在文字檔案中生成乙個create語句。然後,將表中的所有記錄轉換成一條insert語句。然...

資料庫備份和恢復

這裡介紹兩種方法 1.mysqldump mysqldump不需要登入到資料庫中就可以備份和恢復庫和表 1 備份 mysqldump uroot p 123123 mytest mnt mytest bak date f sql 注意這裡是在命令列操作的,不是在mysql資料中,所以也不會有冒號 2...