先簡(jiǎn)單介紹一下這個(gè)工具:innobackupex
innobackupex比xtarbackup有更強(qiáng)的功能,它整合了xtrabackup和其他的一些功能,他不但可以全量備份/恢復(fù),還可以基于時(shí)間的增量備份與恢復(fù)。
innobackupex備份原理
innobackupex首先調(diào)用xtrabackup來(lái)備份innodb數(shù)據(jù)文件,當(dāng)xtrabackup完成后,innobackupex就查看文件xtrabackup_suspended ;然后執(zhí)行“FLUSH TABLES WITH READ LOCK”來(lái)備份其他的文件
innobackupex恢復(fù)原理
innobackupex首先讀取my.cnf,查看變量(datadir,innodb_data_home_dir,innodb_data_file_path,innodb_log_group_home_dir)對(duì)應(yīng)的目錄是存在,確定相關(guān)目錄存在后,然后先copy myisam表和索引,然后在copy innodb的表、索引和日志。
介紹一下環(huán)境:
MySQL:5.6.19
安裝路徑:/u01/mysql
數(shù)據(jù)文件:/u01/mysql/data
備份源:/u02/backup
我是異機(jī)恢復(fù),和本機(jī)操作一樣。
一、 全量備份
步驟:
./innobackupex --user=root --password=root --host=172.17.210.112 --parallel=4 --throttle=400 --stream=tar /mysqlbak/innobackupex 2>/mysqlbak/innobackupex/bak.log 1>/mysqlbak/innobackupex/fullbak.tar
注釋一下,常用的參數(shù)。
--user=root 備份操作用戶名,一般都是root用戶
--password=root123 密碼
--host=172.17.210.112 主機(jī)ip,本地可以不加
--parallel=4 --throttle=400 并行個(gè)數(shù),根據(jù)主機(jī)配置選擇合適的,默認(rèn)是1個(gè),多個(gè)可以加快備份速度。
--stream=tar 壓縮類型,這里選擇tar格式,可以加,可不加。加上文件就小一點(diǎn),在備份的時(shí)候就已經(jīng)打包好了。
/mysqlbak/innobackupex 備份存放的目錄
2>/mysqlbak/innobackupex/bak.log 備份日志,將備份過程中的輸出信息重定向到bak.log
1>/mysqlbak/innobackupex/fullbak.tar 備份文件壓縮后的名字
給出不壓縮的全備:
./innobackupex --user=root --password=root --host=172.17.210.112 --parallel=4 --throttle=400 /mysqlbak/innobackupex 2>/mysqlbak/innobackupex/bak.log 1>/mysqlbak/innobackupex/
查看日志信息,會(huì)出現(xiàn)
141011 09:44:02 innobackupex: Executing FLUSH ENGINE LOGS...
141011 09:44:02 innobackupex: Waiting for log copying to finish
xtrabackup: The latest check point (for incremental): '14275993522'
xtrabackup: Stopping log copying thread.
.>> log scanned up to (14275993522)
xtrabackup: Creating suspend file '/tmp/xtrabackup_log_copied' with pid '19659'
141011 09:44:03 innobackupex: All tables unlocked
141011 09:44:03 innobackupex: Waiting for ibbackup (pid=19659) to finish
xtrabackup: Transaction log of lsn (14275990028) to (14275993522) was copied.
innobackupex: Backup created in directory '/mysqlbak/innobackupex'
141011 09:44:04 innobackupex: Connection to database server closed
innobackupex: You must use -i (--ignore-zeros) option for extraction of the tar stream.
141011 09:44:04 innobackupex: completed OK!
表示備份成功。
二、全量恢復(fù)
恢復(fù)備份文件要保證datadir文件為空,否則會(huì)報(bào)如下的錯(cuò)誤
[root@newbidb data]# innobackupex --user=root /data/backup/
IMPORTANT: Please check that the copy-back run completes successfully.
At the end of a successful copy-back run innobackupex
prints "completed OK!".
Original data directory is not empty! at /usr/bin/innobackupex line 568.
恢復(fù)第一步:應(yīng)用日志。
[root@newbidb bin]# ./innobackupex --user=root --password=root1 --defaults-file=/etc/my.cnf --apply-log /u02/backup/
恢復(fù)第二步:拷貝文件。
[root@newbidb bin]# ./innobackupex --user=root --password=root1 --defaults-file=/etc/my.cnf --copy-back /u02/backup/
注釋一下,常用的參數(shù)。
--defaults-file=/etc/my.cnf 恢復(fù)會(huì)使用my.cnf文件把需要恢復(fù)的文件,恢復(fù)到my.cnf指定的位置。
--apply-log 這是備份時(shí)產(chǎn)生的日志,
--copy-back 這是備份源,解壓后的備份文件。
恢復(fù)需要一點(diǎn)點(diǎn)的時(shí)間,出現(xiàn)下面信息表示恢復(fù)成功。
innobackupex: Starting to copy InnoDB system tablespace
innobackupex: in '/u02/backup'
innobackupex: back to original InnoDB data directory '/u01/mysql/data'
innobackupex: Copying '/u02/backup/ibdata1' to '/u01/mysql/data/ibdata1'
innobackupex: Starting to copy InnoDB undo tablespaces
innobackupex: in '/u02/backup'
innobackupex: back to '/u01/mysql/data'
innobackupex: Starting to copy InnoDB log files
innobackupex: in '/u02/backup'
innobackupex: back to original InnoDB log directory '/u01/mysql/data'
innobackupex: Copying '/u02/backup/ib_logfile1' to '/u01/mysql/data/ib_logfile1'
innobackupex: Copying '/u02/backup/ib_logfile0' to '/u01/mysql/data/ib_logfile0'
innobackupex: Finished copying back files.
恢復(fù)第三步:修改文件權(quán)限。
cd 到data目錄
chown -R mysql.mysql data/
可能出現(xiàn)的報(bào)錯(cuò):
1、出現(xiàn)下面錯(cuò)誤,先初始化一下mysql
[root@newbidb support-files]# ./mysql.server start
Starting MySQL...The server quit without updating PID file (/u01/mysql/data/newbidb.pid).[FAILED]
[root@newbidb script]# ./mysql_install_db --basedir=/u01/mysql --no-defaults --skip-name-resolve --user=mysql --datadir=/u01/mysql/data
2、權(quán)限:應(yīng)該恢復(fù)使用的是root用戶,但是MySQL需要MySQL用戶去訪問。
[root@newbidb support-files]# ./mysql.server restart
MySQL server PID file could not be found![FAILED]
Starting MySQL.The server quit without updating PID file (/u01/mysql/data/newbidb.pid).[FAILED]
3、連接MySQL的時(shí)候
[root@newbidb bin]# ./mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
沒有這個(gè)文件,touch mysql.sock 并修改文件權(quán)限。
分享名稱:MySQLinnobackupex全量備份恢復(fù)-創(chuàng)新互聯(lián)
URL地址:http://jinyejixie.com/article24/ccsije.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、App設(shè)計(jì)、移動(dòng)網(wǎng)站建設(shè)、定制網(wǎng)站、網(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)
猜你還喜歡下面的內(nèi)容