總結 mysql三種災備與恢復使用解析。

2021-09-21 11:17:53 字數 2482 閱讀 7268

目標:

1.使用mysqldump實現從邏輯角度完全備份mysql,配合二進位制日誌備份實現增量備份

2.使用lvm照從物理角度實現幾乎熱備的完全備份,配合二進位制日誌備份實現增量備份

3.使用percona公司的xrabackup實現完全熱備份與增量熱備份

環境準備:

建立目錄用於存放二進位制檔案位置

修改my.cnf

匯入hellodb.sql,在庫內置立study表,插入一些資料。

建立用於存放備份的目錄

一、使用mysqldump實現完全熱備+增量備份。

我們要使用mysqldump工具對innodb儲存引擎的資料庫做完全熱備,並且滾動二進位制日誌,為了下次恢復或者增量方便,還要記錄一下當前二進位制日誌檔案位置。

選項註解:

這時我們又給資料庫新增了資料

做一次增量備份

檢視剛剛做完全備份,滾動日誌之後記錄二進位制日誌檔案與起始位置。

檢視當前位置

好,lvm快照+二進位制日誌恢復完成。

三、使用xtrabackup實現對mysql進行熱備(完全+增量)。

安裝程式

完全熱備資料庫。

這時假設資料庫崩潰了

預處理備份,恢復資料,修改屬主屬組,啟動mysql。

innobackupex --copy-back /var/mybackup/2014-07-01_13-49-38/

chown -r mysql.mysql /mydata/

service mysqld start

服務啟動了,恢復成功,每一次資料庫恢復完成以後,要立即做一次完全備份。

資料庫執行了一段時間,加入了一些資料。

做第一次增量備份。

檢視檢查點檔案

再次給mysql新增一些資料。

做第二次增量備份。

注意:這裡的--incremental-basedir=指的是上一次增量備份的位置

檢視檢查點檔案

backup_type = incremental

from_lsn = 1667183

to_lsn = 1667534

last_lsn = 1667534

compact = 0

mysql又執行了一段時間,再次加入了一些資料。

這時資料庫崩潰了。

預處理完全備份

--redo-only //只做提交處理,不做回滾。

預處理第乙個增量到完全備份

預處理第二個增量到完全備份

切換到完全備份的目錄裡面

檢視檢查點檔案

backup_type = full-prepared

from_lsn = 0

to_lsn = 1667534

last_lsn = 1667534

compact = 0

你會發現日誌序列號範圍已經變成第二次增量備份後的日誌序列號了,表示增量同步成功。

恢復完全備份,修改檔案許可權,啟動服務。

登陸mysql互動介面檢視資料。

但是我們在第二次增量備份之後建立test表和插入的資料都沒有,沒關係我們通過二進位制日誌來恢復。

檢視第二次增量備份後xtrabackup幫我們建立的檔案(xtrabackup_binlog_info ),裡面記錄了二進位制日誌備份後的狀態和位置。

分析二進位制日誌,匯出sql指令碼,並執行。

mysql資料庫的災備及恢復完成。

小菜掌握的也不太好,有問題歡迎指出與我交流qq1183710107

總結mysql的三種外來鍵約束方式

runingxj 如果表a的主關鍵字是表b中的字段,則該字段稱為表b的外來鍵,表a稱為主表,表b稱為從表。外來鍵是用來實現參照完整性的,不同的外來鍵約束方式將可以使兩張表緊密的結合起來,特別是修改或者刪除的級聯操作將使得日常的維護工作更加輕鬆。這裡以mysql為例,總結一下3種外來鍵約束方式的區別和...

Oracle資料庫備份與恢復的三種方法

blueskys567原文oracle資料庫備份與恢復的三種方法 2006 10.有刪改oracle資料庫有三種標準的備份方法,它們分別是匯出 匯入 exp imp 熱備份和冷備份。匯出備件是一種邏輯備份,冷備份和熱備份是物理備份。利用export可將資料從資料庫中提取出來,利用import則可將提...

SDE資料庫的恢復與備份,共三種方法

sde資料庫的恢復與備份,共三種方法,算是完結篇吧 一 imp和exp命令對oracle9i sde空間資料庫的整體備份 恢復或遷移 方法1 假設 現在需要把orisde伺服器上的空間資料庫遷移到dessde伺服器上,在建立sde時二個伺服器上的預設使用者都是sde,密碼是sde。orisde伺服器...