记一次从RDS恢复备份数据库到自建服务器-xtrabackup

1、内网下载数据全备文件
备份的压缩包名为:irisdb.tar.gz

wget -c 'http://rdsbak-hz-v3.oss-cn-xxxxxxxxxxxxy8%3D' -O /app/tar-gz/irisdb.tar.gz

2、解压数据备份文件压缩包:
解压文件存放路径为: /app/irisdb-back

tar -xvf  /app/tar-gz/irisdb.tar.gz  -C  /app/irisdb-back >> /dev/null

确认成功解压正常完成。

3、进入数据库:新建数据库,初始化root用户密码

mysql> set password for 'root'@'localhost' = password('root');
Query OK, 0 rows affected (0.00 sec)

4、停数据库

service mysql3307 stop

5、挪走新安装好的MySQL原来的datadir下的数据,新建文件夹,并授权:操作对象./db目录

[root@hz-beta-mysql mysql]# mv /app/irisdb/mysql/db /app/irisdb/mysql/db-old-data
[root@hz-beta-mysql mysql]# mkdir -p /app/irisdb/mysql/db
[root@hz-beta-mysql mysql]# chown -R mysql:mysql /app/irisdb/mysql/db

6、恢复数据到数据目录(datadir=*,由my3307.cnf文件指定了 )(放后台运行)
先应用日志(apply-log),然后copy-back
使用innobackupex恢复数据,备份的数据目录为/app/irisdb-back/,
数据库的datadir 等根据参数 --defaults-file 指定的配置文件 为:/etc/my3307.cnf

/usr/local/bin/innobackupex --defaults-file=/etc/my3307.cnf --user=mysql --password=mysql --apply-log /app/irisdb-back/ >  recover-log.sql
/usr/local/bin/innobackupex --defaults-file=/etc/my3307.cnf --user=mysql --password=mysql --copy-back /app/irisdb-back/ >> recover-log.sql

apply-log 完成提示如下:

……
InnoDB: Setting log file ./ib_logfile1 size to 256 MB
InnoDB: Progress in MB: 100 200
InnoDB: Setting log file ./ib_logfile2 size to 256 MB
InnoDB: Progress in MB: 100 200
InnoDB: Setting log file ./ib_logfile3 size to 256 MB
InnoDB: Progress in MB: 100 200
InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
InnoDB: New log files created, LSN=79481523649052
InnoDB: Highest supported file format is Barracuda.
InnoDB: 128 rollback segment(s) are active.
InnoDB: Waiting for purge to start
InnoDB: 5.6.24 started; log sequence number 79481523649548
xtrabackup: starting shutdown with innodb_fast_shutdown = 1
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Shutdown completed; log sequence number 79481523650973
190203 05:12:50 completed OK!

copy-back恢复完成会提示如下:

……
190131 06:44:19 [01] Copying ./sms_db/db.opt to /app/irisdb/mysql//db/sms_db/db.opt
190131 06:44:19 [01]        ...done
190131 06:44:19 [01] Copying ./sms_db/t_sms.frm to /app/irisdb/mysql//db/sms_db/t_sms.frm
190131 06:44:19 [01]        ...done
190131 06:44:19 [01] Copying ./sms_db/t_sms.ibd to /app/irisdb/mysql//db/sms_db/t_sms.ibd
190131 06:54:28 [01]        ...done
190131 06:54:28 [01] Copying ./_witness_t_fdd_witness_send_log_backup_main_41008_2_1b.tokudb to /app/basic/mysql//db/_witness_t_fdd_witness_send_log_backup_main_41008_2_1b.tokudb
190131 06:55:52 [01]        ...done
190131 06:55:52 completed OK!

注意修改恢复后的文件夹的权限,如果全县有问题,则会报错,如下

……
2019-01-31 09:31:44 29014 [Note] InnoDB: Using Linux native AIO
2019-01-31 09:31:44 29014 [Note] InnoDB: Using CPU crc32 instructions
2019-01-31 09:31:44 29014 [Note] InnoDB: Initializing buffer pool, size = 3.1G
2019-01-31 09:31:45 29014 [Note] InnoDB: Completed initialization of buffer pool
2019-01-31 09:31:45 29014 [ERROR] InnoDB: ./ibdata1 can't be opened in read-write mode
2019-01-31 09:31:45 29014 [ERROR] InnoDB: The system tablespace must be writable!
2019-01-31 09:31:45 29014 [ERROR] Plugin 'InnoDB' init function returned error.
2019-01-31 09:31:45 29014 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-01-31 09:31:45 29014 [ERROR] Unknown/unsupported storage engine: InnoDB
2019-01-31 09:31:45 29014 [ERROR] Aborting

7、编辑MySQL的配置文件
跳过密码验证

vim /etc/my3308.cnf
[mysqld]
skip-grant-tables

8、数据库服务启动

service mysql3307 start 

9、进入数据库修改用户密码

update user set password=password('root') where user='root';
flush privileges;


当库中 无root@localhost用户的时候

