MySQLデータのバックアップとリカバリの実装方法の分析

MySQLデータのバックアップとリカバリの実装方法の分析

この記事では、例を使用して MySQL データのバックアップと復元の方法について説明します。ご参考までに、詳細は以下の通りです。

この記事の内容:

  • ファイルのコピー法
  • mysqldump の使用
  • 選択出力ファイルの使用
  • その他(記載されているが紹介されていないもの)

発売日: 2018-04-19


すべてのデータがディスクに書き込まれるようにするために、バックアップの前にテーブルをフラッシュする必要がある場合があります。


ファイルのコピー方法:

  • myisam ストレージ エンジンのデータベースの場合、テーブル構造 (.frm)、データ (.myd)、インデックス (.myi) はすべて別々のファイルです。これらの 3 つのファイルをバックアップ スペースに直接コピーすると、正常にバックアップできます。
  • 復元に関しては、3 つのファイルをデータベース ディレクトリにコピーするだけです。


mysqldump の使用:

適用可能な状況: 基本的にはテーブル構造とデータをSQL文に復元するため、テーブル構造をバックアップできます。

バックアップ:

  • 単一テーブルのバックアップ: mysqldump -u ユーザー名 -p データベース名 テーブル名 > バックアップファイルパス
  • 複数テーブルのバックアップ: mysqldump -u ユーザー名 -p データベース名 テーブル名 1 [その他のテーブル名] > バックアップ ファイル パス
  • 単一データベースのバックアップ: mysqldump -u ユーザー名 -p データベース名 > バックアップ ファイル パス
  • 複数のデータベースをバックアップする: mysqldump -u ユーザー名 -p --databases データベース名 1 データベース名 2 [その他のデータベース] > バックアップ ファイル パス
  • すべてのデータベースをバックアップします: mysqldump -u ユーザー名 -p --all --databases > バックアップ ファイル パス

削減:

  • mysqldump -u ユーザー名 -p パスワード [データベース名] < バックアップファイルパス [データベースを指定した場合は、指定したデータベースのバックアップのみを復元します。指定しない場合は、バックアップファイル内のすべての内容を復元します]

補充:

  • mysqldump はテーブルデータのみをエクスポートすることもできます [ただし、select into outfile があるため、ここでは紹介しません]

select into outfile を使用する:

適用可能な状況: 単一テーブル データのバックアップ。テーブル構造ではなく、テーブル データのみをコピーできます。

バックアップ:

  • 構文: select *\field list from data source into outfile バックアップ ファイル ターゲット パス [fields フィールド処理] [lines 行処理]; [バックアップ ファイル ターゲット パス内のファイルは存在してはいけません]
    • フィールド処理はオプションであり、各フィールドのデータがどのように保存されるかを指定します。次のオプションがあります。
      • 囲み文字: データを囲むために使用される文字は何ですか? デフォルトは空の文字です。
      • 終了文字: フィールド データの末尾として使用される文字は何ですか? デフォルトは、バックスペース文字の \t です。
      • エスケープ方法: 特殊記号の処理方法。デフォルトは「\\」です。
      • オプションで囲む文字: データ型が文字列であるデータを囲むために使用される文字。
      • 文法:
        select * from class into outfile "d:\c1.txt" fields closed by '-';
        select * from class into outfile "d:\c1.txt" フィールドは '-' で囲まれ、オプションで "'" で囲まれます。
    • ライン処理はオプションです
      • 開始: 各行の先頭の文字列。デフォルトは空の文字列です。
      • 終了: レコードの各行の終わり。デフォルトは "\n" です。
      • 文法:
        select * from class into outfile "d:\c.txt" の 'start:' で始まる行を選択します。
        select * from class into outfile "d:\c1.txt" 'start:' で始まり '\n' で終わる行;

注: データのエクスポートを制限するために、5.7 で secure_file_priv という新しい機能が追加されました。 secure-file-priv パラメータは、LOAD DATA、SELECT ... OUTFILE、および LOAD_FILE() が転送されるディレクトリを制限するために使用されます。

image

