因为mysql做了多实例,所以配置文件有所不同,现在我做的是从一个单实例的数据库恢复到一个多实例的数据库里面,弄了挺久.网上找到这位大哥的文章,可以参考下.
xtrabackup多实例mysql备份,他想改源码,厉害.下面是一些步骤:
1.在原来的数据库做备份
innobackupex --user=root --defaults-file=/etc/my.cnf /data/backup
备份成功会有ok提示
2.使用命令scp -r /data/backup/.* root@ip:/data/backup
拷贝到远程机子上,目标数据库
3.这里有点难搞,因为是多实例,所以有两个[mysqld1],[mysqld2],我想改个其他的实例名,试过没有成功,哪位指点下?配置的文件目录被我改成了/etc/my.cnf,方便启动mysqld_multi start,删除my.cnf的user,password参数.下面很重要
分别为两个实例创建cnf,如/tmp/my1.cnf,/tmp/my2.cnf
sed -n '/mysqld2/=' /etc/my.cnf,找到行数n,再用命令sed -n '4,n-1p' /etc/my.cnf>/tmp/my1.cnf
完了之后,vi /tmp/my1.conf,把[mysqld1]--->[mysqld]
在恢复时,注意要先关闭服务器,并且将 datadir 的目录先清空,在恢复数据后一定需要重置该目录的权限
mysqld_multi stop
mv /data/mysql1 /data/mysq1.bak
mkdir /data/mysql1
innobackupex --apply-log /data/backup
innobackupex --copy-back /data/backup
chown -R mysql:mysql /data/mysql1我刚开始没做,没成功
4.重新启动
mysqld_multi start,show databases,对比下,就知道了.
在操作的过程中innobackupex --apply-log命令老是报错,后来看说是一个BUG.
我安装的是percona-xtrabackup-2.0.3-470.rhel5.i386.rpm,反正后面又可以了,不可以的话,直接复制数据目录到/data/mysql1中.这样弄完后,可以做个脚本去备份了.