完全バックアップとは、データベース内のすべてのデータとすべてのオブジェクトをバックアップすることです。
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);
## を使用#flush tables; ステートメントは、すべてのデータをデータ ファイルに書き込みます:
FLUSH TABLES;
mysqldump -u root -p --lock-all-tables --databases world > /tmp/world.sql
/tmp ディレクトリに入り、バックアップ ファイルを表示します:
cd /tmp ls
ワールド データベース内の Student テーブルの損失をシミュレートします:
DROP TABLE student;
SHOW TABLES;
mysql コマンドを使用してデータベースを復元します:
mysql -uroot -p < /tmp/world.sql
SHOW TABLES;
出力結果:
テーブル内のデータを確認します:
SELECT * FROM student;
以上がMySQL データベースの完全バックアップと増分バックアップを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。