web-dev-qa-db-ja.com

xtrabackupバックアップ許可?

MySQL 5.5 + OpenSUSE12.3を使用しています。 mysqldumpの問題に直面した後(OpenSuse Mysqlディストリビューションのバグのようです)、他のバックアップソリューションを探しています。

私はperconaからのxtrabackupを見つけました。これは非常に素晴らしい解決策です。私はそれをバックアップと復元に成功してテストしました。

しかし、私が期待したように完全ではないようです。ユーザー/付与者と構成ファイル(my.cnf)をバックアップしていません...
mysqlpdumpを使用して、次のシェルスクリプトを使用します。

mygrants()
{
  mysql -B -N $@ -e "SELECT DISTINCT CONCAT(
    'SHOW GRANTS FOR ''', user, '''@''', Host, ''';'
    ) AS query FROM mysql.user" | \
  mysql $@ | \
  sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/## \1 ##/;/##/{x;p;x;}'
}

そしてxtrabackupで、私はこの「補完」を使い続けると信じています。

Xtrabackupのドキュメントを見ると、この件については何も見つかりませんでした。

私が知る必要があること:

  1. これ(grantとmy.cnf)をxtrabackupに自動的に含める方法はありますか?
  2. そうでない場合は、スクリプトを実行して助成金とmy.cnfのコピーを取得することは、データベースからのバックアップとしては非常に重要ですか?または私はここで何かが欠けていますか?
2
ceinmart

MySQL UserGrantsのバックアップソリューションは問題ありません。

私は何年もの間それをすることを提唱してきました:

また、Perconaが pt-show-grants および を作成したことに注意してください)xtrabackup 。不思議なことにpt-show-grantsはまだxtrabackupに統合されていません(間違っている可能性があります。結局のところ、mysqlスキーマの物理バックアップはGrantsのバックアップに非常に適しているはずです)。おそらく、次のいずれかが理由です。

  • Grantsのテキストバージョンをバックアップから分離しておくというビジネス上の決定
  • 潜在的なセキュリティ理由(誰かがバックアップを手に入れる必要があります)
  • これまで誰も考えたことはありません

元の質問に戻ると、SQLのUserGrantsのコピーとmy.cnfで十分です。

2
RolandoMySQLDBA