报错信息:
...... InnoDB: Log file ./ib_logfile1 is of different size 50331648 bytes than other log files 12058624 bytes! InnoDB: Plugin initialization aborted with error Generic error xtrabackup: innodb_init(): Error occured.
环境介绍:
CentOS 7.5
Mysql 5.7.30
percona-xtrabackup-24
过程回顾:
[root@test2 ~]# chown -R mysql:mysql /var/lib/mysql [root@test2 ~]# ll /var/lib/mysql 总用量 293172 -rw-r----- 1 mysql mysql 56 7月 10 16:41 auto.cnf -rw-rw---- 1 mysql mysql 543 7月 10 16:50 backup-my.cnf -rw------- 1 mysql mysql 1680 7月 10 16:41 ca-key.pem -rw-r--r-- 1 mysql mysql 1112 7月 10 16:41 ca.pem -rw-r--r-- 1 mysql mysql 1112 7月 10 16:41 client-cert.pem -rw------- 1 mysql mysql 1680 7月 10 16:41 client-key.pem drwxr-xr-x 2 mysql mysql 4096 7月 10 16:48 crmdb drwxr-xr-x 2 mysql mysql 4096 7月 10 16:48 crmdb_test -rw-r----- 1 mysql mysql 425 7月 10 16:41 ib_buffer_pool -rw-rw---- 1 mysql mysql 209715200 7月 8 12:31 ibdata1 -rw-r----- 1 mysql mysql 50331648 7月 10 16:41 ib_logfile1 -rw-r----- 1 mysql mysql 12582912 7月 10 16:41 ibtmp1 drwxr-x--- 2 mysql mysql 4096 7月 10 16:48 mysql srwxrwxrwx 1 mysql mysql 0 7月 10 16:41 mysql.sock -rw------- 1 mysql mysql 5 7月 10 16:41 mysql.sock.lock drwxr-x--- 2 mysql mysql 8192 7月 10 16:48 performance_schema -rw------- 1 mysql mysql 1680 7月 10 16:41 private_key.pem -rw-r--r-- 1 mysql mysql 452 7月 10 16:41 public_key.pem -rw-r--r-- 1 mysql mysql 1112 7月 10 16:41 server-cert.pem -rw------- 1 mysql mysql 1680 7月 10 16:41 server-key.pem drwxr-x--- 2 mysql mysql 8192 7月 10 16:48 sys -rw-rw---- 1 mysql mysql 119 7月 8 13:31 xtrabackup_binlog_info -rw-rw---- 1 mysql mysql 147 7月 8 13:31 xtrabackup_checkpoints -rw-rw---- 1 mysql mysql 845 7月 8 13:31 xtrabackup_info -rw-rw---- 1 mysql mysql 10747904 7月 10 17:16 xtrabackup_logfile -rw-rw---- 1 mysql mysql 74 7月 8 13:31 xtrabackup_slave_filename_info -rw-rw---- 1 mysql mysql 162 7月 8 13:31 xtrabackup_slave_info [root@test2 ~]# innobackupex --defaults-file=/var/lib/mysql/backup-my.cnf --apply-log /var/lib/mysql xtrabackup: recognized server arguments: --innodb_checksum_algorithm=crc32 --innodb_data_file_path=ibdata1:200M:autoextend --innodb_log_files_in_group=2 --innodb_log_file_size=1048576000 --innodb_page_size=16384 --innodb_undo_directory=./ --innodb_undo_tablespaces=0 --server-id=2931342899 xtrabackup: recognized client arguments: 200710 17:20:40 innobackupex: Starting the apply-log operation IMPORTANT: Please check that the apply-log run completes successfully. At the end of a successful apply-log run innobackupex prints "completed OK!". innobackupex version 2.4.20 based on MySQL server 5.7.26 Linux (x86_64) (revision id: c8b4056) xtrabackup: cd to /var/lib/mysql/ xtrabackup: This target seems to be not prepared yet. InnoDB: Number of pools: 1 xtrabackup: xtrabackup_logfile detected: size=12058624, start_lsn=(10489267059) xtrabackup: using the following InnoDB configuration for recovery: xtrabackup: innodb_data_home_dir = . xtrabackup: innodb_data_file_path = ibdata1:200M:autoextend xtrabackup: innodb_log_group_home_dir = . xtrabackup: innodb_log_files_in_group = 1 xtrabackup: innodb_log_file_size = 12058624 xtrabackup: using the following InnoDB configuration for recovery: xtrabackup: innodb_data_home_dir = . xtrabackup: innodb_data_file_path = ibdata1:200M:autoextend xtrabackup: innodb_log_group_home_dir = . xtrabackup: innodb_log_files_in_group = 1 xtrabackup: innodb_log_file_size = 12058624 xtrabackup: Starting InnoDB instance for recovery. xtrabackup: Using 104857600 bytes for buffer pool (set by --use-memory parameter) InnoDB: PUNCH HOLE support available InnoDB: Mutexes and rw_locks use GCC atomic builtins InnoDB: Uses event mutexes InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier InnoDB: Compressed tables use zlib 1.2.7 InnoDB: Number of pools: 1 InnoDB: Using CPU crc32 instructions InnoDB: Initializing buffer pool, total size = 100M, instances = 1, chunk size = 100M InnoDB: Completed initialization of buffer pool InnoDB: page_cleaner coordinator priority: -20 InnoDB: Log file ./ib_logfile1 is of different size 50331648 bytes than other log files 12058624 bytes! InnoDB: Plugin initialization aborted with error Generic error xtrabackup: innodb_init(): Error occured.
解决方法:
移除所有ib_logfile*的文件,最好是移动到其他文件夹,不要直接删除。
[root@test2 ~]# mv /var/lib/mysql/ib_logfile1 /root/crmdb/ //将id_logfile1移动至其他文件夹 [root@test2 ~]# innobackupex --defaults-file=/var/lib/mysql/backup-my.cnf --apply-log /var/lib/mysql xtrabackup: recognized server arguments: --innodb_checksum_algorithm=crc32 --innodb_data_file_path=ibdata1:200M:autoextend --innodb_log_files_in_group=2 --innodb_log_file_size=1048576000 --innodb_page_size=16384 --innodb_undo_directory=./ --innodb_undo_tablespaces=0 --server-id=2931342899 xtrabackup: recognized client arguments: 200710 17:38:03 innobackupex: Starting the apply-log operation IMPORTANT: Please check that the apply-log run completes successfully. At the end of a successful apply-log run innobackupex prints "completed OK!". innobackupex version 2.4.20 based on MySQL server 5.7.26 Linux (x86_64) (revision id: c8b4056) xtrabackup: cd to /var/lib/mysql/ xtrabackup: This target seems to be not prepared yet. InnoDB: Number of pools: 1 xtrabackup: xtrabackup_logfile detected: size=13565952, start_lsn=(10489267059) xtrabackup: using the following InnoDB configuration for recovery: xtrabackup: innodb_data_home_dir = . xtrabackup: innodb_data_file_path = ibdata1:200M:autoextend xtrabackup: innodb_log_group_home_dir = . xtrabackup: innodb_log_files_in_group = 1 xtrabackup: innodb_log_file_size = 13565952 xtrabackup: using the following InnoDB configuration for recovery: xtrabackup: innodb_data_home_dir = . xtrabackup: innodb_data_file_path = ibdata1:200M:autoextend xtrabackup: innodb_log_group_home_dir = . xtrabackup: innodb_log_files_in_group = 1 xtrabackup: innodb_log_file_size = 13565952 xtrabackup: Starting InnoDB instance for recovery. xtrabackup: Using 104857600 bytes for buffer pool (set by --use-memory parameter) InnoDB: PUNCH HOLE support available InnoDB: Mutexes and rw_locks use GCC atomic builtins InnoDB: Uses event mutexes InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier InnoDB: Compressed tables use zlib 1.2.7 InnoDB: Number of pools: 1 InnoDB: Using CPU crc32 instructions InnoDB: Initializing buffer pool, total size = 100M, instances = 1, chunk size = 100M InnoDB: Completed initialization of buffer pool InnoDB: page_cleaner coordinator priority: -20 InnoDB: Highest supported file format is Barracuda. InnoDB: Log scan progressed past the checkpoint lsn 10489267059 InnoDB: Doing recovery: scanned up to log sequence number 10494509568 (43%) InnoDB: Doing recovery: scanned up to log sequence number 10498831278 (79%) InnoDB: Database was not shutdown normally! InnoDB: Starting crash recovery. InnoDB: Starting an apply batch of log records to the database... InnoDB: Progress in percent: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 InnoDB: Apply batch completed InnoDB: xtrabackup: Last MySQL binlog file position 593541, file name mysql-bin.001448 InnoDB: Removed temporary tablespace data file: "ibtmp1" InnoDB: Creating shared tablespace for temporary tables InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... InnoDB: File './ibtmp1' size is now 12 MB. InnoDB: 96 redo rollback segment(s) found. 1 redo rollback segment(s) are active. InnoDB: 32 non-redo rollback segment(s) are active. InnoDB: Waiting for purge to start InnoDB: 5.7.26 started; log sequence number 10498831278 InnoDB: page_cleaner: 1000ms intended loop took 46390ms. The settings might not be optimal. (flushed=0 and evicted=0, during the time.) InnoDB: xtrabackup: Last MySQL binlog file position 593541, file name mysql-bin.001448 xtrabackup: starting shutdown with innodb_fast_shutdown = 1 InnoDB: FTS optimize thread exiting. InnoDB: Starting shutdown... InnoDB: Shutdown completed; log sequence number 10498832727 InnoDB: Number of pools: 1 xtrabackup: using the following InnoDB configuration for recovery: xtrabackup: innodb_data_home_dir = . xtrabackup: innodb_data_file_path = ibdata1:200M:autoextend xtrabackup: innodb_log_group_home_dir = . xtrabackup: innodb_log_files_in_group = 2 xtrabackup: innodb_log_file_size = 1048576000 InnoDB: PUNCH HOLE support available InnoDB: Mutexes and rw_locks use GCC atomic builtins InnoDB: Uses event mutexes InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier InnoDB: Compressed tables use zlib 1.2.7 InnoDB: Number of pools: 1 InnoDB: Using CPU crc32 instructions InnoDB: Initializing buffer pool, total size = 100M, instances = 1, chunk size = 100M InnoDB: Completed initialization of buffer pool InnoDB: page_cleaner coordinator priority: -20 InnoDB: Setting log file ./ib_logfile101 size to 1000 MB InnoDB: Progress in MB: 100 200 300 400 500 600 700 800 900 1000 InnoDB: Setting log file ./ib_logfile1 size to 1000 MB InnoDB: Progress in MB: 100 200 300 400 500 600 700 800 900 1000 InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 InnoDB: New log files created, LSN=10498832727 InnoDB: Highest supported file format is Barracuda. InnoDB: Log scan progressed past the checkpoint lsn 10498832908 InnoDB: Doing recovery: scanned up to log sequence number 10498832917 (0%) InnoDB: Database was not shutdown normally! InnoDB: Starting crash recovery. InnoDB: xtrabackup: Last MySQL binlog file position 593541, file name mysql-bin.001448 InnoDB: Removed temporary tablespace data file: "ibtmp1" InnoDB: Creating shared tablespace for temporary tables InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ... InnoDB: File './ibtmp1' size is now 12 MB. InnoDB: 96 redo rollback segment(s) found. 1 redo rollback segment(s) are active. InnoDB: 32 non-redo rollback segment(s) are active. InnoDB: page_cleaner: 1000ms intended loop took 35376ms. The settings might not be optimal. (flushed=0 and evicted=0, during the time.) InnoDB: 5.7.26 started; log sequence number 10498832917 xtrabackup: starting shutdown with innodb_fast_shutdown = 1 InnoDB: FTS optimize thread exiting. InnoDB: Starting shutdown... InnoDB: Shutdown completed; log sequence number 10498832936 200710 17:39:28 completed OK!
可以看到这时再执行 innobackupex 恢复数据,就执行成功了。
注意:
数据恢复成功后,由于我是恢复的RDS全备文件,所以我们自建的Mysql数据库密码会被覆盖成RDS的数据库密码,如果忘记密码,可以临时在Mysql配置文件中加入skip-grant-tables
配置,无密码进入数据库,验证数据恢复情况。
[root@test2 ~]# vim /etc/my.cnf [mysqld] ... skip-grant-tables [root@test2 ~]# systemctl start mysqld [root@test2 ~]# mysql -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.30 MySQL Community Server (GPL) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use crmdb; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +------------------------+ | Tables_in_crmdb | +------------------------+ | 产品表_rsow_product | | calllist | | cus_manage_set | | dictionary | | importtel | | imptable | | imptable2 | | log | | rsow_product | | rxpbls | | sys_app_user | | sys_dept | | sys_dictionaries | | sys_gl_qx | | sys_menu | | sys_role | | sys_user | | sys_user_qx | | tb_pictures | | test | | tmp_ybc | | user | mysql> select * from user; +--------+----------+----------+------+------+------------+ | userID | userName | password | name | sex | department | +--------+----------+----------+------+------+------------+ | 1 | admin | admin | NULL | NULL | NULL | | 2 | 111111 | 111111 | NULL | NULL | NULL | | 3 | 222222 | 222222 | NULL | NULL | NULL | | 4 | 333333 | 333333 | NULL | NULL | NULL | | 5 | 444444 | 444444 | NULL | NULL | NULL | | 6 | 555555 | 555555 | NULL | NULL | NULL | +--------+----------+----------+------+------+------------+ 6 rows in set (0.00 sec)
数据恢复成功!!!