InnoDB:二進制導入後“僅找到一個日誌文件”
我的第一個DBA…
在成功將主 MySQL 伺服器 5.5 升級到 5.6.17(CentOS 6 VPS serer)後,我完成並將二進製備份移動到從屬伺服器(相同版本 5.6.17 但 Jelastic 上的環境不同)。二進製備份是使用 Percona Xtrabackup 2.1.7 和準備完成的。兩個系統都是 x86_64 GNU/Linux
在將二進製備份恢復到
/var/lib/mysql
MySQL 並啟動 MySQL 之後,我很高興看到 MySQL 日誌中出現以下錯誤:140725 15:02:11 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 2014-07-25 15:02:13 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2014-07-25 15:02:13 11854 [Note] Plugin 'FEDERATED' is disabled. 2014-07-25 15:02:13 11854 [Note] InnoDB: Using atomics to ref count buffer pool pages 2014-07-25 15:02:13 11854 [Note] InnoDB: The InnoDB memory heap is disabled 2014-07-25 15:02:13 11854 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2014-07-25 15:02:13 11854 [Note] InnoDB: Compressed tables use zlib 1.2.3 2014-07-25 15:02:13 11854 [Note] InnoDB: Using Linux native AIO 2014-07-25 15:02:13 11854 [Note] InnoDB: Using CPU crc32 instructions 2014-07-25 15:02:13 11854 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2014-07-25 15:02:13 11854 [Note] InnoDB: Completed initialization of buffer pool 2014-07-25 15:02:13 11854 [ERROR] InnoDB: Only one log file found. 2014-07-25 15:02:13 11854 [ERROR] Plugin 'InnoDB' init function returned error. 2014-07-25 15:02:13 11854 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 2014-07-25 15:02:13 11854 [ERROR] Unknown/unsupported storage engine: InnoDB 2014-07-25 15:02:13 11854 [ERROR] Aborting 2014-07-25 15:02:13 11854 [Note] Binlog end 2014-07-25 15:02:13 11854 [Note] Shutting down plugin 'partition'
這是
ls /var/lib/mysql
backup-my.cnf ibdata1 ib_logfile0 xtrabackup_binary xtrabackup_binlog_info xtrabackup_binlog_pos_innodb xtrabackup_checkpoints mysql .... OTHER DATABASE FOLDERS .....
這很奇怪,當我設置 5.5 > 5.5 複製時,它曾經工作得非常好,完全一樣。
為什麼現在 5.6 失敗了? 這是什麼意思:$$ ERROR $$InnoDB:僅找到一個日誌文件” 另外在主伺服器上我可以看到
ib_logfile0
,ib_logfile1
但 Xtrabackup 只提供ib_logfile0
- 我嘗試重新啟動伺服器。
- 我嘗試了兩次備份/恢復程序,以確保我沒有錯過任何東西。
- 我嘗試按照 MySQL 官方論壇某處的建議刪除 ib_logfile0 文件。
- 我嘗試在 my.cnf 中顯式啟用 InnoDB
Innodb=ON
編輯:回答問題:
我用於備份的實際線路?
ulimit -n 10240 && sudo -u mysql \ /bin/sh -c "cd /var/lib/mysql && /usr/bin/innobackupex \ --user=${MYSQL_BACKUP_USER} --password=${MYSQL_BACKUP_PASS} \ --lock-wait-query-type=update --lock-wait-timeout=300 \ --kill-long-query-type=select --kill-long-queries-timeout=10 \ --rsync --slave-info --safe-slave-backup ${XB_TARGET_DIR}"
/usr/bin/innobackupex –version
InnoDB Backup Utility v1.5.1-xtrabackup;
貓 xtrabackup_binary
xtrabackup_56
貓備份-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:10M:autoextend innodb_log_files_in_group=2 innodb_log_file_size=50331648 innodb_fast_checksum=0 innodb_page_size=16384 innodb_log_block_size=512 innodb_undo_tablespaces=0
你有數據目錄之外的日誌文件嗎?
No, log files are within the datadir
假設您已
innobackupex --apply-log
成功執行,您可能有配置問題(可能innodb_log_files_in_group
是原始伺服器中的 1 和恢復的伺服器中的 2 -或未設置),或者您在過程中的某處失去了 ib_logfile1。InnoDB 沒問題,當它檢測到磁碟上的配置與文件上的配置不同時,它失敗是正常的。
請注意 xtrabackup/innobackupex 僅複製數據文件,而不是
/etc/my.cnf
.最終答案:apply-log 沒有成功執行 - 日誌記錄時的錯誤隱藏了這一點。實際錯誤是由於舊版本的 Percona XtraBackup 中的特定錯誤造成的。更新到 >= 2.1.8 的更新版本應該可以解決這個問題。