my.iniで設定する必要がありますimageデータを通常どおりエクスポートします。

削減:

  • 構文: load date infile バックアップ ファイル パス into table テーブル名 [fields フィールド処理] [lines 行処理]; [前のフィールド処理と行処理を書き留めてください。そうしないと、データを正しく区別できません]


他の

  • バックアップ:
    • mysqlコマンドを使用してバックアップする
    • mysqlhotcopyを使用したバックアップ
    • バックアップテーブルの使用
  • 削減:
    • mysqlimport を使用してデータ ファイルをインポートします。
    • 復元を使用して復元する
    • ソースを使用して復元

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL インデックス操作スキルの概要」、「MySQL 共通関数の概要」、「MySQL ログ操作スキルの概要」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの概要」、および「MySQL データベース ロック関連スキルの概要」。

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • mysql5.7でbinlogを使用してデータを復元する方法
  • MySQLはbinlogを通じてデータを復元する
  • MySQLはテーブルデータを復元するためにfrmファイルとibdファイルを使用します
  • MySQLはデータ復旧を実装するためにbinlogログを使用する
  • 誤って削除されたデータを復元するための mysqlbinlog コマンドを使用した mysql の実装
  • MySQLデータを復元する2つの方法
  • MySQL データベースのバックアップとリカバリの実装コード
  • MySQLはmysqldump+binlogを使用して、削除されたデータベースの原理分析を完全に復元します。
  • MySQL バイナリログデータ復旧: 誤ってデータベースを削除した場合の詳細な説明
  • MySQLデータ復旧のさまざまな方法の概要

<<:  ユニアプリとミニプログラム(画像とテキスト)を下請けする方法を教えます

>>:  Ubuntuで顔認識ログインを実装するための完全な手順

ブログ    

推薦する

MySQLトリガーの使用

トリガーにより、ステートメントの実行前または実行後に他の SQL コードを実行できます。トリガーは、...

MySQL InnoDB アーキテクチャの概要

目次導入1. MySQLデータベースの全体的なアーキテクチャSQL インターフェースパーサーオプティ...

カーソル ループを使用して、MySQL ストアド プロシージャで一時テーブルを読み取る

カーソルカーソルは、結果セット内のデータを表示または処理するために使用される方法です。カーソルを使用...

CSSは高さを設定せずにdivを完全に中央に配置することを実現します

必要とする本文の下のdivは垂直方向に中央揃えになっていますdiv 内のテキストを垂直中央に配置する...

mysql コマンドライン スクリプトの実行例

この記事では、例を使用して MySQL コマンドライン スクリプトの実行について説明します。ご参考ま...

ウェブページの読み込み速度を上げる6つのヒント

第二に、キーワードのランキングは、Webページの表示速度にも関係しています(参照:キーワードランキン...

MySQLデータベースインデックスの欠点と適切な使用

目次インデックスの適切な使用1. 通常のインデックスのデメリット2. 主キーインデックスの落とし穴3...

Linuxのtimeコマンドの使い方の詳しい説明

1. コマンドの紹介時間は、コマンドの実行に費やされた時間や関連するシステム リソース、その他の情報...

Vueが学生管理機能を実装

この記事では、学生管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次の...

EDMをHTMLで記述する際の注意点まとめ(メール送信時の一般的な注意点)

フォーマットエンコーディング1. ページの幅は600~800px、長さは1024px以内に設定してく...

Vue 監視プロパティと計算プロパティ

目次1. 監視プロパティを監視する1. ショッピングカート2. すべて選択し、すべて選択解除する2....

HTML ハイパーリンク内の中国語文字化けの分析と解決

Vm 内のハイパーリンク URL は、Get 要求のパラメータとして中国語と連結する必要があります。...

HTMLページでよく使われるいくつかの小さなメソッド

<Head>タグに追加する<meta http-equiv="pragm...

Zabbix を使用して Nginx/Tomcat/MySQL を監視する方法の詳細なチュートリアル

目次ZabbixはNginxを監視するZabbixはTomcatを監視するZabbixはMySQLを...