簡(jiǎn)介:
為天寧等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及天寧網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、做網(wǎng)站、天寧網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
Xtrabackup是由percona提供的MySQL數(shù)據(jù)庫(kù)備份工具,可以對(duì)Innodb數(shù)據(jù)庫(kù)做熱備
特點(diǎn):
(1)備份過(guò)程快速、可靠
(2)備份過(guò)程不會(huì)打斷正在執(zhí)行的事務(wù)
(3)能夠基于壓縮等功能節(jié)約磁盤(pán)空間和流量
(4)自動(dòng)實(shí)現(xiàn)備份檢驗(yàn)
(5)還原速度快
準(zhǔn)備工作:
1.安裝xtrabackup(在percona官網(wǎng)下載rpm包)
# yum install percona-xtrabackup-2.2.3-4982.el6.x86_64.rpm
2.創(chuàng)建最小權(quán)限用戶(hù)
MariaDB [(none)]>grant reload,lock tables,replication client on *.* to 'backupuser'@'localhost' identified by 'backuppassword';
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.04 sec)
開(kāi)始備份:(模擬線上環(huán)境)
1.完全備份(生成的備份目錄為2015-04-09_02-35-22)
# innobackupex --user=backupuser --password=backuppassword /backup/
若顯示以下內(nèi)容即為備份成功:
150409 02:35:25 innobackupex: Connection to database server closed
150409 02:35:25 innobackupex: completed OK!
若顯示以下錯(cuò)誤信息:在my.cnf文件[mysqld] 中添加innodb_log_file_size = 5M
InnoDB: Error: log file ./ib_logfile0 is of different size 5242880 bytes
InnoDB: than specified in the .cnf file 50331648 bytes!
innobackupex: Error: The xtrabackup child process has died at /usr/bin/innobackupex line 2672.
2.在數(shù)據(jù)庫(kù)插入數(shù)據(jù),模擬msyqld正常線上運(yùn)行第一天
MariaDB [(none)]> create database xx;
Query OK, 1 row affected (0.00 sec)
3.執(zhí)行增量備份(生成2015-04-09_02-59-13,此時(shí)--incremental-basedir則應(yīng)該指為完全備份的目錄2015-04-09_02-35-22)
注意:增量備份僅能應(yīng)用于InnoDB或XtraDB表,對(duì)于MyISAM表而言,執(zhí)行增量備份時(shí)其實(shí)進(jìn)行的是完全備份
# innobackupex --incremental /backup/ --incremental-basedir=/backup/2015-04-09_02-35-22/
顯示以下信息即為增量備份成功:
innobackupex: MySQL binlog position: filename 'mysql-bin.000001', position 324
150409 02:59:18 innobackupex: Connection to database server closed
150409 02:59:18 innobackupex: completed OK!
4.再次在數(shù)據(jù)庫(kù)插入數(shù)據(jù),模擬mysqld正常線上運(yùn)行第二天
MariaDB [(none)]> create database yy;
Query OK, 1 row affected (0.00 sec)
5.再次執(zhí)行增量備份(生成2015-04-09_03-00-38,此時(shí)--incremental-basedi則應(yīng)該指為上一次增量備份的目錄2015-04-09_02-59-13)
# innobackupex --incremental /backup/ --incremental-basedir=/backup/2015-04-09_02-59-13/
6.再次在數(shù)據(jù)庫(kù)插入數(shù)據(jù),模擬mysqld正常線上運(yùn)行第三天
MariaDB [(none)]> create database zz;
Query OK, 1 row affected (0.00 sec)
7.模擬事故,停掉mysqld,刪除/data目錄下的數(shù)據(jù)
注意:線上環(huán)境應(yīng)該將二進(jìn)制日志文件(binlog)和數(shù)據(jù)文件分開(kāi)存放;
# service mysqld stop
說(shuō)明:因?yàn)榇颂帉?shí)驗(yàn)我并沒(méi)有將二進(jìn)制日志文件和數(shù)據(jù)分開(kāi)存放,所以我先將二進(jìn)制日志復(fù)制到其他目錄再刪除數(shù)據(jù)
# cp mysql-bin.000001 /backup/
# rm /data/* -rf
8.查看上一次增量備份,二進(jìn)制日志最后記錄position的位置
# cat /backup/2015-04-09_03-00-38/xtrabackup_binlog_info
mysql-bin.000001 479
9.導(dǎo)出二進(jìn)制日志,從最后備份的position開(kāi)始
# mysqlbinlog mysql-bin.000001 --start-position="479">/backup/binlog.sql
恢復(fù)數(shù)據(jù):
一般情況下,在備份完成后,數(shù)據(jù)尚且不能用于恢復(fù)操作,因?yàn)閭浞莸臄?shù)據(jù)中可能會(huì)包含尚未提交的事務(wù)或已經(jīng)提交但尚未同步至數(shù)據(jù)文件中的事務(wù)。因此,此時(shí)數(shù)據(jù)文件仍處理不一致?tīng)顟B(tài)。“準(zhǔn)備”的主要作用正是通過(guò)回滾未提交的事務(wù)及同步已經(jīng)提交的事務(wù)至數(shù)據(jù)文件也使得數(shù)據(jù)文件處于一致性狀態(tài)
“準(zhǔn)備”(prepare)增量備份與整理完全備份有著一些不同,尤其要注意的是:
(1)需要在每個(gè)備份(包括完全和各個(gè)增量備份)上,將已經(jīng)提交的事務(wù)進(jìn)行“重放”。“重放”之后,所有的備份數(shù)據(jù)將合并到完全備份上。
(2)基于所有的備份將未提交的事務(wù)進(jìn)行“回滾”。
此時(shí)備份目錄下的所有文件:
按排列順序:完全備份文件 第一次增量備份文件 第二次增量備份文件 導(dǎo)出的部分二進(jìn)制日志文件 所有的二進(jìn)制日志文件
1.整理合并備份文件
# innobackupex --apply-log --redo-only /backup/2015-04-09_02-35-22/
將第一個(gè)增量備份合并到完全備份中
# innobackupex --apply-log --redo-only /backup/2015-04-09_02-35-22/ --incremental-dir=/backup/2015-04-09_02-59-13/
將第二個(gè)增量備份合并到完全備份中
# innobackupex --apply-log --redo-only /backup/2015-04-09_02-35-22/ --incremental-dir=/backup/2015-04-09_03-00-38/
注意:假如我們?cè)诿恐苋胀砩?0:00點(diǎn)做完全備份,在周1-周6晚上00:00點(diǎn)做增量備份,剛好有用戶(hù)一直在00:00點(diǎn)前一直在操作,并且在00:01分才提交事務(wù),所以為了避免系統(tǒng)自動(dòng)將備份時(shí)候未提交的事務(wù)做回滾操作,所以我們需要加上--redo-only參數(shù),讓其只提交事務(wù),而不回滾事務(wù)。到最后系統(tǒng)會(huì)判定哪些是需要回滾的操作執(zhí)行回滾
2.恢復(fù)操作
# innobackupex --copy-back /backup/2015-04-09_02-35-22/
3.改變恢復(fù)后數(shù)據(jù)目錄(/data)下文件的屬主屬組為msyql
# chown -R mysql.mysql /data/*
4.查看數(shù)據(jù)庫(kù)有備份的內(nèi)容有無(wú)恢復(fù)
# service mysqld start
可以看到備份的數(shù)據(jù)已經(jīng)恢復(fù)
5.通過(guò)二進(jìn)制日志恢復(fù)未來(lái)得及備份的數(shù)據(jù)
# mysql <binlog.sql
可以看到未來(lái)的及備份的數(shù)據(jù)也通過(guò)二進(jìn)制日志恢復(fù)
-------------------------------完成。-------------------------------------
當(dāng)前題目:xtrabackup備份msyql數(shù)據(jù)庫(kù)
網(wǎng)頁(yè)路徑:http://m.newbst.com/article32/gegjsc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)