innobackupex 在线热备份 从库创建过程 (最新)

kevin.Zhu 发布于:2013-1-16 12:34 分类:Mysql  有 10 人浏览,获得评论 0 条  


1. 安装

debian/ubuntu安装   :  

在/etc/apt/source.lst中添加 以 下

#mysql热备份工具 xtrabackup

deb http://repo.percona.com/apt precise main

deb-src http://repo.percona.com/apt precise main


sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A


apt-get install percona-xtrabackup


2. 测试环境: 

主DB:192.168.1.101

从DB1:192.168.1.102

从DB2:192.168.1.103(准备在线添加做为从机的mysql数据库)

数据库版本:mysql 5.1.61(select  version())


3. 部署: 主DB,线上数据正常写入的同时实施备份

innobackupex --user=root --password=teach327 --defaults-file=/etc/my.cnf --port=3306  --database=login  /tmp/backup/ >/tmp/backup/innoback.log 2>&1


备份全库可以用

innobackupex --user=root --password=teach327 --defaults-file=/etc/my.cnf  /tmp/backup/ >/tmp/backup/innoback.log 2>&1

# 备份完成后,可以查看备份文件目录下, xtrabackup_binlog_info   此文件会记录主上的日志和position号


4. 将备份生成的文件 在从机还原备份 

innobackupex --apply-log /tmp/backup/2014-02-22_07-43-36/


5. 关闭从机mysql

6. 备份从机mysql目录    mv /var/lib/mysql    /var/lib/mysql_bak

7. 还源  innobackupex --copy-back /tmp/backup/2014-02-22_07-43-36/

8. 修正文件所属 chown mysql:mysql  /mysql目录

9. cp 原数据库备份 cp /var/lib/mysql_bak/*    /var/lib/mysql

10. 删除 ib_logfile*    

11. cp /tmp/backup/2014-02-22_07-43-36/ibdata1  /var/lib/mysql

12. cat /cat /tmp/backup/2014-02-22_07-43-36/xtrabackup_binlog_info 找到binlog的同步位置

13. 设置从库 

mysql> change master to master_host='192.168.1.101',

   -> master_user='slave',

   -> master_password='slave',

   -> master_log_file='mysql-101-bin.000008',

   -> master_log_pos=2423;

# 开启同步

mysql> start slave;

14. 查看从库状态 show slave status\G;