記事ディレクトリ
MySQL データベース - バックアップと復元
1.Mysql バックアップの概要
1. データバックアップの重要性
データのセキュリティは最優先事項であり、データが失われると重大な結果を招く可能性があります。
データ損失の理由:
• プログラムエラー
• ヒューマンエラー
• 操作ミス
• ディスク障害
• 災害(火災、地震など)と盗難
バックアップする理由
• 古いデータベース ファイルを別の場所に保存するなど、機械の故障や人的ミスによる古いデータの損失を防ぐことができます。
• 冗長性: データの複数の冗長コピーがありますが、バックアップを待たずに、アクティブ/スタンバイ モード、データベース クラスターなどの機械的な障害による古いデータの損失を防ぐことしかできません。
2. 注意すべきことをバックアップする
• コンテンツ データベースのバックアップ my.conf を Binlog します。
• すべてのバックアップ データはデータベース以外のローカルに保持する必要があり、複数のコピーをお勧めします。
• テスト環境で毎日復旧訓練を行います。復旧はバックアップよりも重要です。
3. バックアップ プロセス中に考慮しなければならない要素
• データの一貫性
• サービスの可用性
第二に、データベースのバックアップの分類
1. 物理バックアップ
データベース オペレーティング システムの物理ファイル (データ ファイル、ログ ファイルなど) のバックアップ。物理バックアップは、オフライン バックアップ (コールド バックアップ) とオンライン バックアップ (ホット バックアップ) に分けることができます。このタイプのバックアップは、問題が発生した場合に迅速に復旧する必要がある大規模で重要なデータベースに適しています。
物理バックアップの方法:
1.コールドバックアップ:
▶ データ ファイルのバックアップには、データベースのシャットダウン時に実行されるダウンタイムが必要です。
▶ datadir ディレクトリ内のすべてのファイルをバックアップします。
2.ホットバックアップ:
▶ オンライン バックアップ、データベースは実行中です。このバックアップ方法は、データベースのログ ファイルに依存します。
▶ 基本的にアプリケーションへの影響はありません (アプリケーションの読み書きはブロックされませんが、それでもパフォーマンスは低下しますので、マスターではバックアップを行わず、スレーブ ライブラリで行うようにしてください)。
3.ウォームバックアップ:
▶ データベースがテーブルをロックした状態(書き込み不可、読み取り可)でバックアップ操作を行います。
▶ アプリケーションへの影響が大きく、通常は読み取りロックが追加されます。
• 論理バックアップ: データベースの論理コンポーネント (テーブルなどのデータベース オブジェクトなど) のバックアップ。
2.論理バックアップ
データベースの論理コンポーネント (テーブルなどのデータベース オブジェクトなど) のバックアップは、論理データベース構造 create database、createtable およびその他のステートメントとコンテンツ (insert ステートメントまたはテキスト ファイルの分割) の情報として表現されます。このタイプのバックアップは、データ値またはテーブル構造を編集できる、または別のマシン アーキテクチャでデータを再作成できる少量のデータに適しています。
- | 論理バックアップ | 物理バックアップ |
---|---|---|
バックアップ方法 | データベースの論理コンテンツのバックアップ | データベース物理ファイルのバックアップ |
アドバンテージ | バックアップ ファイルは比較的小さく、テーブル内のデータと構造のみがバックアップされます | 回復速度は比較的速い(物理ファイルの回復は基本的に回復を完了しています) |
欠点 | 回復は遅く、インデックスやストアド プロシージャなどの再構築が必要です。 | バックアップ ファイルが比較的大きい (データとインデックスを含むバックアップ テーブルスペース、断片化) |
ビジネスへの影響 | バッファープールの汚染 (すべてのデータを 1 回読み取り、bp に読み取る)、I/O 負荷の増加 | I/O 負荷の増加 |
代表的なツール | mysqldump | ibbackup,xtrabackup,mysqlbackup |
3. バックアップ方法の選択
• 次のディメンションからバックアップ方法をテストします
▶ バックアップ速度
▶ 回復速度
▶ バックアップサイズ
▶ 事業への影響
3.Mysqlバックアップツール
1.ibbackup
• 公式バックアップ ツール
• 通行料金
• 物理バックアップ
2.エクストラバックアップ
• オープンソース コミュニティ バックアップ ツール
• 無料のオープンソース、上記のものの無料版 (古いバージョンには問題があり、バックアップされたデータに問題がある可能性があります)
• 物理バックアップ
3. mysqldump
• 公式の自己完結型バックアップ ツールはオープン ソースで無料です。
• 論理バックアップ (遅い)
• dml をブロックせず、ddl をブロックする
4.mysqlバックアップ
• mysql 公式バックアップ ツール
• innodb エンジンのテーブル mysqlbackupi をホット バックアップできます。
• innodb 以外のテーブル mysqlbackup はウォームでのみ準備できます
• 物理バックアップ、高速バックアップおよび復元
• 大規模なデータ利用に適しています
四、Mysqlのバックアップ戦略
1.フルバックアップ
• データの完全なバックアップ、つまりデータベース全体、データベース構造、ファイル構造のバックアップを実行するたびに、バックアップが完了した時点でデータベースを保存します。これは、差分バックアップと増分バックアップの基礎となります。
• 利点: バックアップと復元の操作が簡単で便利です。
• 短所: データの重複が多く、多くのスペースを占有します: バックアップとリカバリに時間がかかります。
2. 差分バックアップ
• 前回の完全バックアップ以降に変更されたファイル。
• 前回のフル バックアップ以降に変更されたすべてのファイルをバックアップする バックアップ時間は前回のフル バックアップから開始され、バックアップ データの量が増加します。
• データを復元するときは、最後の完全バックアップと最新の差分バックアップのみを復元します。
3. 増分バックアップ
• 最後の完全バックアップまたは増分バックアップ以降に変更されたファイルのみがバックアップされます。最後の完全バックアップまたは最後の増分バックアップの時点を時点として、それらの間のデータ変更のみがバックアップされるため、バックアップされるデータの量は少なく、占有されるスペースは小さく、バックアップ速度は速くなります。速い。ただし、リカバリ時には、最後のフルバックアップから最後の増分バックアップまで順次リカバリする必要があり、途中のバックアップデータが破損するとデータが失われます。
4. 3つの違い
5、専用の論理バックアップ ツール mysqldump
• mysqldump は、Mysql に付属する論理バックアップ ツール (一般的に使用される) であり、データの一貫性とサービスの可用性を確保できます。
• バックアップの原則は、プロトコルを介して MySQL データベースに接続し、バックアップが必要なデータをクエリし、クエリされたデータを対応する挿入ステートメントに変換することです.データを復元する必要がある場合は、これらを実行するだけです。ステートメントを挿入します。対応するデータの復元。
コマンド形式:
mysqldump [选项] 库名 [表名] > 脚本名
或mysqldump [选项] --库名 [选项 表名] > 脚本名
或mysqldump [选项] --all-databases [选项] > 脚本名
オプション説明:
パラメータ名 | 略語 | 意味 |
---|---|---|
-ホスト | -h | サーバのIPアドレス |
-ポート | -P | サーバーのポート番号 |
-ユーザー | -の | MySQL ユーザー名 |
-パスワード | -p | MySQL パスワード |
–データベース | -B | バックアップするデータベースを指定 |
–すべてのデータベース | -A | mysql サーバー上のすべてのデータベースをバックアップします。 |
-コンパクト | 圧縮モード、少ない出力を生成 | |
–コメント | コメント情報を追加 | |
–完全挿入 | 完成したinsert文を出力する | |
–ロックテーブル | バックアップの前に、すべてのデータベース テーブルをロックします | |
–no-create-db/–no-create-info | CREATE DATABASE ステートメントの生成を抑制する | |
-力 | エラーが発生した場合にバックアップ操作を続行する | |
–default-character-set | デフォルトの文字セットを指定する | |
–追加ロック | データベース テーブルのバックアップ時にデータベース テーブルをロックする | |
-単一トランザクション | データの一貫性とサービスの可用性を確保する | |
–master-data=1|2 | 通常は 1 で、binlog ログの場所とファイル名を記録し、バックアップ ファイルに追加します。 | |
–フラッシュログ | -F | バックアップ前にログをフラッシュする |
–イベント | -と | バックアップ イベント スケジューラ コード |
–トリガー | -T | バックアップトリガー |
–ルーチン | -R | ストアド プロシージャとストアド関数のバックアップ |
終わり