「實戰(zhàn)篇」開源項目docker化運維部署-mysql 熱備份數(shù)據(jù)(五)

原創(chuàng)文章眨攘,歡迎轉(zhuǎn)載主慰。轉(zhuǎn)載請注明:轉(zhuǎn)載自IT人故事會,謝謝鲫售!
原文鏈接地址:「實戰(zhàn)篇」開源項目docker化運維部署-mysql 熱備份數(shù)據(jù)(五)

本次說說熱熱備份數(shù)據(jù)共螺,上次搭建了pxc的集群,搭建好了復雜均衡情竹,做了雙機熱備這種方案藐不。無論做前后端分離的項目,還是做微服務的項目秦效,都需要有一個強大穩(wěn)定的集群雏蛮。數(shù)據(jù)庫備份分為:熱備份和冷備份,如果項目沒有上線冷備份沒問題阱州。如果上線用冷備份就有問題挑秉。源碼:https://github.com/limingios/netFuture/tree/master/mysql-pxc/

冷備份

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

先讓其中的一個PXC下線犀概,然后通過拷貝數(shù)據(jù)文件的方式完成備份,備份完畢下線的PXC上線夜惭,完整于其他節(jié)點的自動同步阱冶。

熱備份

  1. 熱備份是在系統(tǒng)運行的狀態(tài)下備份數(shù)據(jù),也是難度最大的備份滥嘴。舉個例子木蹬,如果淘寶下線1個小時備份數(shù)據(jù),淘寶損失多少錢若皱,誰受的的了啊镊叁。這都是白花花的銀子啊。
  2. Mysql常用的熱備份有LVM和XtraBackup兩種方案走触。LVM是針對的分區(qū)備份晦譬,針對linux系統(tǒng)下的,他號稱任何一種數(shù)據(jù)庫都可以完成備份互广,但是有個弊端敛腌,就是在備份的時候只能讀不能寫入。
  3. 建議使用XtrBackup熱備Mysql惫皱,不需要鎖像樊,備份的時候即可讀也可以寫,XtraBackup而且還是免費的旅敷。

XtrBackup

是一款基于InnoDB的在線熱備工具生棍,具有開源免費的,支持在線熱備媳谁,占用磁盤空間小涂滴,能夠非秤呀矗快速的備份與恢復mysql數(shù)據(jù)庫。它支持mysql的各種衍生版本柔纵。

  • XtraBackup優(yōu)勢
  1. 備份過程不鎖表缔杉,快速可靠
  2. 備份過程不會打斷正在執(zhí)行的事務
  3. 能夠基于壓縮等功能節(jié)約磁盤空間和流量
  • 全量備份和增量備份
  1. 全量備份是備份全部數(shù)據(jù),備份過程時間搁料,占用空間大或详。
  2. 增量備份是只備份變化的那部分數(shù)據(jù)。備份時間短加缘。占用空間小鸭叙。

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

XtraBackup 安裝

  • 準備工作

這個工具要求在數(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 全量備份數(shù)據(jù)

PXC容器中安全XtraBackup,并執(zhí)行備份萨脑,后悔啊當初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

PXC 全量恢復步驟

  1. 數(shù)據(jù)庫可以熱備份龙助,但是不能熱還原。為了避免恢復過程中的數(shù)據(jù)同步蛛芥,我們采用空白的mysql還原數(shù)據(jù)提鸟,然后再建立PXC集群的方式。所以在開發(fā)中一定要注意權(quán)限問題仅淑,不要給開發(fā)人員root用戶称勋。

  2. 還原數(shù)據(jù)前要將未提交的事務回滾,還原數(shù)據(jù)之后重啟!

  • 執(zhí)行代碼

原來的容器全部刪除

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

進入容器內(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

PS:數(shù)據(jù)庫的熱備份,冷還原也講完了事秀,真心感覺也不是那么復雜寞奸。其實就是這樣,但是在云平臺越來越盛行的今天洛姑,基本上買個rdrs數(shù)據(jù)庫這些功能都有了。了解下XtraBackup 這個工具確定很重要晚上很多的寫成shell腳本的,更加方便了揩瞪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市篓冲,隨后出現(xiàn)的幾起案子李破,更是在濱河造成了極大的恐慌,老刑警劉巖壹将,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗤攻,死亡現(xiàn)場離奇詭異,居然都是意外死亡诽俯,警方通過查閱死者的電腦和手機妇菱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暴区,“玉大人闯团,你說我怎么就攤上這事⊙掌簦” “怎么了偷俭?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長缰盏。 經(jīng)常有香客問我涌萤,道長,這世上最難降的妖魔是什么口猜? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任负溪,我火速辦了婚禮,結(jié)果婚禮上济炎,老公的妹妹穿的比我還像新娘川抡。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布崖堤。 她就那樣靜靜地躺著侍咱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪密幔。 梳的紋絲不亂的頭發(fā)上楔脯,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音胯甩,去河邊找鬼昧廷。 笑死,一個胖子當著我的面吹牛偎箫,可吹牛的內(nèi)容都是我干的木柬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼淹办,長吁一口氣:“原來是場噩夢啊……” “哼眉枕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起娇唯,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤齐遵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后塔插,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梗摇,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年想许,在試婚紗的時候發(fā)現(xiàn)自己被綠了伶授。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡流纹,死狀恐怖糜烹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情漱凝,我是刑警寧澤疮蹦,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站茸炒,受9級特大地震影響愕乎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜壁公,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一感论、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧紊册,春花似錦比肄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掀亥。三九已至,卻和暖如春示括,著一層夾襖步出監(jiān)牢的瞬間铺浇,已是汗流浹背痢畜。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工垛膝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丁稀。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓吼拥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親线衫。 傳聞我的和親對象是個殘疾皇子凿可,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容