web-dev-qa-db-ja.com

zfsスナップショットを使用してライブMySQLデータベースをバックアップする(ほとんど)安全な方法はありますか?

基本的に私が探しているのは、mysql(percona-flavored)に次の手順を実行するように指示する方法です。

  • コミットされたすべてのトランザクションをファイルシステムにフラッシュします
  • すべてのトランザクションのバッファリングを開始します(ファイルシステムをコヒーレント状態に保ちます)
  • 私が何かをするのを待ってください(zfsスナップショットを撮ってください)
  • 書き込みのバッファを解除し、通常の操作を再開します

DDLステートメントでバックアップを中断できるソリューションは受け入れられます(このバックアップソリューションは頻繁に適用され、DDLステートメントは非常にまれであるため、最悪のシナリオでは、予想より1時間多くdbをロールバックする必要があります)。

バックアップ操作はパフォーマンスへの影響を最小限に抑える必要がありますが、これは高負荷のシステムではありません。データベースごとまたはシステム全体でこの手順を実行するソリューションはどちらも問題ありませんが、後者の方が多少推奨されます。

2
HonoredMule

すべてのデータベースがInnoDB形式の場合、これを行う必要はありません。復元を行うと、InnoDBは起動時にデータの一貫性を自動的に確立します。

1
longneck