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

推薦する

Redux Toolkit で Redux を簡素化する方法

目次Redux Toolkitが解決する問題何が含まれていますか? Redux Toolkit AP...

Google Chromeの自動入力問題に対する完璧な解決策

Google Chrome では、ログインに成功すると、パスワードを記憶するかどうかを尋ねるメッセー...

MySQL の NULL 値に関する体験談と分析チュートリアルシリーズ

目次1. テストデータ2. ヌル値による不便3. スペース、空の値、null をどのように判断すれば...

Linuxでpyファイルを直接実行する方法

1. まずファイルを作成します(ファイルを配置するディレクトリにcdします) myTest.py を...

MySQL パーティション テーブルに関するパフォーマンス バグ

目次2. pt-pmapを使用したスタック分析3. このコラムのボトルネックポイントの分析4. パー...

CSSのborder-radiusプロパティを使用して円弧を設定します

現象: divを一定の振幅で円、楕円などに変更する方法: CSSのborder-radiusプロパテ...

いくつかのMySQL更新操作のケース分析

目次ケーススタディアカウント残高を更新する直接更新楽観的ロック方式ロックフリーソリューションキューイ...

Dockerのオンラインおよびオフラインインストールと一般的なコマンド操作

1. テスト環境名前バージョンセント7.6ドッカー18.09.06 2. オンラインインストールここ...

Vue3とTypeScriptを組み合わせたプロジェクト開発の実践の概要

目次概要1. コンポジションAPI 1. ref と reactive の違いは何ですか? 2. 周...

フロントエンドが習得すべき、複数列の等高レイアウトを実現するための CSS テクニック

1. はじめにページを作成しているときに、複数列のレイアウトに遭遇することがあります。各列の内容が異...

MySQLスケーラブル設計の基本原則

目次序文1. スケーラビリティとは何ですか?スケールアウトの利点:スケールアウトのデメリット:スケー...

Windows 7 の mysql6.x で中国語の文字化けが発生する問題に対する完璧な解決策

1. コマンドラインでMySQLサービスを停止します: net stop mysql stop my...

jsプロキシの原理の詳細な説明

目次プロキシモードとは何ですか?実例を紹介例を使ってプロキシモデルの定義を理解するプロキシとはget...

MySQLはbinlogを通じてデータを復元する

目次MySQL ログファイルバイナリログBinlogログがオンになっていますログ記録を有効にする方法...