基於LVM的MySQL備份

2022-09-01 14:12:17 字數 1208 閱讀 6141

lvm:使用邏輯卷的快照功能備份,幾乎熱備

前提:1.資料檔案要在邏輯卷上;

2.此邏輯卷所在組必須有足夠空間使用快照卷;

3.資料檔案和事物日誌要在同乙個卷上。

步驟:1.開啟會話,施加讀鎖,鎖定所有表

mysql>flush tables  with read lock;

mysql>flush logs;

2.通過另乙個終端,儲存二進位制日誌檔案及相關位置資訊

$mysql -uroot -p -e 『show master status\g;』 > /path/to/master.info

3.建立快照卷

#lvcreate -l 50m -s -p r -n lv_name  /path/to/source_lv

-s|--snapshot:指定建立快照

[-p|--permission ]:設定建立的快照具有被讀或讀寫特性

-n:指定快照名字

4.釋放鎖

mysql>unlock tables;

5.掛載快照卷,備份

$mount  /path/to/lv_name  /backup/fullbak

$cp -a /mysql/*  /backup

6.刪除快照卷

7.增量備份二進位制日誌

$cat  /path/to/master.info;檢視當前二進位制日誌位置

$mysqlbinlog --start-position=107 mysql-bin.000005 >/backup/bak.sql

當乙個事務跨越不同的二進位制檔案時,開啟通過時間備份--start-datetime

$mysqlbinlog --start-datetime=』2016-05-06 14:55:34』 mysql-bin.00005 mysql-bin.000006 > /backup/bak-`date +%f-%h-%m-%s`.sql

還原:$cp -a  /backup/fullbak  /mysql 注意

mysql

目錄下的檔案屬主是

mysql

$/etc/init.d/mysqld restart

mysql>set sql_log_bin=0;關閉二進位制日誌

mysql>source /backup/bak-`date +%f-%h-%m-%s`.sql;還原資料

mysql>set sql_log_bin=1;

mysql資料庫基於LVM快照的備份

lvm snapshot 基於lvm快照的備份 1.事務日誌跟資料檔案必須在同乙個卷上 2.建立快照卷之前,要請求mysql的全域性鎖,在快照建立完成之後釋放鎖 3.在請求全域性鎖完成之後,做一次日誌滾動 做二進位制日誌檔案及位置標記 手動進行 步驟 1.請求全域性鎖,並滾動日誌 mysql flu...

mysql資料庫基於LVM快照的備份

lvm snapshot 基於lvm快照的備份 1.事務日誌跟資料檔案必須在同乙個卷上 2.建立快照卷之前,要請求mysql的全域性鎖,在快照建立完成之後釋放鎖 3.在請求全域性鎖完成之後,做一次日誌滾動 做二進位制日誌檔案及位置標記 手動進行 步驟 1.請求全域性鎖,並滾動日誌 mysql flu...

lvm快照方式進行備份

1.建立快照 lvcreate size 100m snapshot name mdb snap01 dev vg0 mongodb因為是增量快照,100m是diff的大小.2.mount快照卷後,就開始拷貝了.採用寫時定向 cow 我猜測 快照生成後,原始卷對應塊的修改,應該是生成新的block,...