使用xtrabackup备份恢复innodb数据(不同机器之间)

###########################备份数据库############################

1. 直接使用二进制版本
#centOS4.6版本用这个
wget http://www.percona.com/downloads/XtraBackup/XtraBackup-0.9.5rc/RPM/rhel4/xtrabackup-0.9.5rc-35.rhel4.x86_64.rpm
#centOS5.0以上版本用这个
wget http://www.percona.com/downloads/XtraBackup/XtraBackup-0.9.5rc/RPM/rhel5/xtrabackup-0.9.5rc-50.rhel5.x86_64.rpm

2. 安装

rpm -ivh xtrabackup-0.9.5rc-35.rhel4.x86_64.rpm

3. 修改/etc/my.cnf
[mysqld]
datadir=/data/database/mysql/
不用重启数据库

4. 在A机上运行 xtrabackup , 并将输出文件打包到B机, 准备在B机上用xtrabackup还原这些数据

#### A机上备份数据  注意,增加--slave-info是为了保存主从同步信息

/usr/bin/innobackupex-1.5.1 --user=root --password='`cat /data/save/mysql_root`' --no-lock --stream=tar /tmp/ --slave-info | gzip - > backup74.tar.gz

 

###########################还原数据库############################
scp backup74.tar.gz 123.123.123.123:/data/database/xtra/
cd /data/database/xtra/
#### 注意解压的时候一定要加上i参数
tar xfzi backup.tar.gz

#### 日志(/data/database/xtra/ 此目录为解压后的目录)
innobackupex-1.5.1 --apply-log  /data/database/xtra/

#### 数据(/data/database/xtra/ 此目录为解压后的目录)
innobackupex-1.5.1 --copy-back  /data/database/xtra/

####修改权限,否则mysql无法启动
chown -R mysql:mysql .

还原数据库后要重启数据库


还原数据库最好把需要恢复的数据库关掉,恢复后启动会存在三个问题:
1.由于备份是在未锁库未停MYSQL服务的情况下进行的。所以还原出来的数据存在事务回滚。
事务回滚的同时又进行了数据库主从同步,那就会造成,记录重复。那么恢复后的数据库会报如下错误:
ERROR: 1062 Duplicate entry '257959' for key 1 080422.....

 

2.因为是从一台机器拉到另外一台机器上,所以主机名发生了变化,那么用以同步的relay-bin日志名称
也跟原来的不同,如果不改正过来,会发生如下错误:
100526  3:39:38 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=/data/database/mysql/ww-relay-bin' to avoid this problem.

 

3.同样是因为从一台机器上备份过来,所以root的密码也己经给恢复到备份源机一样。如不改正,会发生如下错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 

解决方法如下:
vi /etc/my.cnf
relay-log=ww-relay-bin #重定义日志名称
slave-skip-errors=1007,1051,1062 #跳过错误
重启数据库。

转载于:https://www.cnblogs.com/henbo/archive/2010/05/27/1745521.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值