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で顔認識ログインを実装するための完全な手順

推薦する

VueはPCカメラを呼び出して写真機能を実現します

この記事の例では、VueがPCカメラを呼び出して写真機能を実現する具体的なコードを参考までに共有して...

Dockerイメージを構築する2つの方法

目次既存のイメージからイメージを更新します。イメージを最初から構築する: Docker イメージ リ...

Vue デフォルトスロットの理解とサンプルコード

目次スロットとは何かデフォルトスロットの理解コードスニペット要約するスロットとは何かスロットは、親コ...

MySQL 8.0.13 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.13のインストールと設定のチュートリアルを参考までに紹介します。具...

Dockerでボリュームを管理する2つの方法

前回の記事では、Dockerの基礎知識であるローカルディレクトリのマウント方法を紹介しました。今日は...

MySQL における Decimal 型と Float Double 型の違い (詳細説明)

MySQL には、10 進数などの標準データ型だけでなく、float や double などの非標...

SQLデータベースの14の事例の紹介

データシート /* Navicat SQLite データ転送 ソースサーバー: school ソース...

インタラクションデザインと心理学の驚くべきつながり18選

デザイナーは心理学を理解する必要があるデザイナーが知るべき心理学という本は非常に興味深いです。まず、...

Linux QT Kit が見つからない、バージョンが空の問題の解決策

現在このような問題が発生しています 私の状況は、QT が動かなくなってしまったため、仮想マシンを再起...

MySQL解凍版のインストール手順の詳しい説明

1. 公式サイトにアクセスします: D:\mysql-5.7.21-winx64\bin をダウンロ...

ログインインターセプションを実装するためのVueルーティング

目次1. 概要2. ログインインターセプションを実装するためのルーティングナビゲーションガード1. ...

MySQL Innodbの主な機能挿入バッファ

目次挿入バッファとは何ですか?挿入バッファのトリガー条件は何ですか?なぜ一意のインデックスにできない...

SSL を実装するために nginx を設定する方法の例

環境説明サーバーシステム: Ubuntu 18.04 64ビットnginx: 1.14この記事では主...

マインスイーパゲームを実装するための jQuery プラグイン (2)

この記事では、jQueryプラグインを使用してマインスイーパゲームを実装する2番目の記事を参考までに...