3

バックアップ戦略を立てる必要があります。Debian 6 Squeeze で実行する innobackupex を選択しました。運用サーバーとバックアップ サーバー (運用サーバーがクラッシュした場合に動作するはずです) の 2 つのサーバーがあります。レプリケーションはありません。rsync を使用してバックアップを転送します。いつバックアップを行う必要があるかを知るためにconfファイルを調べるphpスクリプトがあります。

私の質問は次のとおりです: innobackupex で mysql データベースまたは users テーブルをスキップするにはどうすればよいですか?

マスターで:次のコマンドを実行します:

innobackupex --user=root --password=xxx --no-timestamp /opt/backups/full/

rsync -avz --progress -e 'ssh -i -p 1000' /opt/backups/full/ user@xxx:/home/backups/full/

これはうまくいきます

バックアップ サーバーでは、ファイルを準備して復元するだけです。

innobackupex --apply-log --redo-only --user=xxx --password=xxx /home/backups/full/

innobackupex --copy-back /home/backups/full --user=root --password=xxx

すべて問題ありませんが、バックアップ サーバーでは、root ユーザーのパスワードが変更され、さらにはdebian-sys-maintパスワードも変更されました。

root ユーザーのパスワードは、マスターのパスワードになります。

これを修正するスクリプトを作成しました。debian-sys-maintパスワードはファイルに平文で書かれているので/etc/mysql/debian.cnf抽出しますが、php(私はpdoオブジェクトを使用しています)ではこのパスワードを変更できないため、mysqlサーバーを再起動できません。マスターサーバーのルートパスワードではないルートユーザーのパスワードを取得できないことがあります。

でmysqlを停止/開始できる場合もあれば/etc/init.d/mysql stop/start、service mysql停止/開始でこれが機能しないmysqladmin -u root -p shutdown場合もあります:(パスワードを変更できる場合)

本当にmysqlを停止できない場合はkillall mysql(間違っていることはわかっています)、ルートパスワードを変更します。

/usr/bin/mysqld_safe --skip-grant-tables &
mysql --user=root mysql

誰かが私のような問題を抱えていましたか? innobackupex で mysql データベースをスキップするにはどうすればよいですか?

4

3 に答える 3

0

回答ありがとうございます。

はい、すべてのテーブルが InnoDB エンジンで動作しています。Bill Karwin さん、アドバイスありがとうございます。しかし、innobackupex は素晴らしいツールです。--databases

はい、それ--redo-onlyは増分用であると読みました。私も増分を行います。マスター サーバーには、 という名前のディレクトリと という名前のディレクトリがfullありincrementalます。最後の増分の後、ディレクトリを削除します。

テスト後、問題がなければご連絡いたします。

于 2013-06-26T07:48:16.800 に答える