2023年1月23日URLをコピーしました!データベースのバックアップって、いつも考えさせられますよね。フルバックアップしたいなら、停止してデータディレクトリごとバックアップするのがベターだと思いますが、稼働中のサービスを停止したくない場合はダンプコマンドを利用します。稼働中のデータベースはバックアップ中も読み書きが発生しているので、整合性の取れたデータのバックアップを取得するためには、色々と気を付けなければなりません。そこで今回は、MySQLでmysqldumpコマンドを利用したバックアップのベストプラクティスをご紹介します!目次mysqldumpによるMySQLのバックアップまずは、よく知らない方もいると思いますので、mysqldumpの使い方について簡単におさらいしておきましょう。ご存じの方は読み飛ばしちゃってください。後術にもありますが、データベースエンジンはInnoDBになります。本来なら、ご自身の環境に合わせて様々なオプションを使ったりしますが、基本はこれですな。[出力先ファイル名]このコマンドに、停止せずにバックアップするための最適なオプションを3つ加えます。[–opt]オプション公式サイトではこのように書かれています。組み合わせの短縮形です。サーバーに迅速にリロードできるダンプファイルを生成します。データベースバックアッププログラムデフォルトで有効になっているので、明示的に指定する必要はないのですが、特に注目していただきたいのが[–-quick]が含まれている点です。mysqldumpはメモリにバッファリングすることもできますが、大きなテーブルをダンプしているとメモリへの負荷が問題になります。その問題を解決するため、バッファリングせずテーブルを1行ずつダンプする[–quick]オプションを使用します。[–opt]を指定すれば、自動的に[–quick]が有効になります。(デフォルトでも有効ですが...)ただし、ディスクIOに左右され、時間がかかるのではないかと思われます。[–single-transaction]オプション先程の[–opt]に含まれている[–lock-tables]オプションはダンプするすべてのテーブルをダンプ前にロックしますが、[–single-transaction]はテーブルをロックせずにトランザクションが開始された時点のデータベースの状態をダンプします。前手条件として記述していた通リ、データベースエンジンはInnoDBに限ります。公式サイトでもこのような記載があります。オプションと組み合わせてください。[–order-by-primary]オプション最後は[–order-by-primary]オプションです。こちらは各テーブルの行に存在する、主キーまたは一意のインデックスでソートしてダンプします。バラバラのデータを綺麗に並び替えてダンプしてくれるオプションです。公式サイトにはこのような注意書きもありますので、気を付けて使用しましょう。ダンプ操作にかかる時間がかなり長くなります。データベースバックアッププログラムそりゃそうだわな。整形しながらダンプするから、確かに時間はかかると思います。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。閉じるホーム画面に追加してください!。