完全バックアップとポイントインタイムバックアップにmysqldumpを使用する方法

完全バックアップとポイントインタイムバックアップにmysqldumpを使用する方法

Mysqldump は MySQL の論理バックアップに使用されます。高速ではありませんが、柔軟性が高く、機能も豊富です。柔軟に使用すると、間違いなく強力なツールになります。

まず、MySQL をバックアップする必要がある理由について考えてみましょう。主な理由はデータのセキュリティです。たとえば、メイン データベースがクラッシュしてデータが誤って削除された場合、完全バックアップが非常に重要です。

完全バックアップはプライマリ データベースから実行する必要がありますか、それともセカンダリ データベースから実行する必要がありますか?

1: メインライブラリから

メインデータベースの方が重要ですが、実際にはバックアップはデータベースに影響を与えません

mysqldump --host= --user= --password= --single-transaction --master-data=1 --flush-logs --databases >~/db.log

--single-transaction パラメータを使用すると、テーブルをロックせずに一貫した読み取りが可能になります。つまり、バックアップ中にデータの更新が影響を受けることはありません。

アプリケーションをブロックすることなく、START TRANSACTION が発行された時点でのデータベースの一貫した状態をダンプします。

一貫性のある読み取りにより座標点の位置を保証できるため、バックアップ時間が長くても正しい同期位置点を取得できます。

単一トランザクションダンプが進行中に、有効なダンプファイル(正しいテーブル内容とバイナリログ座標)を確保するため

--master-data パラメータも非常に重要です。エクスポートされたステートメントには、バックアップ ステートメントに同期されたバイナリ ファイルとロケーション ポイントを含む CHANGE MASTER TO ステートメントが含まれます。

このオプションを使用すると、マスター レプリケーション サーバーをダンプして、別のサーバーをマスターのスレーブとして設定するために使用できるダンプ ファイルが生成されます。これにより、ダンプ出力に、ダンプされたサーバーのバイナリ ログ座標 (ファイル名と位置) を示す CHANGE MASTER TO ステートメントが含まれます。これらは、ダンプ ファイルをスレーブにロードした後、スレーブがレプリケーションを開始するマスター サーバーの座標です。

--flush-logs は新しいバイナリ ファイルの再生成を強制し、回復を容易にします。

2: 二次図書館から

セカンダリライブラリからバックアップする方が安全だと感じます。

mysqldump --host=--user= --password= --dump-slave=1 --flush-logs --apply-slave-statements --include-master-host-port --databases >~/db.log;

--dump-slave と --master-data パラメータは非常に似ています。

このオプションは --master-data と似ていますが、レプリケーション スレーブ サーバーをダンプして、ダンプされたサーバーと同じマスターを持つスレーブとして別のサーバーを設定するために使用できるダンプ ファイルを生成するために使用されます。これにより、ダンプ出力に、ダンプされたスレーブのマスターのバイナリ ログ座標 (ファイル名と位置) を示す CHANGE MASTER TO ステートメントが含まれます。これらは、スレーブがレプリケーションを開始するマスター サーバー座標です。

プライマリライブラリ(バックアップライブラリではない)のbinログ座標を取得することに注意してください。

—dump-slave は、ダンプされたサーバーの座標ではなく、マスターの座標を使用します。

ダンプされたステートメントには、レプリケーションまたはポイントインタイムリカバリを開始する位置が含まれます。

--apply-slave-statements は、ダンプ ステートメントにスレーブの開始ステートメントと停止ステートメントを自動的に含めます。 --include-master-host-port には、マスター ライブラリの接続情報が含まれます。

覚えておかなければならないことが 1 つあります。--single-transaction ステートメントを使用しても、--dump-slave によって MySQL の同期が中断されます。つまり、バックアップ データベースのデータはメイン データベースより遅れるため、一般的な自動スクリプトでは、バックアップ時に最初にバックアップ データベースが削除されます。

このオプションにより、mysqldump はダンプ前にスレーブ SQL スレッドを停止し、ダンプ後に再起動します。

3: ポイントインタイムリカバリを実行する方法

実際に試したことはありません。まず、最新のフルバックアップに基づいて復元し、その後、後続の binlog ファイル (これらのファイルがまだ存在する場合) をインポートします。そのため、セカンダリ データベースの binlog ステートメントもバックアップすることをお勧めします。

