使用Xtrabackup工具实现MySQL5.6向Mariadb10.1进行迁移

一、使用rpm包安装xtrabackup

注意:不要使用yum安装,尤其是MySQL数据库版本比较老的,

因为直接安装会更新替换lib库文件,
导致数据库使用出现幺蛾子问题。。不建议yum
具体如何安装这里就不再复述,参考连接如下:

二、数据备份、迁移
1、在安装有数据库的服务器端安装分别安装Xtrabackup,具体参考如下

http://blog.csdn.net/yangcs2009/article/details/50419458

2、创建拥有备份权限的账号并授权

create user 'backup'@'%' identified by '123456';
grant reload,lock tables,replication client,create tablespace,super on *.* to 'backup'@'%';

3、创建数据备份目录

mkdir -pv /mnt/{backups,mysql_backup}

4、备份数据,并且压缩,方便数据迁移迁移(以下为全量备份)
a.以backup用户备份并且压缩

innobackupex --defaults-file="/etc/my.cnf" \
--host="localhost" \
--port=3306 \
--user="backup" \
--password="123456" \
--socket="/var/lib/mysql/mysql.sock" \
--stream=tar \
"/mnt/backups/" | gzip -> "/mnt/mysql_backup/mysql_full_backup.tar.gz"

b.以root用户备份并且压缩

innobackupex --defaults-file="/etc/my.cnf" \
--host="localhost" \
--port=3306 \
--user="root" \
--password="test" \
--socket="/var/lib/mysql/mysql.sock" \
--stream=tar \
"/mnt/backups/" | gzip -> "/mnt/mysql_backup/mysql_full_backup.tar.gz"

5、数据迁移还原
创建恢复目录

mkdir /mnt/backup

6、迁移

easy,将打好包的数据copy至安装有Mariadb10.1的服务器

7、恢复数据(全量恢复)

方法一:
1. 停止MySQL:systemctl stop mariadb  
  
2. 将/var/lib/mysql下面的所有文件全部删除:rm /var/lib/mysql/* -rf(如果前面没有备份mysql数据库, 那么在删除数据文件后要重建mysql系统表,重建命令是sudo mysql_install_db --user=mysql,但重建会导致原有用户信息全部丢失)  
  
3. 将第二步准备过的文件拷贝到/var/lib/mysql下:cp /usr/local/backup/2015-11-09_16-33-58/* /var/lib/mysql -rf  
  
4. 给文件赋权:chown -R mysql:mysql /var/lib/mysql/  
  
5. 启动Mariadb:systemctl start mariadb 

方法二:
1.将备份文件中的日志应用到备份文件中的数据文件上

innobackupex --user=root --password=MySQLPASSWORD --apply-log /mnt/backup

这里的--apply-log指明是将日志应用到数据文件上,完成之后将备份文件中的数据恢复到数据库中:

innobackupex --user=root --password=MySQLPASSWORD --copy-back /mnt/backup

这里的—copy-back指明是进行数据恢复。数据恢复完成之后,需要修改相关文件的权限mysql数据库才能正常启动。

chown mysql:mysql /var/lib/mysql/ib*  
chown mysql:mysql /mnt/backup  
systemctl start mariadb

你可能感兴趣的:(使用Xtrabackup工具实现MySQL5.6向Mariadb10.1进行迁移)