xtraback工具的使用和备份
http://www.cnblogs.com/gomysql/p/3650645.html
?
mysqldump
參數:
--all-databases #所有數據庫
--database dbname #指定庫的
--single-transaction #備份前執行transaction命令,保持數據的一致性
--lock-tables #針對備份前對當前庫下的表進行鎖表,只能讀取數據不能寫入,保證數據的一致性,一般是用于myisam引擎,對于innodb引擎一般使用--single-transaction
--lock-all-tables #在備份過程中,以鎖住所有庫下的所有表
=====================================================================
針對mysql不同引擎的備份參數:
如果庫中既有innodb引擎又有myisam引擎時可以添加參數為:
--single-transaction -l 這兩個參數的含義是:在innodb的引擎時既不會影響數據的讀寫,而且在myisam中是備份哪個對象,它就鎖定哪個對象,相對于myisam引擎的讀寫影響較小。
=========================================================
xtraback工具的使用:
安裝:
rpm -ivh http://mirror.centos.org/centos/6/os/x86_64/Packages/numactl-2.0.9-2.el6.x86_64.rpm
yum install rsync
yum install libaio
yum install perl-DBD-MySQL
rpm -ivh percona-xtrabackup-24-2.4.8-1.el6.x86_64.rpm --nodeps
創建備份用戶,給相應的權限
grant reload,lock tables,replication client,create tablespace,super,process on *.* to xtraback@'%' identified by '123';
全備份:
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=xtraback --password=123 --socket=/usr/local/mysql/mysqld.sock /opt/data/
|備份的目錄|
恢復全備份:
首先:
innobackupex --apply-log /opt/data/2017-09-14_15-21-31/
再次進行恢復:
innobackupex --defaults-file=/usr/local/mysql/my.cnf --copy-back --rsync /opt/data/2017-09-14_15-21-31/
最后修改data文件的權限:
chown -R /usr/local/mysql/data
增量備份:
1.全備份:
2.增量備份:
--incremental #指定增量備份的路徑
--incremental-basedir= #指定上一次完全備份或增量備份的備份路徑
--parallel=2
命令:
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=xtraback --password=123 --socket=/usr/local/mysql/mysqld.sock --incremental /opt/data/zeng/ --incremental-basedir=/opt/data/2017-09-14_15-21-31/ --parallel=2
ll /opt/data/zeng/
total 8
drwxr-x--- 7 root root 4096 Sep 14 15:54 2017-09-14_15-54-27
基于上次增量備份的增量備份:
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=xtraback --password=123 --socket=/usr/local/mysql/mysqld.sock --incremental /opt/data/zeng/ --incremental-basedir=/opt/data/zeng/2017-09-14_15-54-27/ --parallel=2
ll /opt/data/zeng/
total 8
drwxr-x--- 7 root root 4096 Sep 14 15:54 2017-09-14_15-54-27
drwxr-x--- 7 root root 4096 Sep 14 16:04 2017-09-14_16-04-07
恢復增量備份
--redo-only #是否回滾未提交的數據,添加不回滾,不添加回滾數據
1.先恢復完全備份
innobackupex --apply-log --redo-only /opt/data/2017-09-14_15-21-31/
2.恢復第一次的增量備份 (添加 --redo-only參數,最后一次增量恢復去掉這個參數)
innobackupex --apply-log --redo-only /opt/data/2017-09-14_15-21-31/ --incremental-dir=/opt/data/zeng/2017-09-14_15-54-27/
3.恢復第二次的增量備份,依次恢復增量備份
innobackupex --apply-log /opt/data/2017-09-14_15-21-31/ --incremental-dir=/opt/data/zeng/2017-09-14_16-04-07/
4.對整體的完全備份進行回復,回滾那些未提交的數據 (不添加--redo-only)
innobackupex --apply-log /opt/data/2017-09-14_15-21-31/
把恢復完的備份復制到mysql的家目錄中,并且給定權限,啟動mysqld
/etc/init.d/mysqld stop
恢復數據:
innobackupex --defaults-file=/usr/local/mysql/my.cnf --copy-back --rsync /opt/data/2017-09-14_15-21-31/
給定權限:
cd /usr/local/mysql
chown -R mysql:mysql data/
/etc/init.d mysqld start
最后檢查數據的完整性。
xtraback實現在線添加從庫:
參數:
--galera-info #會將master的binlog文件名和偏移量位置保存到xtrabackup_slave_info文件中
--safe-slave-backup #會暫停slave的SQL線程直到沒有打開的臨時表的時候開始備份。備份結束后SQL線程會自動啟動,這樣操作的目的主要是確保一致性的復制狀態。
實例:
1.在原有的slave上進行備份:
slave1
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=xtraback --password=123 --socket=/usr/local/mysql/mysqld.sock --slave-info --safe-slave-backup --no-timestamp /opt/clone
查看xtrabackup_slave_info文件內容,這個內容就是為搭建從庫時需要change master to的參數:
cat /opt/clone/xtrabackup_slave_info
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=404;
還原備份:
innobackupex --apply-log --redo-only /opt/clone/
將還原的數據文件復制到newslave上
rsync -avprP -e ssh /opt/clone/ 192.168.1.83:/opt/clone
|newslave的ip|
master上對newslave授權
在建主從的時候已經授權成功
拷貝slave1的配置文件到newslave上,并修改ID號:
scp /usr/local/mysql/my.cnf 192.168.1.83:/usr/local/mysql/
|newslave的ip|
newslave:
cat /usr/local/mysql/my.cnf|grep server
server-id = 4
在newslave上進行授權,并啟動服務:
cd /usr/local/mysql/
cp -rf /opt/clone ./data
chown -R mysql:mysql data/
/etc/init.d/mysqld start
查看xtrabackup_slave_info文件內容,并在newslave上進行CHANGE MASTER TO
change master to master_host='192.168.1.218',master_user='repl',master_password='123',master_log_file='mysql-bin.000002',master_log_pos=404;
啟動io線程,查看slave的狀態:
mysql> start slave;
mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
?
轉載于:https://www.cnblogs.com/Neverstopfootsteps/p/7643146.html
總結
以上是生活随笔為你收集整理的xtraback工具的使用和备份的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于OKHTTP
- 下一篇: php 利用scandir() 函数 扫