本文主要給大家簡單講講docker化運維部署-MySQL 熱備份數(shù)據(jù)講義,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補充一下,這里就不涉獵了,直奔主題,希望可以給大家?guī)硪恍嶋H幫助。
成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)十余年經(jīng)驗成就非凡,專業(yè)從事成都網(wǎng)站建設(shè)、成都做網(wǎng)站,成都網(wǎng)頁設(shè)計,成都網(wǎng)頁制作,軟文平臺,一元廣告等。十余年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:18980820575,我們期待您的來電!
先讓其中的一個PXC下線,然后通過拷貝數(shù)據(jù)文件的方式完成備份,備份完畢下線的PXC上線,完整于其他節(jié)點的自動同步。
####XtrBackup
是一款基于InnoDB的在線熱備工具,具有開源免費的,支持在線熱備,占用磁盤空間小,能夠非常快速的備份與恢復(fù)mysql數(shù)據(jù)庫。它支持mysql的各種衍生版本。
XtraBackup優(yōu)勢
在正常的生產(chǎn)系統(tǒng)上,一般是一周做一次全量的備份,一周做一次增量的備份。就足夠了。
這個工具要求在數(shù)據(jù)庫的節(jié)點之內(nèi)。備份的出來的數(shù)據(jù)就直接。需要創(chuàng)建一個數(shù)據(jù)卷,他用來備份XtraBackup 產(chǎn)生的文件,然后映射到宿主機的磁盤里面。
創(chuàng)建數(shù)據(jù)卷
docker volume create backup
停止其中一個節(jié)點,這里選擇node1,目的就是為了刪除node1,增加新創(chuàng)建的數(shù)據(jù)卷。已經(jīng)運行的容器是不可以增加新的數(shù)據(jù)卷的。只要還掛載v1的數(shù)據(jù)卷,v1的文件并沒有刪除,所以數(shù)據(jù)不會丟失。
docker stop node1
docker rm node1
重新安裝node1 掛載新的節(jié)點,并同步其他4個節(jié)點。 --CLUSTER_JONIN=node2 新創(chuàng)建的node1,同步node2節(jié)點。
docker run -d -p 3306:3306 --net=net1 --name=node1 \
-e CLUSTER_NAME=PXC \
-e MYSQL_ROOT_PASSWORD=a123456 \
-e XTRABACKUP_PASSWORD=a123456 \
-v v1:/var/lib/mysql \
--privileged \
--ip 172.18.0.2 \
-v backup:/data \
-e CLUSTER_JOIN=node2 \
percona/percona-xtradb-cluster
PXC容器中安全XtraBackup,并執(zhí)行備份,后悔啊當(dāng)初PXC的時候沒直接找個帶XtraBackup的鏡像。
docker exec -it --user root node1
echo "nameserver 8.8.8.8" | tee /etc/resolv.conf > /dev/null
apt-get clean
apt-get update
apt-get install vim
vi /etc/apt/sources.list
sources.list 添加下面的內(nèi)容
deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse
deb http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted
deb http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted
deb-src http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted
apt-get clean
apt-get update
apt-get install percona-xtrabackup-24
出現(xiàn)completed OK!說明備份完畢。
innobackupex --user=root --password=a123456 /data/backup/full
數(shù)據(jù)庫可以熱備份,但是不能熱還原。為了避免恢復(fù)過程中的數(shù)據(jù)同步,我們采用空白的mysql還原數(shù)據(jù),然后再建立PXC集群的方式。所以在開發(fā)中一定要注意權(quán)限問題,不要給開發(fā)人員root用戶。
原來的容器全部刪除
docker stop node1 node2 node3 node4 node5
docker rm node1 node2 node3 node4 node5
docker volume rm v1 v2 v3 v4 v5
docker volume create v1
創(chuàng)建node1 和數(shù)據(jù)卷
docker volume create v1 docker run -d -p 3306:3306 --net=net1 --name=node1 \ -e CLUSTER_NAME=PXC \ -e MYSQL_ROOT_PASSWORD=a123456 \ -e XTRABACKUP_PASSWORD=a123456 \ -v v1:/var/lib/mysql \ --privileged \ --ip 172.18.0.2 \ -v backup:/data \ percona/percona-xtradb-cluster
進(jìn)入容器內(nèi)還原數(shù)據(jù)庫
#root用戶登錄
docker exec -it --user root node1 bash
#刪除數(shù)據(jù)
rm -rf /var/lib/mysql/*
#沒有提交的數(shù)據(jù)回滾
innobackupex --user=root --password=a123456 --apply-back /data/backup/full/2018-12-06_17-18-19/
#執(zhí)行下冷還原
innobackupex --user=root --password=a123456 --copy-back /data/backup/full/2018-12-06_17-18-19/
chown -R mysql:mysql /var/lib/mysql/
退出容器重啟下,node1節(jié)點
docker stop node1
docker start node1
docker化運維部署-mysql 熱備份數(shù)據(jù)講義就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。