web-dev-qa-db-ja.com

Percona xtrabackupトランザクションログが破損しています

surrogate と呼ばれるスケジューリングスクリプトを使用して、xtrabackupから取得した完全バックアップを準備して復元しようとしています。

バックアップをtarで圧縮してgzip圧縮し、同じセットアップを実行しているローカルマシンに転送しました(xtrabackupのバージョンのわずかな違いを除いて-ソースの2.2.12、ローカルの2.3.9)。

解凍したら、次のコマンドを実行して、復元用のバックアップを準備します。

innobackupex --use-memory=1G --apply-log /home/matthew/full_2017-08-13_0700/

これは応答しています:

  innobackupex version 2.3.9 based on MySQL server 5.6.24 Linux (x86_64) (revision id: fde0e3e)
  xtrabackup: cd to /home/matthew/full_2017-08-13_0700/
  xtrabackup: This target seems to be not prepared yet.
  xtrabackup: xtrabackup_logfile detected: size=2097152, start_lsn=(661464509389)
  xtrabackup: using the following InnoDB configuration for recovery:
  xtrabackup:   innodb_data_home_dir = ./
  xtrabackup:   innodb_data_file_path = ibdata1:12M:autoextend
  xtrabackup:   innodb_log_group_home_dir = ./
  xtrabackup:   innodb_log_files_in_group = 1
  xtrabackup:   innodb_log_file_size = 2097152
  xtrabackup: using the following InnoDB configuration for recovery:
  xtrabackup:   innodb_data_home_dir = ./
  xtrabackup:   innodb_data_file_path = ibdata1:12M:autoextend
  xtrabackup:   innodb_log_group_home_dir = ./
  xtrabackup:   innodb_log_files_in_group = 1
  xtrabackup:   innodb_log_file_size = 2097152
  xtrabackup: Starting InnoDB instance for recovery.
  xtrabackup: Using 1073741824 bytes for buffer pool (set by --use-memory parameter)
  InnoDB: Using atomics to ref count buffer pool pages
  InnoDB: The InnoDB memory heap is disabled
  InnoDB: Mutexes and rw_locks use GCC atomic builtins
  InnoDB: Memory barrier is not used
  InnoDB: Compressed tables use zlib 1.2.8
  InnoDB: Using CPU crc32 instructions
  InnoDB: Initializing buffer pool, size = 1.0G
  InnoDB: Completed initialization of buffer pool
  InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
  InnoDB: Setting file ./ibdata1 size to 12 MB
  InnoDB: Database physically writes the file full: wait...
  InnoDB: Setting log file ./ib_logfile101 size to 2 MB
  InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
  InnoDB: New log files created, LSN=45781
  InnoDB: Doublewrite buffer not found: creating new
  InnoDB: Doublewrite buffer created
  InnoDB: 1 rollback segment(s) are active.
  InnoDB: Waiting for purge to start
  InnoDB: 5.6.24 started; log sequence number 0

  xtrabackup: error: The transaction log file is corrupted.
  xtrabackup: error: The log was not applied to the intended LSN!
  xtrabackup: Log applied to lsn 0
  xtrabackup: The intended lsn is 661464919534

これが何であるか、そしてどのように私がそれを克服するのか?

3
matthewrk

免責事項:xtrabackupエキスパートではありません

あなたの状況はJan 27, 2016 Perconaフォーラムへの投稿 。ポスターのdbaffaleufは、perconaサーバー5.6.24-72.2-log、innobackupex 2.3.3 Linux(x86_64)を実行していました。

同じメッセージに遭遇した後、dbaffaleufは書きました

興味深いことに、xtrabackup_logfileファイルはバックアップパスから削除されています。準備を実行する前にxtrabackup_logfileを保存し、その後復元すると、最初の準備がトランザクションログの破損でクラッシュし、次の準備が機能します。

完全バックアップ後に、以前のコピーのxtrabackup_logファイルを復元します。

$ cp /tmp/xtrabackup_logfile /my/path/to/backup/timestamp/

もう一度準備を実行します。

$ /home/products/xtrabackup/bin/innobackupex --use-memory=1G --apply-log /my/path/to/backup/timestamp/ | tee -a /my/path/to/prepare/log/file.log

同じことをする必要があるかもしれません

  • 準備を実行する前にxtrabackup_logfileを保存します
  • 完全バックアップ後に、以前のコピーのxtrabackup_logファイルを復元します。
  • もう一度準備を実行します
1
RolandoMySQLDBA