web-dev-qa-db-ja.com

InnoDB:バイナリインポート後の「ログファイルが1つだけ見つかりました」

DBAの私の最初の...

マスターMySQLサーバー5.5を5.6.17(CentOS 6 VPSサーバー)に正常にアップグレードした後、バイナリバックアップを完了してスレーブサーバーに移動しました(同じバージョン5.6.17ですが、Jelasticの環境は異なります)。バイナリバックアップは、Percona Xtrabackup 2.1.7と準備を使用して行われました。どちらのシステムもx86_64 GNU/Linuxです

バイナリバックアップを/var/lib/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で失敗するのですか?それの意味:[エラー] InnoDB:ログファイルが1つしか見つかりません "さらに、マスターでib_logfile0を確認できますおよびib_logfile1ですが、Xtrabackupはib_logfile0のみを提供します

  • サーバーを再起動してみました。
  • 何かを見落とさないように、バックアップ/復元手順を2回実行してみました。
  • 公式のMySQLフォーラムのどこかで提案されているように、ib_logfile0ファイルを削除してみました。
  • 私はInnodb=ONを使用してmy.cnfでInnoDBを明示的に有効にしてみました

編集:質問に答える:

バックアップに使用している実際の回線?

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

Datadirの外部にログファイルがありますか?

No, log files are within the datadir
2
WooDzu

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以上の新しいバージョンにアップデートすると修正されます。

2
jynus