• RDS的xb文件恢复到本地mysql5.6版本数据库


    参考博客:

    https://blog.csdn.net/pengjunlee/article/details/81212250     CentOS7下使用YUM安装MySQL5.6
    
    https://blog.csdn.net/a18838964650/article/details/82800621  安装qpress软件
    
    https://www.cnblogs.com/pangchunyu/p/11422830.html  文章介绍补充
    
    https://help.aliyun.com/knowledge_detail/41817.html?spm=a2c4g.11186631.2.1.434247acfAIAwYhttps://home.firefoxchina.cn  阿里云rds的xb文件恢复到本地数据库
    
     https://blog.csdn.net/anonymking/article/details/79589623  解决MySQL 恢复数据库表时提示 table “xxx” doesn`t exist
    

    安装qpress的软件

    链接:https://pan.baidu.com/s/1njNRz3qSc0pYYSjbEzSI_Q      提取码:1nxe

    yum -y localinstall  percona-xtrabackup-2.3.5-1.el7.x86_64.rpm
    yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
    
    
    [root@iZwz9hn15mpmruiq1jq28rZ data]# vim /etc/yum.repos.d/percona-release.repo
    [percona-release-$basearch]
    name = Percona-Release YUM repository - $basearch
    baseurl = http://repo.percona.com/release/$releasever/RPMS/$basearch
    enabled = 1
    gpgcheck = 0   这里写成不检查
    gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona
    
    
    
    [root@iZwz9hn15mpmruiq1jq28rZ data]# yum -y install qpress-11-1.el7.x86_64
    

    创建数据恢复目录并恢复数据

    解包:
    cat hins9028927_data_20190927033738_qp.xb |xbstream -x -v -C /data/mysql/data/
    解压:
    innobackupex --decompress --remove-original /data/mysql/data/
    
    执行如下命令,查询解压后生成的文件
    ll /data/mysql/data/
    
    执行如下命令,恢复解压好的备份文
    innobackupex --defaults-file=/data/mysql/data/backup-my.cnf --apply-log /data/mysql/data/
    

    查看本地数据库的数据目录位置:

     自建数据库不支持如下参数,需要注释掉

    [root@iZwz9hn15mpmruiq1jq28rZ mysql]# vim /data/mysql/data/backup-my.cnf
    
    # This MySQL options file was generated by innobackupex.
    
    # The MySQL server
    [mysqld]
    #innodb_checksum_algorithm=innodb
    #innodb_log_checksum_algorithm=innodb
    innodb_data_file_path=ibdata1:200M:autoextend
    innodb_log_files_in_group=2
    innodb_log_file_size=1572864000
    innodb_fast_checksum=false
    innodb_page_size=16384
    #innodb_log_block_size=512
    innodb_undo_directory=.
    innodb_undo_tablespaces=0
    skip-grant-tables
    
    rds_encrypt_data=false
    innodb_encrypt_algorithm=aes_128_ecb
    

     授权数据目录

    chown -R mysql:mysql /data/mysql/data/
    重启数据库
    systemctl restart mysqld

    注意

    一、数据备份:
    1、完整备份:把 datadir 对应的 datadir 直接拷贝就可以
    2、部分备份:data 文件夹下的文件夹都表示一个表,可以单独备份
    二、部分备份出现问题:
    1、类型是 MyISAM 的表对应数据文件是 "xxx.frm"、"xxx.MYD"、"xxx.MYI",这种情况下直接拷贝没有问题。
    2.1、类型是 InooDB 的表对应数据文件是 "xxx.frm",而这种情况下直接拷贝就出现问题了 -- “table “xxx” doesn`t exist”。
    2.2、解决办法:  InnoDB 数据库表拷贝是注意要把data文件夹下的 ibdata1 也同时拷贝过去  若还是出现问题的话就把新的data文件夹下的 ib_logfile* 文件删除掉,或者说带着 ib_logfile* 
    文件也一起拷贝  最后记得启动MySQL服务就可以了
    

     有时候需要知道默认的5.6版本用的是MyIsam引擎,而rds5.6使用的默认是innodb引擎,所以需要在配置文件中注明,需要和rds保持一致!!!

    把需要的库直接复制过去到原来的mysql目录,即/var/lib/mysql下面,此时查看下db目录数据是否恢复,如果是显示 “table “xxx” doesn`t exist”,就是用上面注意里的方法解决即可。

    cd /var/lib/mysql
    mv ibdata1 /haha/
    mv ib_logfile* /haha/
    
    cd /data/mysql/data
    mv db/ /var/lib/mysql
    重启数据库
    systemctl restart mysqld
    

     此时是用navicat连接之后查看数据是否恢复,如下图:

     这样数据终于恢复了,哈哈

     总结

    这样的数据只能在本地恢复,如果之前本地有很多的数据库,那么不建议这样做,要不然整个数据库就崩了。 

  • 相关阅读:
    最小堆
    HDU1022+栈
    POJ2318+几何+判点在四边形内
    HDU1003+最大连续子序列和+起始终止位置
    HDU1174+三维点到直线距离
    HDU4517
    Two Phase Commit (2PC) [转]
    分布式系统领域经典论文翻译集 [转]银河里的星星
    每个程序员都应该知道的8个LINUX命令 [转]
    Google File System解析 [转]
  • 原文地址:https://www.cnblogs.com/nshgo/p/11627462.html
Copyright © 2020-2023  润新知