スケジュールされたデータベースバックアップはすべての開発者が必ず試すべきものであり、定期的なバックアップデータは誤って一部のデータを削除してしまう問題を解決し、特定の瞬間に復元して損失を最小限に抑えることができます。
MySQLは、コマンドラインからデータベースデータやファイルをエクスポートする便利なツールであるmysqldumpを提供しており、コマンドラインを通じてデータベースをエクスポートできます。
復習:
この記事は使用CentOS 7環境で、mysqldumpを通じてリモートデータベースをローカルにバックアップします。 mysqldumpコマンドを直接実行すると、エラーは以下のようになります:
-bash: mysqldump: コマンドが見つかりません ここでは、MyDexboxとDrizzle向けの高性能マルチスレッドバックアップ・リカバリーツールであるMydumperというオープンソースのサードパーティパッケージを推奨しています。 mysqldumpのバックアップ速度と回復速度よりも速いです。
GitHubアドレス:ハイパーリンクのログインが見えます。
設置コマンドは以下の通りです:
このようにして、mydumperとmyloaderの両方のコマンドがすでに使用可能で、mydumperはエクスポートを担当し、myloaderはインポートを担当します。以下の図に示されています:
マイダンパーパラメータの説明
-B, --データベース バックアップすべきデータベースで、指定がなければすべてのライブラリをバックアップします -T, --tables-list バックアップが必要なテーブルの名前はカンマで区切っています -o, --outputdir はファイルが出力されているディレクトリをバックアップするために使います -s, --statement-size -statement-size -statement-size によって生成される挿入文のバイト数はデフォルトで1000000です -r, --行テーブルを行に分割する際は、ブロック行数を指定します。このオプションを指定すると--チャンクファイルサイズがオフになります -F, --チャンク-ファイルサイズ テーブルのサイズでチャンク化する場合、指定されたブロックサイズ(MB) -c, --圧縮 圧縮 圧縮 出力ファイルを圧縮 -e, --build-empty-files はテーブルデータが空である場合、または空のファイル(デフォルトではデータなし、テーブル構造ファイルのみが生成される)の場合 -x, --regex は 'db.table' に対応する正規表現と同じです。 -i, --エンジンはストレージエンジンを無視し、厚いパーティショニングを使用します -m, --スキーマなしはテーブル構造をバックアップしません -k、--no-lockは一時的な共有読み取り専用ロックを使用しないため、このオプションを使用するとデータの矛盾が生じます --ロックの減少により、InnoDBテーブルへのロック適用時間が短縮されます(このパターンの仕組みは以下で詳しく説明します) -l, --long-query-guard バックアップをブロックする長いクエリのタイムアウト時間を秒単位で設定し、デフォルトは60秒です(mydumperはタイムアウト後にデフォルトで終了します)。 --kill-long-queries は長いクエリを終了せずにキルします -b, --binlogs binlogs export binlogs -D, --daemon はデーモンモードを有効にし、特定の間隔でデータベースを中断なくバックアップします -I, --スナップショット間隔ダンプ スナップショット間隔時間、デフォルト60秒、デーモンモードである必要があります -L, --logfileはlogファイル名(mydumperで生成されるログ)を使用し、デフォルトで標準出力を使用します --TZ-UTCを跨越したタイムゾーンは、説明ではなく使われるオプションです --skip-tz-utc ID --use-savepoints セーブポイントを使ってメタデータ収集によるロック時間を短縮します。これはSUPER権限を必要とします --success-on-1146 エラーカウントやWarning(Critical in Table)が存在しない場合にエラーカウントを増やしません -h, --host 接続のホスト名 -u, --ユーザーバックアップ ユーザー -p, --パスワードパスワード -P、--ポートポート -S, --socket ソケット通信を使用したときのソケットファイル -t, --スレッドデフォルトで有効になっているバックアップスレッドの数は4つです -C, --compress-protocol は mysql と通信するデータを圧縮します -V、--バージョンはバージョン番号を表示します -v, --verbose 出力情報パターン、0 = 無音、1 = エラー、2 = 警告、3 = 情報、デフォルトは 2 マイローダーパラメータの説明
-d、--バックアップファイル用のディレクトリフォルダ -q, --queries-per-transaction 1件あたり 1つのものに実行されるクエリ数はデフォルトで1000です -o, --overwrite-tables 復元するテーブルが存在する場合は、まずテーブルをドロップし、このパラメータを使い、バックアップが必要なときにテーブル構造をバックアップしてください -B、--データベース 復元が必要なデータベース -e, --enable-binlogはバイナリログでデータを復元できます -h, --hosthost -u, --ユーザーが復元されました -p, --パスワードパスワード -P、--ポートポート -S, --socket socket file -t, --threads は使用されるスレッド数を復元し、デフォルトは4です -C, --圧縮プロトコル -V、--バージョンは -v, --verbose 出力モード、0 = 無音、1 = エラー、2 = 警告、3 = 情報、デフォルトは 2 テストバックアップ
データベースエクスポートコマンドは以下の通りです:
実行後、mydumperは指定されたディレクトリアドレスを作成し、パラメータにパスします。そこにはバックアップ時点のバイナリログファイル名とログが書き込まれた場所を記録するメタデータファイルが含まれています。 各テーブルには、テーブル構造ファイルとテーブルデータファイルfiles:database.table-schema.sql 2つのバックアップファイルdatabase.table.sqlあります。
スケジュールされたバックアップ
参考文献は以下の通りです。
新しいシェルスクリプトを :backup_uat.sh と名付けて、次のように作成します。
実行許可を付与する:
タスクを追加してください
この作業は毎日午前0時10分に実施されます
設定を再ロードします
(終わり)
|