この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 27725|答える: 4

[出典] Linux環境でリモートMySQLデータベースを定期的にバックアップしてください

[リンクをコピー]
掲載地 2021/09/30 14:42:47 | | | |
スケジュールされたデータベースバックアップはすべての開発者が必ず試すべきものであり、定期的なバックアップデータは誤って一部のデータを削除してしまう問題を解決し、特定の瞬間に復元して損失を最小限に抑えることができます。

MySQLは、コマンドラインからデータベースデータやファイルをエクスポートする便利なツールであるmysqldumpを提供しており、コマンドラインを通じてデータベースをエクスポートできます。

復習:

MySQLdump はデータベースの要約をインポートおよびエクスポートします
https://www.itsvse.com/thread-4353-1-1.html

Windows環境でMySQLを使って自動的にバックアップをスケジュールします
https://www.itsvse.com/thread-7412-1-1.html

[再録]Linux上でウェブサイトやデータベースのスクリプトを定期的にバックアップしています
https://www.itsvse.com/thread-4428-1-1.html

MySQLデータベースのバックアップとエクスポート
https://www.itsvse.com/thread-4004-1-1.html
この記事は使用CentOS 7環境で、mysqldumpを通じてリモートデータベースをローカルにバックアップします。 mysqldumpコマンドを直接実行すると、エラーは以下のようになります:

-bash: mysqldump: コマンドが見つかりません
ここでは、MyDexboxとDrizzle向けの高性能マルチスレッドバックアップ・リカバリーツールであるMydumperというオープンソースのサードパーティパッケージを推奨しています。 mysqldumpのバックアップ速度と回復速度よりも速いです。

GitHubアドレス:ハイパーリンクのログインが見えます。

設置コマンドは以下の通りです:

Linux環境の基本:RPMパッケージにEL6、EL7、EL8をインストールすることの違い
https://www.itsvse.com/thread-10098-1-1.html
このようにして、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あります。

スケジュールされたバックアップ

参考文献は以下の通りです。

CentOS 7はcrontabを使って、定期的にタスクを実行します
https://www.itsvse.com/thread-9280-1-1.html
新しいシェルスクリプトを :backup_uat.sh と名付けて、次のように作成します。

実行許可を付与する:


タスクを追加してください

この作業は毎日午前0時10分に実施されます



設定を再ロードします

(終わり)





先の:Linux環境の基本:RPMパッケージにEL6、EL7、EL8をインストールすることの違い
次に:RAID技術の解説 - RAID0、RAID1、RAID3、RAID5、RAID6、RAID10の比較
 地主| 掲載地 2021/09/30 17:03:15 |
バックアップファイルからデータベース復元のテスト

-o, --overwrite-tables 復元するテーブルが存在する場合は、まずテーブルをドロップし、このパラメータを使い、バックアップが必要なときにテーブル構造をバックアップしてください


この命令は、新たに作成されたテーブルやデータは削除されません

掲載地 2021/10/02 16:58:15 |
一生懸命勉強して、毎日上達させて
 地主| 掲載地 2022/10/19 21:07:56 |
[実戦]。 NET/C#は MySqlBackup.NET に基づいてMySQLデータベースバックアップを実装しています
https://www.itsvse.com/thread-10375-1-1.html
掲載地 2022/11/15 18:19:56 |
覚えてみろ
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com