insert into user (user,host,password,ssl_type,ssl_cipher,x509_issuer,x509_subject) values ('root','localhost',password('root'),'','','','');
update user set
  Select_priv='Y'
, Insert_priv='Y'
, Update_priv='Y'
, Delete_priv='Y'
, Create_priv='Y'
, Drop_priv='Y'
, Reload_priv='Y'
, Shutdown_priv='Y'
, Process_priv='Y'
, File_priv='Y'
, Grant_priv='Y'
, References_priv='Y'
, Index_priv='Y'
, Alter_priv='Y'
, Show_db_priv='Y'
, Super_priv='Y'
, Create_tmp_table_priv='Y'
, Lock_tables_priv='Y'
, Execute_priv='Y'
, Repl_slave_priv='Y'
, Repl_client_priv='Y'
, Create_view_priv='Y'
, Show_view_priv='Y'
, Create_routine_priv='Y'
, Alter_routine_priv='Y'
, Create_user_priv='Y'
, Event_priv='Y'
, Trigger_priv='Y'
, Create_tablespace_priv='Y'
where user='root' and host='localhost';
flush privileges;

这种insert方式,所有权限都已经授权,注意操作user表处理权限时,要flush privileges 一下。

10、编辑配置文件,注释掉免密码登录,并重启数据库服务,使用用户名&密码登录

vim /etc/my3308.cnf
[mysqld]
# skip-grant-tables

重启数据库服务前,注意修改数据库目录权限

chown -R mysql:mysql ./irisdb/
service mysql3307 restart

否则报错如下:

……
2019-02-12 09:33:01 27205 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
2019-02-12 09:33:01 27205 [Note] InnoDB: Using atomics to ref count buffer pool pages
2019-02-12 09:33:01 27205 [Note] InnoDB: The InnoDB memory heap is disabled
2019-02-12 09:33:01 27205 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-02-12 09:33:01 27205 [Note] InnoDB: Compressed tables use zlib 1.2.3
2019-02-12 09:33:01 27205 [Note] InnoDB: Using Linux native AIO
2019-02-12 09:33:01 27205 [Note] InnoDB: Using CPU crc32 instructions
2019-02-12 09:33:01 27205 [Note] InnoDB: Initializing buffer pool, size = 3.5G
2019-02-12 09:33:02 27205 [Note] InnoDB: Completed initialization of buffer pool
2019-02-12 09:33:02 27205 [ERROR] InnoDB: ./ibdata1 can't be opened in read-write mode
2019-02-12 09:33:02 27205 [ERROR] InnoDB: The system tablespace must be writable!
2019-02-12 09:33:02 27205 [ERROR] Plugin 'InnoDB' init function returned error.
2019-02-12 09:33:02 27205 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-02-12 09:33:02 27205 [ERROR] Unknown/unsupported storage engine: InnoDB
2019-02-12 09:33:02 27205 [ERROR] Aborting

11、登录数据库,验证

mysql -uroot -p --default-character-set=utf8 --socket=/app/irisdb/mysql/mysql.sock  

12、新建用户

grant select ,update ,delete,insert on iris.* to 'user_seiki'@'%' identified by 'test_190307';

遇到的问题及解决方案:

报错如下:

[root@hz-beta-mysql bin]#
/app/xtra-install/percona-xtrabackup-2.3.2-Linux-x86_64/bin/xtrabackup
–defaults-file=/app/irisdb-back/backup-my.cnf --user=root --password=root --apply-log /app/irisdb/mysql/db/ Warning: Using unique option prefix apply-log instead of apply-log-only is deprecated
and will be removed in a future release. Please use the full name
instead. xtrabackup: Error: unknown argument: ‘/app/irisdb/mysql/db/’

–target-dir:指的是目标目录,即计划备份数据是,数据存储的目标目录位置
/app/xtra-install/percona-xtrabackup-2.3.2-Linux-x86_64/bin/xtrabackup --defaults-file=/app/irisdb-back/backup-my.cnf --user=root --password=root /app/irisdb/mysql-backup/

写错了会报错

/app/xtra-install/percona-xtrabackup-2.3.2-Linux-x86_64/bin/xtrabackup version 2.3.2 based on MySQL server 5.6.24 Linux (x86_64) (revision id: 306a2e0)
2019-01-25 16:53:50 7f65dd198720  InnoDB: Operating system error number 2 in a file operation.
InnoDB: The error means the system cannot find the path specified.
[01] error: cannot open file ibdata1
2019-01-25 16:53:50 7f65dd198720  InnoDB: Operating system error number 9 in a file operation.
InnoDB: Error number 9 means 'Bad file descriptor'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html
InnoDB: File (unknown): 'close' returned OS error 109. Cannot continue operation
2019-01-25 16:53:50 7f65dd198720  InnoDB: Assertion failure in thread 140075477862176 in file os0file.cc line 658
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
08:53:50 UTC - xtrabackup got signal 6 ;
This could be because you hit a bug or data is corrupted.
This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值