前言:
對(duì)于公司企業(yè)來(lái)說(shuō),數(shù)據(jù)丟失極有可能造成毀滅性的傷害慧邮,所以數(shù)據(jù)備份保存并且能夠隨時(shí)能進(jìn)行恢復(fù)使用调限,對(duì)企業(yè)來(lái)說(shuō)非常非常重要!
問(wèn)題一:我們?yōu)槭裁葱枰獋浞?误澳?
因?yàn)榉?wù)器運(yùn)行過(guò)程中耻矮,有可能出現(xiàn)硬件故障、遭受惡意攻擊忆谓、數(shù)據(jù)庫(kù)程序奔潰裆装、自然災(zāi)害、人工操作失誤造成誤刪數(shù)據(jù)倡缠,在這幾項(xiàng)中最容易的是人工操作失誤進(jìn)行刪除數(shù)據(jù)
問(wèn)題二:我們?cè)摬捎媚姆N備份方式 哨免?
一般情況有物理備份、邏輯備份等昙沦,并且相對(duì)備份數(shù)據(jù)量還可以分為完全備份和部分備份琢唾。下面簡(jiǎn)單解釋一下
- 全量備份:備份整個(gè)數(shù)據(jù)庫(kù)的所有數(shù)據(jù)
- 增量備份:僅備份上一次完全備份或增量備份以來(lái)變量的那部數(shù)據(jù)
- 差異備份:僅備份自上一次完全備份以來(lái)變量的那部數(shù)據(jù);(浪費(fèi)空間桅滋,還原效果比增量快)
- 物理備份:直接復(fù)制數(shù)據(jù)文件進(jìn)行的備份
- 邏輯備份(mysqldump):通過(guò)mysql慧耍,從數(shù)據(jù)庫(kù)導(dǎo)出數(shù)據(jù)另存在一個(gè)或多個(gè)文件中通過(guò)一個(gè)大的SELECT 語(yǔ)句身辨,轉(zhuǎn)成一個(gè) INSERT 語(yǔ)句 進(jìn)行備份
- 熱備份:在沒(méi)用停止數(shù)據(jù)庫(kù)和業(yè)務(wù)的情況進(jìn)行備份,并且能夠正確完整備份出當(dāng)時(shí)的數(shù)據(jù)
- 溫備份:在數(shù)據(jù)庫(kù)進(jìn)行鎖表情況芍碧,只能進(jìn)行讀情況下進(jìn)行備份煌珊,影響寫(xiě)操作
- 冷備份:在業(yè)務(wù)停止和數(shù)據(jù)庫(kù)停止情況下,讀寫(xiě)均不可進(jìn)行情況下進(jìn)行備份
問(wèn)題三:備份時(shí)候考慮問(wèn)題 泌豆?
一般情況企業(yè)的業(yè)務(wù)是無(wú)間斷地提供服務(wù)定庵,就是你進(jìn)行備份時(shí)候也不能進(jìn)行暫停業(yè)務(wù)讓你進(jìn)行備份,并且備份時(shí)候服務(wù)器的負(fù)載踪危、IO問(wèn)題蔬浙,進(jìn)行成功備份以后假如需要進(jìn)行恢復(fù)數(shù)據(jù),多快能夠進(jìn)行快速恢復(fù)贞远。
我們選用哪種備份 畴博?
這次我們討論的是如何進(jìn)行熱備份,一般在生產(chǎn)環(huán)境之中蓝仲,使用的是 全量備份+增量備份+binlog 形式俱病,我們選擇使用的工具是xtrabackup,是percona公司開(kāi)發(fā)的mysql開(kāi)源熱備份工具
下面是如何在CentOS 7 下進(jìn)行備份的具體步驟:
- 首先進(jìn)行安裝
1.可以在 percona 公司網(wǎng)站進(jìn)行下載袱结,按照自己安裝方式選擇下載rpm包或者源碼包進(jìn)行編譯安裝
安裝前先進(jìn)行安裝以下這些依賴(lài)包
yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL installperl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
然后進(jìn)行安裝xtrabackup
yum install percona-xtrabackup-24-2.4.8-1.el7.x86_64.rpm
- 創(chuàng)建一個(gè)備份用戶(hù)
使用一個(gè)具有創(chuàng)建和授權(quán)的用戶(hù)登陸mysql亮隙,進(jìn)行創(chuàng)建用戶(hù)并且授一定權(quán)限:
GRANT RELOAD,LOCKTABLES,REPLOCATION CLIENT,CREATE TABLESPACE,SUPER ON *.* TO ‘USER_NAME’@’HOSTNAME/IP’ IDENTIFIED BY ‘Your_PASSWORD’ ;
備注:
USER_NAME 換成你要?jiǎng)?chuàng)建用戶(hù)的用戶(hù)名
HOSTNAME/IP 換成授權(quán)登陸的主機(jī)名或ip
YOUR_PASSWORD 換成你的密碼
RELOAD 和 LOCKTABLES 權(quán)限為了執(zhí)行 FLUSHTABLES WITH READ LOCK
REPLICATION CLIENT 為了獲取binary log位置
CREATE TABLESPACE 權(quán)限為了導(dǎo)入表,用戶(hù)表級(jí)別的恢復(fù)
SUPER權(quán)限在slave環(huán)境下備份用來(lái)啟動(dòng)和關(guān)閉slave線程
- 說(shuō)明xtrabackup工具語(yǔ)法
在說(shuō)明xtrabackup之前先來(lái)認(rèn)識(shí)一下 innobackupex 這個(gè)命令垢夹,innobackupex 在是xtrabackup工具的其中一個(gè)命令溢吻,在xtrabackup 2.3 版本之前 innobackupex 是一個(gè)perl 腳本,用來(lái)兼容備份 innodb 果元、myisam促王、xtradb引擎的數(shù)據(jù)庫(kù)。現(xiàn)在新版本的 innobackupex 已經(jīng)不再是一個(gè)perl腳本而晒,官方已經(jīng)整合封裝在C里面
語(yǔ)法格式示例:
innobackupex [--defaults-file=/etc/my.cnf] --user=USERNAME --password=PASSWORD --port=3306 /data/backup/full --slave-info --safe-slave-backup --parallel=4 --safe-slave-backup-timeout=7200 --rsync
--rsync 這個(gè)參數(shù)一般用作分布式數(shù)據(jù)庫(kù)集群時(shí)候使用
--slave-info 會(huì)記錄binlog的位置和文件名字硼砰,可以用作主從復(fù)制時(shí)候
我們使用幫助查看innobackupex的幫助文檔:
進(jìn)行完整備份例子:
innobackupex --defaults-file=/usr/local/mysql/etc/my.cnf --slave-info --host=192.168.3.199 --user=china --password=ChinaPassw0rd /data/data_backup/
進(jìn)行增量備份例子:
要我綁定微信,不想寫(xiě)欣硼,改天有時(shí)間再寫(xiě)
- 進(jìn)行恢復(fù)
參考鏈接:http://blog.csdn.net/u010066807/article/details/50679276