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 5.6 マスタースレーブエラー報告の実践記録

1. 問題の症状バージョン: MySQL 5.6、従来の binlog ファイルと pos 方式を使...

Ubuntu MySQL バージョンが 5.7 にアップグレードされました

数日前、図書館はサーバー(Ubuntu 14.04)にセキュリティ上の脆弱性があり、時間通りに修復さ...

CSS マージンの重複とその防止方法

2 つ以上のブロックレベル ボックスの垂直に隣接するエッジが重なり合っています。結果として得られる境...

ページ要素の絶対位置と相対位置に関するある程度の理解

今日から、定期的にちょっとした豆知識を整理していきます。簡単なものもあるかもしれませんが、どれも役に...

CSS を使用して物流の進行状況のスタイルを実装するためのサンプルコード

効果: CSS スタイル: <スタイル タイプ="text/css">...

CentOS 6.x のインストール時に発生するエラー「ディスク sda に BIOS RAID メタデータが含まれています」の解決方法

今日、CentOS6.2 をインストールしていたところ、ハード ドライブの検出段階を通過できませんで...

Linux でソフトウェア パッケージのバージョンをアップグレードする方法の詳細な説明

Linux環境で、特定のソフトウェア(パッケージ)がインストールされているかどうかを確認したい。 r...

JS にこれがあるのはなぜですか?

目次1. 需要2. 解決策3. 最初の改善4.砂糖を加える5. 理解不能6. 問題点7. オブジェク...

面接でよく聞かれる Vue 修飾子 13 個

目次1. 怠惰な2.トリム3.番号4.停止5. キャプチャ6.自分7.一度8.予防する9.ネイティブ...

CSSアニメーション属性キーフレームの詳細な説明

コラムを更新してからどれくらい経ったでしょうか?半年ですか?今年の後半は、まさに離陸、つまり文字通り...

JavaScriptはボタンをクリックして4桁のランダムな検証コードを生成します

この記事の例では、ボタンをクリックすることで4桁のランダムな検証コードを生成するjsの具体的なコード...

Winにmysqlをインストールする詳細な手順

この記事では、参考までにWinにmysqlをインストールする詳細な手順を紹介します。具体的な内容は次...

JS でモバイルのインタラクティブ エクスペリエンスを向上させる方法

目次1. 即時フィードバック1.1 ボタンからの即時フィードバック1.2 継続的なフィードバック1....

IDEA の Docker プラグインを介して Springboot プロジェクトを公開する方法の詳細なチュートリアル

1. Dockerfileを書く(1)プロジェクト名を右クリックして新しいテキストファイルを作成し、...

MySQL トランザクション分離レベルと MVCC の詳細な説明

目次トランザクション分離レベル同時トランザクション実行中に発生した問題SQL標準の4つの分離レベルM...