docker化運(yùn)維部署-mysql熱備份數(shù)據(jù)講義

本文主要給大家簡(jiǎn)單講講docker化運(yùn)維部署-MySQL 熱備份數(shù)據(jù)講義,相關(guān)專業(yè)術(shù)語(yǔ)大家可以上網(wǎng)查查或者找一些相關(guān)書(shū)籍補(bǔ)充一下,這里就不涉獵了,直奔主題,希望可以給大家?guī)?lái)一些實(shí)際幫助。

成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)十余年經(jīng)驗(yàn)成就非凡,專業(yè)從事成都網(wǎng)站建設(shè)、成都做網(wǎng)站,成都網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)頁(yè)制作,軟文平臺(tái),一元廣告等。十余年來(lái)已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:18980820575,我們期待您的來(lái)電!

冷備份
  1. 冷備份是關(guān)閉數(shù)據(jù)庫(kù)時(shí)候的備份方式,通常做法是拷貝數(shù)據(jù)文件
  2. 冷備份是最簡(jiǎn)單最安全的一種備份方式
  3. 大型網(wǎng)站無(wú)法做到關(guān)閉業(yè)務(wù)備份數(shù)據(jù),所以冷備份不是最佳選擇
  • PXC冷備份方案

    先讓其中的一個(gè)PXC下線,然后通過(guò)拷貝數(shù)據(jù)文件的方式完成備份,備份完畢下線的PXC上線,完整于其他節(jié)點(diǎn)的自動(dòng)同步。

熱備份
  1. 熱備份是在系統(tǒng)運(yùn)行的狀態(tài)下備份數(shù)據(jù),也是難度最大的備份。舉個(gè)例子,如果淘寶下線1個(gè)小時(shí)備份數(shù)據(jù),淘寶損失多少錢,誰(shuí)受的的了啊。這都是白花花的銀子啊。
  2. Mysql常用的熱備份有LVM和XtraBackup兩種方案。LVM是針對(duì)的分區(qū)備份,針對(duì)linux系統(tǒng)下的,他號(hào)稱任何一種數(shù)據(jù)庫(kù)都可以完成備份,但是有個(gè)弊端,就是在備份的時(shí)候只能讀不能寫(xiě)入。
  3. 建議使用XtrBackup熱備Mysql,不需要鎖,備份的時(shí)候即可讀也可以寫(xiě),XtraBackup而且還是免費(fèi)的。
  4. docker化運(yùn)維部署-mysql 熱備份數(shù)據(jù)講義

####XtrBackup

是一款基于InnoDB的在線熱備工具,具有開(kāi)源免費(fèi)的,支持在線熱備,占用磁盤空間小,能夠非??焖俚膫浞菖c恢復(fù)mysql數(shù)據(jù)庫(kù)。它支持mysql的各種衍生版本。

  • XtraBackup優(yōu)勢(shì)

    1. 備份過(guò)程不鎖表,快速可靠
    2. 備份過(guò)程不會(huì)打斷正在執(zhí)行的事務(wù)
    3. 能夠基于壓縮等功能節(jié)約磁盤空間和流量
  • 全量備份和增量備份
    1. 全量備份是備份全部數(shù)據(jù),備份過(guò)程時(shí)間,占用空間大。
    2. 增量備份是只備份變化的那部分?jǐn)?shù)據(jù)。備份時(shí)間短。占用空間小。

在正常的生產(chǎn)系統(tǒng)上,一般是一周做一次全量的備份,一周做一次增量的備份。就足夠了。

XtraBackup 安裝
  • 準(zhǔn)備工作

    這個(gè)工具要求在數(shù)據(jù)庫(kù)的節(jié)點(diǎn)之內(nèi)。備份的出來(lái)的數(shù)據(jù)就直接。需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)卷,他用來(lái)備份XtraBackup 產(chǎn)生的文件,然后映射到宿主機(jī)的磁盤里面。

創(chuàng)建數(shù)據(jù)卷

docker volume create backup

停止其中一個(gè)節(jié)點(diǎn),這里選擇node1,目的就是為了刪除node1,增加新創(chuàng)建的數(shù)據(jù)卷。已經(jīng)運(yùn)行的容器是不可以增加新的數(shù)據(jù)卷的。只要還掛載v1的數(shù)據(jù)卷,v1的文件并沒(méi)有刪除,所以數(shù)據(jù)不會(huì)丟失。

docker stop node1
docker rm node1

重新安裝node1 掛載新的節(jié)點(diǎn),并同步其他4個(gè)節(jié)點(diǎn)。 --CLUSTER_JONIN=node2 新創(chuàng)建的node1,同步node2節(jié)點(diǎn)。

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 全量備份數(shù)據(jù)

    PXC容器中安全XtraBackup,并執(zhí)行備份,后悔啊當(dāng)初PXC的時(shí)候沒(méi)直接找個(gè)帶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!說(shuō)明備份完畢。

innobackupex --user=root --password=a123456 /data/backup/full

PXC 全量恢復(fù)步驟
  1. 數(shù)據(jù)庫(kù)可以熱備份,但是不能熱還原。為了避免恢復(fù)過(guò)程中的數(shù)據(jù)同步,我們采用空白的mysql還原數(shù)據(jù),然后再建立PXC集群的方式。所以在開(kāi)發(fā)中一定要注意權(quán)限問(wèn)題,不要給開(kāi)發(fā)人員root用戶。

  2. 還原數(shù)據(jù)前要將未提交的事務(wù)回滾,還原數(shù)據(jù)之后重啟!
  • 執(zhí)行代碼

    原來(lái)的容器全部刪除

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ù)庫(kù)

#root用戶登錄
docker exec -it --user root  node1 bash
#刪除數(shù)據(jù)
rm -rf /var/lib/mysql/*
#沒(méi)有提交的數(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é)點(diǎn)

docker stop node1
docker start node1

docker化運(yùn)維部署-mysql 熱備份數(shù)據(jù)講義就先給大家講到這里,對(duì)于其它相關(guān)問(wèn)題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專業(yè)知識(shí)分享給大家的。

分享題目:docker化運(yùn)維部署-mysql熱備份數(shù)據(jù)講義
新聞來(lái)源:http://muchs.cn/article26/ihgpjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站軟件開(kāi)發(fā)、網(wǎng)站收錄、動(dòng)態(tài)網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)