ホームページ >データベース >mysql チュートリアル >MySQL データベースの完全バックアップと増分バックアップを実装する方法

MySQL データベースの完全バックアップと増分バックアップを実装する方法

WBOY
WBOY転載
2023-05-27 11:40:232359ブラウズ

定義

完全バックアップとは、データベース内のすべてのデータとすべてのオブジェクトをバックアップすることです。

MySQL サーバーのデータ ファイルはディスク ベースのテキスト ファイルであるため、完全バックアップはデータベース ファイルをコピーすることであり、これが最も簡単で最速の方法です。

ただし、MySQL サーバーのデータ ファイルは、サーバーの実行中は常に開かれているため、真の完全バックアップを実現するには、まず MySQL データベース サーバーを停止する必要があります。

データの整合性を確保するには、MySQL サーバーを停止する前に、フラッシュ テーブル ステートメントを実行して、すべてのデータをデータ ファイルに書き込む必要があります。学生は、実稼働環境ではバックアップのためにデータベースを停止することはお勧めできないため、この方法は実行不可能であることだけを知っておく必要があります。

mysqldump コマンドを使用して、テーブル、データベース、およびデータベース システムをバックアップします。

mysqldump [-h主机名] –u用户名 –p密码 --lock-all-tables --database [tables] > 文件名

-h ホスト名 (省略可能) は、ローカル サーバー --lock-all-tables を示します。バックアップするファイルの読み取りロックは、データベース内のすべてのテーブルに適用されます (このプロセス中、データベースは厳密に読み取り専用状態になります)。バックアップする必要があるテーブルを --database の後に追加できます。テーブル名が指定されていない場合は、データベース全体をバックアップすることを意味します。

完全なバックアップとリカバリのデモンストレーション

学生テーブルを準備し、ワールド データベースにテーブルを構築します。

テーブルの作成:

CREATE DATABASE world;
USE world;
CREATE TABLE student(
    stuId INT(10) NOT NULL,
    stuName VARCHAR(10) NOT NULL,
    stuAge INT(10) NOT NULL,
    PRIMARY KEY(stuId)
    );

データの挿入:

INSERT INTO student(stuId, stuName, stuAge) VALUES(1, 'zhangsan', 18), (2, 'lisi', 19),(3, 'wangwu', 18);

MySQL データベースの完全バックアップと増分バックアップを実装する方法

## を使用#flush tables; ステートメントは、すべてのデータをデータ ファイルに書き込みます:

FLUSH TABLES;

mysql 環境を終了し、mysqldump コマンドを使用してデータベース世界を完全にバックアップします:

mysqldump -u root -p --lock-all-tables --databases world > /tmp/world.sql

/tmp ディレクトリに入り、バックアップ ファイルを表示します:

cd /tmp
ls

これで、ワールド ライブラリが完全にバックアップされたので、データ損失の心配はありません。

ワールド データベース内の Student テーブルの損失をシミュレートします:

DROP TABLE student;

テーブルが削除されたことを確認します

SHOW TABLES;

MySQL データベースの完全バックアップと増分バックアップを実装する方法

mysql コマンドを使用してデータベースを復元します:

mysql -uroot -p < /tmp/world.sql

mysql 環境に入り、回復結果を表示します:

SHOW TABLES;

出力結果:

MySQL データベースの完全バックアップと増分バックアップを実装する方法

テーブル内のデータを確認します:

SELECT * FROM student;

MySQL データベースの完全バックアップと増分バックアップを実装する方法

増分バックアップは前回の完全バックアップまたは増分バックアップ以降の変更 データのバックアップはバイナリ ログ ファイルに依存するため、データベースのバイナリ ログ ログをオンにする必要があります。最初にデータベースの完全バックアップを実行し、同時に binlog ログを更新します。このバックアップ後のすべての操作は、新しい binlog ログに記録されます。コンテンツの継続的な増加を実現するには、追加された binlog をバックアップするだけで済みます。データベースの完璧なバックアップ。データベースに異常が発生した場合、最新のフルバックアップをリストアし、その後増分バックアップファイルを1つずつリストアすることでデータベースを復旧します。

以上がMySQL データベースの完全バックアップと増分バックアップを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。