ホームページ >データベース >mysql チュートリアル >MySQLのバックアップとリカバリの詳しい説明

MySQLのバックアップとリカバリの詳しい説明

黄舟
黄舟オリジナル
2017-03-01 13:43:041164ブラウズ

MySQL データのバックアップ

mySQL には、論理バックアップと物理バックアップがあります。論理バックアップの最大の利点は、さまざまなストレージ エンジンのバックアップに同じ方法を使用できることです。物理バックアップは異なり、ストレージ エンジンが異なればバックアップ方法も異なります。

論理バックアップとリカバリ

バックアップ

MySQL では、論理バックアップは mysqldump を使用してデータベース内のデータをテキスト ファイルとしてバックアップし、バックアップされたファイルを表示および編集できます。バックアップはバックアップ範囲に応じて、次の 3 種類のバックアップに分けられます。

  • 指定したデータベースまたはデータベース内の一部のテーブルをバックアップします
    mysqldump [オプション] データベース名 [テーブル名] > data.sql

  • 指定した複数のデータベースをバックアップします
    mysqldump [オプション] –database > .sql データベース 1 データベース 2 データベース 3...

  • すべてのデータベースをバックアップします
    mysqldump [オプション] –all-database > data.sql
    分析: [オプション] バックアップ待機中に必要な権限情報。 mysqldump には多くのオプションがあり、mysqldump –help で表示できます。 データ バックアップの一貫性を確保するには、MySQL ストレージ エンジンが北にある場合、-l パラメータを追加する必要があります。これは、バックアップ期間中、すべてのテーブルが読み取り専用になることを意味します。 、書かれていません。ただし、InnoDB エンジンの場合は、-single-transaction を使用できます。 data.sql によってバックアップされたデータ ファイル
    パラメータ:
    l: すべてのテーブルのロックを表します
    f: 新しい日付ファイルの生成を表します

この例では、xxpt データベース内のすべてのテーブルを dequan.sql テーブルにバックアップします。コマンドは次のとおりです:
mysqldump -uroot -p xxpt >dequan.sql
MySQLのバックアップとリカバリの詳しい説明
上記のバックアップ パスを指定しなかったため、デフォルトでは現在のパスにバックアップされるため、バックアップはD:wampbinmysqlmysql5.6.17bin パス。

復元

完全回復

Mysqldumpの回復も非常に簡単で、入力としてバックアップを実行するだけです。結果は次のとおりです。
mysql -uroot -p dbname

不完全なリカバリ

不完全なリカバリには、ポイントインタイムベースのリカバリとロケーションベースのリカバリが含まれます。時刻および位置は、バイナリログ(binlog log)における時刻および位置に対応する。
MySQLのバックアップとリカバリの詳しい説明

時点に基づいて、

は午後 4 時から午後 5 時までにデータ ルーム エラーを設定します。これはリカバリ中にスキップする必要があります。まず、binlog ログを見てみましょう。たとえば、午後 4 時以降のデータの更新は誤りであるため、リカバリ中にスキップする必要があります。午後 5 時以降のデータの削除は正しいため、保持する必要があります。
MySQLのバックアップとリカバリの詳しい説明
1. mysql -uroot -p dbname による

ロケーションベースのリカバリ

ロケーションのリカバリを使用する場合は、まず binlog ログ ファイルを確認し、ロケーション番号を特定してから、次のコマンドを使用して復元する必要があります。 mysqlbinlog D:wampbinmysqlmysql5. 6.17datamybinlog.000012 –stop-position=716406|mysql -uroot -p
5時以降に操作を再開
D:wampbinmysqlmysql5.6.17datamybinlog.000012 –start-position=723613|mysql - uroot -p

MySQLのバックアップとリカバリの詳しい説明

物理バックアップ

物理バックアップはコールドバックアップとホットバックアップに分けられます。論理バックアップと比較した場合、その最大の利点はバックアップとリカバリの速度が速いことです。物理バックアップの原則はファイル cp に基づいているためです。

コールド バックアップとリカバリ

コールド バックアップは、実際にはデータベース サービスを停止し、データ ファイルをコピーする方法です。この方法は、MyISAM と InnoDB の両方に適しています。

リカバリ: まず Mysql サービスを停止し、MySQL データ ファイルをオペレーティング システム レベルで復元してから、Mysql サービスを再起動し、Mysqlbinlog ツールを使用してバックアップ以降のすべての binlog を復元します。

ホット バックアップ

mysql のさまざまなストレージ エンジンのホット バックアップは異なります。

MyISAM ストレージ エンジン

MyISAM ストレージ エンジンのバックアップ原理は、バックアップ対象のテーブルに読み取りロックを追加し、データ ファイルをバックアップ ディレクトリに cp することです。一般的に使用される方法

  • 方法 1: mysqlhotcop を使用する

    mysqlhotcop db_name [ディレクトリ]

  • 方法 2: 手動でロックテーブルをコピーする

    最初にデータベース内のすべてのテーブルに読み取りロックを追加し、次にデータを cp します。
    すべてのテーブルを読み取りロックでフラッシュテーブルをロックする

    MySQLのバックアップとリカバリの詳しい説明

InnoDBストレージエンジン

学習...

テーブルのインポートとエクスポート

エクスポート

  • 実現するには、SELECT...INTO OUTFILE...+[options]コマンドを使用します
    オプションパラメータについては次のとおりです
    MySQLのバックアップとリカバリの詳しい説明
    デフォルトのパスは、データ:
    MySQLのバックアップとリカバリの詳しい説明
    MySQLのバックアップとリカバリの詳しい説明

  • mysqldump を使用します
    mysqldump -u username -T targetDir dbname tableName[options]
    例:
    mysqldump -uroot -p -T D:/wamp/bin/mysql/mysql5.6.17/ xxpt t1
    次のように 2 つのファイルが生成されます。 写真:
    MySQLのバックアップとリカバリの詳しい説明
    t1.txt に保存されたデータ情報、t1.sql ファイルの内容は次のとおりです

-- MySQL dump 10.13  Distrib 5.6.17, for Win32 (x86)
---- Host: localhost    Database: xxpt
-- ------------------------------------------------------
-- Server version   5.6.17-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
---- Table structure for table `t1`--DROP TABLE IF EXISTS `t1`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `t1` (  `id1` int(11) NOT NULL DEFAULT '0',  
`id2` int(3) unsigned zerofill NOT NULL DEFAULT '000') ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2016-04-18 19:30:51

インポート

方法 1:
データをファイルにロード
eg :
load data infile 'D:/wamp/bin/mysql/mysql5.6.17/t1.txt' into table t1;
MySQLのバックアップとリカバリの詳しい説明

方法 2: mysqlinport を使用する

上記は MySQL のバックアップとリカバリの詳細な説明です。関連コンテンツの詳細については、PHP 中国語 Web サイト (www.php. cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。