誤ってデータを削除した場合は、バックアップ ポイント (--flush-logs が有効) から今朝までの binlog ステートメントをインポートするか、安全な binlog の場所を見つけて復元します。 「危険な発言」をどうやって飛ばすかという点については、制御がより困難です。

上記は、mysqldump を使用して完全バックアップとポイントインタイム バックアップを行う方法の詳細です。mysqldump を使用して完全バックアップとポイントインタイム バックアップを行う方法の詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • 知らないかもしれないmysqldumpパラメータ
  • MySQL5.7 mysqldump バックアップとリカバリの実装
  • Linuxでmysqlの定期的なコールドバックアップを実装するためにmysqldump+expect+crontabを使用するアイデアの詳細な説明
  • mysqldump を使用した MySql のインポートおよびエクスポート方法の概要
  • MySQL mysqldump の使い方の詳しい説明
  • Dockerはmysqldumpコマンドを使用してプロジェクト内のmysqlデータをバックアップおよびエクスポートします。
  • MySQLdump コマンドを使用した MySQL データの移行
  • PHP スケジュールバックアップ MySQL および mysqldump 構文パラメータの詳細
  • mysql バックアップ スクリプト mysqldump の使い方の詳細な説明
  • Linux mysqldump によるデータベース、データ、テーブル構造のエクスポートの詳細な説明
  • mysqldumpデータエクスポートの問題に関する詳細な議論
  • MySQL公式エクスポートツールmysqlpumpの使用

<<:  Linux mysql-5.6 でルート パスワードをリセットする方法

>>:  Vue でコミュニケーションを実装する 8 つの方法

推薦する

オペレーターが知っておくべき 18 個の Nginx プロキシ キャッシュ構成のヒント (どれを知っていますか?)

アプリケーションや Web サイトのパフォーマンスが成功の重要な要素であることは誰もが知っています。...

VSCode の JS フォーマットでセミコロンを自動的に追加または削除する方法について

導入js コード文の末尾にセミコロンを追加しても追加しなくても問題ありません。一般的に、チームで開発...

ウェブページ作成時のHTMLタグの使用に注意してください

この記事では、Web ページの作成を学習するときに注意すべき HTML タグに関するいくつかの問題を...

NginxはURLのパスに応じてアップストリームに動的に転送します

Nginx では、URL のパス パラメータに基づいて、到達不可能なアップストリームに動的に転送する...

CSS 要約ノート: 変換、遷移、アニメーションの例

1.移行遷移プロパティの使用法: transition :transition-property t...

Docker Compose を使用して Confluence を構築するチュートリアル

この記事は「Attribution 4.0 International (CC BY 4.0)」ライ...

Vue lazyload 画像遅延読み込み例の詳細な説明

ドキュメント: https://github.com/hilongjw/vue-lazyload 1...

入力が正しいにもかかわらず、MySQL 8.0 でアクセスが拒否される問題を解決する

最近、MySQL を学び始めました。インストールはスムーズに進み、インターネット上の既成のチュートリ...

MySQL 8.0.20 圧縮版のインストールチュートリアル(画像とテキスト付き)

1. MySQL ダウンロード アドレス。 http://ftp.ntu.edu.tw/MySQL...

ウェブサイトにダークモード切り替え機能を持たせるための純粋なCSSフリー実装コード

序文ダーク モードの概念は、 MacOS系統のMojaveに由来し、ユーザーが選択できる 2 つのス...

HTML コードを書くための 30 のヒント

1. HTMLタグは常に閉じる前のページのソース コードでは、次のような記述がよく見られます。 &l...

Linuxで静的ネットワーク接続を構成する方法

Linux システムのネットワーク接続を構成するのは難しい場合があります。幸いなことに、多くの新しい...

ウェブデザイン:大量の素材の正確な配置と使用

3回の暗記により、大量の資材の正確な場所と目的を記憶でき、その使いやすさが向上します。 これは単なる...

Java は Apache.POI を使用して HSSFWorkbook を Excel にエクスポートします

Apache.POI の HSSFWorkbook を使用して Excel にエクスポートします。具...

Linux での MySQL 5.6.24 (バ​​イナリ) 自動インストール スクリプト

この記事では、Linux環境でのmysql5.6.24自動インストールスクリプトコードを参考までに共...