熱備份資料

2021-09-24 19:34:41 字數 2587 閱讀 2184

冷備份是關閉資料庫時候的備份方式,通常做法是拷貝資料檔案

是簡單安全的一種備份方式,不能在資料庫執行時備份。

大型**無法做到關閉業務備份資料,所以冷備份不是最佳選擇

熱備份是在系統執行狀態下備份資料

mysql常見的熱備份有lvm和xtrabackup兩種方案

1.lvm:linux的分割槽備份命令,可以備份任何資料庫;但是會對資料庫加鎖,只能讀取;而且命令複雜

2.xtrabackup:不需要鎖表,而且免費

1.備份過程中不鎖表,快速可靠

2.備份過程中不會打斷正在執行地事務

3.備份資料經過壓縮,占用磁碟空間小

1.全量備份:備份全部資料。備份過程時間長,占用空間大。第一次備份要使用全量備份

2.增量備份: 只備份變化的那部分資料。備份的時間短,占用空間小。第二次以後使用增量備份

1.備份要在某個pxc節點的容器內進行,但應該把備份資料儲存到宿主機內。所以採用目錄對映技術。

建立資料卷

docker volume create backup
2.挑選乙個pxc節點node1,將其容器停止並刪除,然後重新建立乙個增加了backup目錄對映的node1容器

docker stop node1

docker rm node1 # 資料庫資料儲存在docker卷v1中,不會丟失

# 引數改變:

# 1. -e cluster_join=node2;原來其他節點是通過node1加入集群的,現在node1重新建立,需要選擇乙個其他節點加入集群

# 2. -v backup:/data;將docker資料卷backup對映到容器的/data目錄

docker run -d --restart=always -u root -p 3306:3306 -e mysql_root_password=123456 -e cluster_name=pxc -e xtrabackup_password=123456 -e cluster_join=node2 -v v1:/var/lib/mysql -v backup:/data --network=net1 --ip 172.18.0.2 --name=node1 pxc

3.在node1容器中安裝percona-xtrabackup-24熱備工具

docker exec -it node1 bash

apt-get update

apt-get install percona-xtrabackup-24

4.全量備份

innobackupex --backup -u root -p 123456 /data/backup/full
資料庫可以熱備份,但是不能熱還原,否則會造成業務資料和還原資料的衝突。

對於pxc集群為了避免還原過程中各節點資料同步衝突的問題,我們要先解散原來的集群,刪除節點。然後新建節點空白資料庫,執行還原,最後再創建起其他集群節點。

還原前還要將熱備份儲存的未提交的事務回滾,還原之後重啟mysql

1.停止並刪除pxc集群所有節點

docker stop node1 node2 node3 node4 node5

docker rm node1 node2 node3 node4 node5

docker volume rm v1 v2 v3 v4 v5

2.按照之前的步驟重新建立node1容器,並進入容器,執行冷還原

# 建立卷

docker volume create v1

# 建立容器

docker run -d -p 3306:3306 -e mysql_root_password=123456 -e cluster_name=pxc -e xtrabackup_password=123456 -v v1:/var/lib/mysql -v backup:/data --name=node1 --network=net1 --ip 172.18.0.2 pxc

# 以root身份進入容器

docker exec -it -u root node1 bash

# 刪除資料

rm -rf /var/lib/mysql/*

# 準備階段,清空事務

# 執行冷還原,還原資料

innobackupex --user=root --password=123456 --copy-back /data/backup/full/2019-06-28_03-36-59

# 更改還原後的資料庫檔案屬主

chown -r mysql:mysql /var/lib/mysql

# 退出容器後,重啟容器

docker stop node1

docker start node1

mysql備份資料 mysql 備份資料

1 備份命令 格式 mysqldump h主機名 p埠 u使用者名稱 p密碼 dbname tbname 檔名.sql 如果tbname不填,就是單個資料據的所有表 例如 mysqldump h 192.168.1.100 p 3306 uroot ppassword database cmdb d...

centos備份資料

備份mysql 首先備份mysql,方法多種,下面介紹一種標準方法。1,匯出mysql資料庫內容 mysqldump u root p password db 1 db 1.sql 2,匯入備份內容到新的版本 mysqldump u root p password db 1 db 1.sql 3,相...

mysqldump備份資料

mysqldump輸出的資料檔案有兩種形式 如果帶了 tab選項,mysqldump會為每張表建立兩個檔案,乙個是以tab間隔的文字檔案包含表的內容資料,字尾是.txt 乙個是表的建立語句,表示資料庫表的結構,sql檔案。兩個檔名與表名相同。如果不帶 tab選項,那麼mysqldump直接輸出.sq...