バックアップ戦略を立てる必要があります。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 データベースをスキップするにはどうすればよいですか?