阿里雲RDSデータベース復旧ツールPercona XtraBackup実戦心得(心が痛くて涙が出る)


ビジネスの変化と時間の推移に伴い、アリクラウドでのRDSデータのレンタルも増加しています.アリクラウドは、非常に安定した効率的なデータバックアップメカニズムを提供しています(バックアップには1 sしかかかりません).データはバックアップされていますが、リカバリには労力がかかりました.今日、アリクラウド政府が提供したヘルプドキュメント-DSバックアップファイルを自社のデータベースに復元するために実際の操作と研究を行いました.結果は素晴らしいですが、この間の過程は坂が険しく、「婉曲で曲がりくねっています」.以下、自分の実際の操作過程と心得をまとめ、似たような問題に遭遇した仲間に有効な助けを提供すると考えています.

環境とツール

  • オペレーティングシステム:OS X 10.10.4
  • サーバ環境:CentOS 6.5
  • ターミナルツール:iTerm(Mac)
  • データ圧縮解凍ツール:rds_backup_extract(RDSのみ適用)
  • データベースリカバリツール:Percona XtraBackup 2.2 Release 2.2.2.12
  • ローカルデータベース環境:Server version:5.6.21-log MySQL Community Server(GPL)
  • 生産データベース環境:MySQL 5.5

  • オペレーションプロセス


    ファイルをバックアップするには、ドキュメントに記載されている手順に従ってください.

    1、RDS公式提供の圧縮キットrdsをダウンロードするbackup_extract


    提供される公式ドキュメントRDSバックアップファイルに従って、自己構築データベースに復元し、本文に記載されているアドレスを直接ダウンロードすればよい.端末で直接wgetしないように警告する警告がある(wget注意).久しぶりにローカルにダウンロードできませんでした.

    2、バックアップリストアツールのインストールPercona XtraBackup 2.2


    公式ドキュメントで提供されているバージョンは2.2.9ですが、最新バージョンの2.2.12(強迫症)を使用しています.ネット上の多くのインストール資料を検索しないでください.もし中国語の、英語の、baiduの、googleの.Percona XtraBackupのインストールは公式に直接ダウンロードされ、公式にもインストールガイドが提供されています(https://www.percona.com/doc/percona-xtrabackup/2.2/installation/yum_repo.html).私も多くのインストール情報を検索しましたが、多くのバージョンでは、システム環境が一致していないので、ピットに気をつけてください.

    3、ヘルプドキュメントに基づいてバックアップファイルを解凍する


    ドキュメントに表示されるコマンドはこれです.
    sh rds_backup_extract -f /home/mysql/backup/hins575175_xtra_20150429091224.tar.gz -C /home/mysql/data

    実際の操作では、環境が異なり、操作のコマンドや方法が異なる場合があります.私が実際に操作したコマンドは
    sh rds_backup_extract.sh -f /alidata/www/databases_backups/hins651261_xtra_20150814021723.tar.gz -C /alidata/www/databases_backups/20150814

    4、バックアップファイルを復元する


    悲しいことに、文の中で言及した還元命令が来た.
    innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data

    頭がつかめないよ.私は命令を実行して、ずっと間違っていました.
    [vagrant@localhost ~]$ sudo innobackupex --defaults-file=/alidata/www/databases_backups/20150814/backup-my.cnf --apply-log /alidata/www/databases_backups/20150814/
    
    InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
    and Percona LLC and/or its affiliates 2009-2013.  All Rights Reserved.
    
    This software is published under
    the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
    
    Get the latest version of Percona XtraBackup, documentation, and help resources:
    http://www.percona.com/xb/p150814 08:55:39  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!".
    
    Warning: World-writable config file '/alidata/www/databases_backups/20150814/backup-my.cnf' is ignored
    innobackupex: got a fatal error with the following stacktrace: at /usr/bin/innobackupex line 4545
        main::get_option('innodb_data_file_path') called at /usr/bin/innobackupex line 2631
        main::apply_log() called at /usr/bin/innobackupex line 1578innobackupex: Error: no 'innodb_data_file_path' option in group 'mysqld' in server configuration file '/alidata/www/databases_backups/20150814/backup-my.cnf' at /usr/bin/innobackupex line 4545.
    [vagrant@localhost ~]$

    Googleは多くのリソースを持っていて、ほとんど読めないし、よく分からないので、Percona XtraBackupデータベースのバックアップツールの使用について質問しました.基本的には誰も興味を持っていません.
    そしてPerconaツールに関する質問を検索し続け、Githubで役立つものを整理しました.
    上の問題はずっと私に付きまとっていて、前にも似たような操作をしたことがありますが、この問題にも遭遇しました.雲の中で霧の中で、私は上のいくつかの資料をよく比較して、backup-myを発見しました.confにはいくつかの手がかりがあり、一部のドキュメントではmysqlインストールディレクトリのmyを使用しています.confファイル、
    この内容を比較して、何か分かったようです.実は原理は画像のあの“2.2バックアップの回復”です
    innobackupex --defaults-file  mysql my.conf  --copy-back  

    この推測はアリクラウドヘルプドキュメントのコマンドと確かに違いますね.どうせこれまで二度とも成功しなかったと思うので、このような理解に従ってやってみませんか.CentOSでmysql実行ディレクトリps -ef | grep mysqlを検索します.mysqlデータディレクトリをmv data data_backupバックアップします.いくつかの補助作業をした後、試してみる考えを持って実施し始めた.
    私の予想した命令に従って実行した後、「...no datadir option...」というエラーを報告しました.そしてまたこの文章を見つけた.そこで修正を続け、システムのmy.confファイルを変更し、datadirオプションを開きます.最後に実行し、リストアコマンドがついに実行されました.

    5、各種類の環境配置


    complete okの文字を見て、やっと合ったような気がしますが、実際にはそうではありません.innobackupexファイルを復元した後、さらに構成する必要があります(私の環境):
  • mysql起動エラー:mysql Starting MySQL..The server quit without updating PID file、リストアdatadir構成を変更するか、dataディレクトリに権限(chmod&chown)
  • を割り当てる必要がある場合があります.
  • mysql接続ローカルは成功しません:データを復元した後、mysql rootパスワードを使って空になって、長い間試して、公式もこのようにしていることを発見しました!
  • phpmyadmin/navicatなどのツールが接続されていません.mysqlデータテーブルのhostフィールドを%に設定する必要があります(ここにも複数のrootアカウントなどのピットがあります).

  • 私の実行プロセスは次のとおりです。

    $sudo innobackupex --defaults-file=/alidata/server/mysql/my.cnf --copy-back /alidata/www/databases_backups/20150815/
    
    // , 
    nnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
    and Percona LLC and/or its affiliates 2009-2013.  All Rights Reserved.
    
    This software is published under
    the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
    
    Get the latest version of Percona XtraBackup, documentation, and help resources:
    http://www.percona.com/xb/p150815 03:02:54  innobackupex: Starting the copy-back operation
    
    IMPORTANT: Please check that the copy-back run completes successfully.
               At the end of a successful copy-back run innobackupex
               prints "completed OK!".
    
    innobackupex: got a fatal error with the following stacktrace: at /usr/bin/innobackupex line 4545
        main::get_option('datadir') called at /usr/bin/innobackupex line 2450
        main::copy_back(0) called at /usr/bin/innobackupex line 1578innobackupex: Error: no 'datadir' option in group 'mysqld' in server configuration file '/alidata/server/mysql/my.cnf' at /usr/bin/innobackupex line 4545.

    実行に成功した後
    datadirコメントを
    mysqlエラーの起動
    ディレクトリ権限の変更
    再起動成功
    パスワード登録不要
    phpmyadmin接続できません
    rootパスワードの設定
    phpmyadminログイン成功
    mysqlworkbenchログインに失敗しました
    rootのhost構成の設定を続行-接続に成功しました
    最後に、私たちが問題に直面したとき、決して知らないからといって、分からないからといって捨ててはいけないとまとめました.逆に私达は过程の中で细部を発见するのが上手で、総括してまとめて、有効に间违いを试して、このように収获はもっと多いことができます!

    参考資料の整理

  • http://www.111cn.net/database/mysql/47258.htm
  • http://blog.csdn.net/mchdba/article/details/12970991
  • http://segmentfault.com/q/1010000003096058
  • https://github.com/Brave-Cheng/Materials/blob/master/%E5%9C%A8%E7%BA%BF%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%BA%90%E6%A2%B3%E7%90%86(Online)/Mysql%E5%A4%87%E4%BB%BD.md
  • http://www.drupal001.com/2014/02/percona-xtrabackup-mysql/
  • http://ju.outofmemory.cn/entry/189507

  • 詳細はこちら


    転載:http://www.chenghuiyong.com/percona.html