有个网站的数据库用了下RDS,本文记录将RDS备份文件backup.gz还原到本地Mysql服务器中的流程。
顺便解决了innobackupex_55: command not found报错的问题。
安装XtraBackup工具,去官网根据对应系统版本,安装XtraBackup,我安装的是比较经典稳定的2.1.5版
wget https://www.percona.com/downloads/XtraBackup/XtraBackup-2.1.5/RPM/rhel6/x86_64/percona-xtrabackup-2.1.5-680.rhel6.x86_64.rpm
安装依赖包
yum install -y perl-DBD-MySQL perl-DBI perl-Time-HiRes libaio*
安装
rpm -ivh percona-xtrabackup-2.1.5-680.rhel6.x86_64.rpm
查看安装成功没有
rpm -qa |grep xtrabackup
显示
percona-xtrabackup-2.1.5-680.rhel6.x86_64
rpm -ql percona-xtrabackup-2.1.5-680.rhel6.x86_64
显示
/usr/bin/innobackupex
/usr/bin/innobackupex-1.5.1
/usr/bin/xbcrypt
/usr/bin/xbstream
/usr/bin/xtrabackup
/usr/bin/xtrabackup_55
/usr/bin/xtrabackup_56
/usr/share/doc/percona-xtrabackup-2.1.5
/usr/share/doc/percona-xtrabackup-2.1.5/COPYING
使用wget从下载备份文件,下载下来的文件需要重新命名 使用mv命令重命名为backu.gz
下载xtrabackup程序完成后,首先解压backup.gz,再使用xtrabackup中附带的解包工具进行解包。
执行命令:
mkdir -p /home/mysql/data_dir && gzip -d -c backup.gz | xbstream -x -C /home/mysql/data_dir
完成解压及解包后应用innodb的redo-log,执行命令(注意百度教程中是错的)
以下是百度教程中的错误命令:
innobackupex_55 --defaults-file=/home/mysql/data_dir/backup-my.cnf --apply-log /home/mysql/data_dir
但是,innobackupex_55命令执行后报错,如下:
# innobackupex_55 --defaults-file=/home/mysql/data_dir/backup-my.cnf --apply-log /home/mysql/data_dir
-bash: innobackupex_55: command not found
发百度工单瞎耽误工夫,最后自己搞定了,正确的命令为:
innobackupex --defaults-file=/home/mysql/data_dir/backup-my.cnf --apply-log /home/mysql/data_dir
执行后出现以下信息则说明成功了
命令执行完毕后,参考/home/mysql/data_dir/backup-my.cnf文件修改mysql数据库配置中的innodb_log_file_size参数;
使用/home/mysql/data_dir文件夹作为数据目录启动mysql即可。
vi /etc/my.cnf
将原来的datadir = /usr/local/mysql/var注释掉(怎么注释?语句前面加一个#号)
然后将以下的配置加入my.cnf文件中,注意加在原my.cnf文件中的[mysqld]下面,:wq命令保存
[mysqld]
innodb_checksum_algorithm=innodb
innodb_log_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:32M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=268435456
innodb_fast_checksum=0
innodb_page_size=16384
innodb_log_block_size=512
innodb_undo_tablespaces=0
然后重启Mysql服务
/etc/init.d/mysql restart