美文网首页Linux成长库
使用Xtrabackup工具实现MySQL5.6向Mariadb

使用Xtrabackup工具实现MySQL5.6向Mariadb

作者: 泡菜爱上WaSabi | 来源:发表于2017-11-03 11:11 被阅读4次

    一、使用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向Mariadb

        本文链接:https://www.haomeiwen.com/subject/schapxtx.html