冷備份是關閉資料庫時候的備份方式,通常做法是拷貝資料檔案
是簡單安全的一種備份方式,不能在資料庫執行時備份。
大型**無法做到關閉業務備份資料,所以冷備份不是最佳選擇
熱備份是在系統執行狀態下備份資料
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...