単一テーブルのMySQLバックアップとリストアに関する簡単な説明

単一テーブルのMySQLバックアップとリストアに関する簡単な説明

A. MySQLバックアップツールxtrabackupのインストール

1. Percona 公式 xtrabackup バイナリ バージョン。バイナリ バージョンは解凍後に使用できます。

2. xtrabackupを解凍して接続を作成する

tar -xzvf percona-xtrabackup-2.3.4-Linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/percona-xtrabackup-2.3.4 /usr/local/xtrabackup

3. PATH環境変数を設定する
エクスポート PATH=/usr/local/xtrabackup/bin/:$PATH

B. MySQLデータベースにユーザーバックアップユーザーと認証を作成する

1. ユーザーを作成する

'backup123' で識別されるユーザー backuper@'localhost' を作成します。
'backup123' で識別されるユーザー backuper@'127.0.0.1' を作成します。

2. 認可

*.* の再ロード、テーブルのロック、レプリケーション クライアント、プロセス、スーパーを 'backuper'@'localhost' に許可します。
percona_schema.xtrabackup_history に対する create、insert、select 権限を 'backuper'@'localhost' に付与します。
*.* の再ロード、テーブルのロック、レプリケーション クライアント、プロセス、スーパーを 'backuper'@'127.0.0.1' に許可します。
percona_schema.xtrabackup_history に対する create、insert、select 権限を 'backuper'@'127.0.0.1' に付与します。

C. バックアップ前の確認。この手順の主な目的は、後で復元操作を実行するときに復元が有効かどうかを確認することです。(本番環境ではこのような手順はありません。)

1. tempdb.dict__major から * を選択します。
dict__major から * を選択します。

+--------------+-----------------+
| 列値 | 列平均 |
+--------------+-----------------+
| 1 | 中国語と中国文学 |
| 2 | 保険数理学 |
| 3 | バイオ医薬品 |
| 4 | 材料化学 |
| 5 | ビジネス英語 |
| 6 | 考古学 |
| 7 | 外交 |
| 8 | ツアーガイド |
+--------------+-----------------+

D. tempdb.dict__majorテーブルをバックアップする

1. バックアップコマンド

innobackupex --host=127.0.0.1 --user=backuper --password=backup123 --port=3306 --include='tempdb.dict__major' /tmp/tempdb

2. バックアップが完了すると、バックアップ ディレクトリ (/tmp/tempdb) の下に、現在の時刻で名前が付けられたディレクトリが生成され、バックアップ ファイルが格納されます。

ツリー /tmp/tempdb/
/tmp/tempdb/
└── 2016-09-10_18-25-16
├── バックアップmy.cnf
├── ibdata1
├── tempdb
│ ├── dict__major.frm
│ └── dict__major.ibd
├── xtrabackup_binlog_info
├── エクストラバックアップチェックポイント
├── エクストラバックアップ情報
└── xtrabackup_logfile

E. バックアップが完了したら、tempdb.dict__major テーブルを削除できます (復元時に使用するテーブル定義のコピーを保存する必要があることに注意してください)

mysql>tempdb.dict__major テーブルを削除します。

F. 一貫性のあるバックアップ セットを取得するには、復元操作の前にログをロールフォワードおよびロールバックする必要があります。

1. ログのロールフォワードとロールバック

innobackupex --apply-log --export /tmp/tempdb/2016-09-10_18-25-16/

2. ロールフォワードとロールバック前との比較

ツリー /tmp/tempdb/
/tmp/tempdb/
└── 2016-09-10_18-25-16
├── バックアップmy.cnf
├── ibdata1
├── ib_logfile0
├── ib_logfile1
├── tempdb
│ ├── dict__major.cfg
│ ├── dict__major.exp
│ ├── dict__major.frm
│ └── dict__major.ibd
├── xtrabackup_binlog_info
├── xtrabackup_binlog_pos_innodb
├── エクストラバックアップチェックポイント
├── エクストラバックアップ情報
└── xtrabackup_logfile

G. tempdb.dict__majorテーブルを復元する

1. tempdb.dict__majorテーブルを作成する

テーブル dict__major( を作成
column_value tinyint が null ではない、
column_mean varchar(32) が null ではない、
制約 pk__dict__major 主キー (column_value));

2. tempdb.dict__majorテーブルスペースファイルを削除します。

テーブル tempdb.dict__major を変更し、テーブルスペースを破棄します。

3. バックアップからテーブルスペースファイルをtempdb.dict__majorテーブルスペースが配置される場所にコピーします。

cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dict__major.ibd /usr/local/mysql/data/tempdb/
cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dict__major.exp /usr/local/mysql/data/tempdb/
cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dict__major.cfg /usr/local/mysql/data/tempdb/
chown -R mysql:mysql /usr/local/mysql/data/tempdb/*

4. テーブルスペースファイルをインポートする

テーブル tempdb.dict__major を変更し、テーブルスペースをインポートします。

5. dict__majorテーブルのリカバリステータスを確認する

dict__major から * を選択します。
+--------------+-----------------+
| 列値 | 列平均 |
+--------------+-----------------+
| 1 | 中国語と中国文学 |
| 2 | 保険数理学 |
| 3 | バイオ医薬品 |
| 4 | 材料化学 |
| 5 | ビジネス英語 |
| 6 | 考古学 |
| 7 | 外交 |
| 8 | ツアーガイド |
+--------------+-----------------+

-----------------------------------------------------------------

前のセクションでは、xtrabackupを使用してテーブルをバックアップしました。その適用シナリオは、単一のテーブルのデータ量が大きく、バックアッププロセス中にテーブルの書き込み操作をサポートする必要があるというものです。つまり、現在のシナリオでは、単純なmysqldumpです。

バックアップ ツールも要件を満たすことができます。


mysqldump バックアップの一般的な手順は次のとおりです。

A: バックアップユーザーを作成する

1.
'dumper123' で識別されるユーザー dumper@'127.0.0.1' を作成します。
dumper@'127.0.0.1' に *.* に対する選択権限を許可します。
dumper@'127.0.0.1' に *.* の show view 権限を許可します。
dumper@'127.0.0.1' に *.* のロック テーブルを許可します。
dumper@'127.0.0.1' に *.* のトリガーを許可します。

B: tempdb.dict__majorテーブルをバックアップする

1.
mysqldump --host=127.0.0.1 --port=3306 --user=dumper --password=dumper123 --quick tempdb dict__major >/tmp/tempdb.dict__major.sql

C: バックアップしたテーブルを削除する

1.
mysql>tempdb.dict__major テーブルを削除します。

D: tempdb.dict__majorテーブルを復元する

1.
mysql -uroot -pxxxxx -h127.0.0.1 -p3306 tempdb </tmp/tempdb.dict__major.sql

E: 復元の有効性を確認する

1.
dict__major から * を選択します。

+--------------+-----------------+
| 列値 | 列平均 |
+--------------+-----------------+
| 1 | 中国語と中国文学 |
| 2 | 保険数理学 |
| 3 | バイオ医薬品 |
| 4 | 材料化学 |
| 5 | ビジネス英語 |
| 6 | 考古学 |
| 7 | 外交 |
| 8 | ツアーガイド |
+--------------+-----------------+

上記の記事では、MySQL の単一テーブルのバックアップとリストアについて簡単に説明しました。私が皆さんに伝えたいのはこれだけです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • バックアップと復元のための MySQL インポートおよびエクスポート コマンドの使用
  • シンプルなMySQLバックアップと復元方法の共有
  • MySQLデータのバックアップと復元の2つの方法を紹介
  • MySQLはコマンドを使用してデータベースをバックアップおよび復元します
  • PHPはMySQLデータベースのバックアップと復元のクラスインスタンスを実装します
  • MySQL ノート: データのバックアップと復元の詳細な説明
  • MySQL独自のコマンドを使用してデータベースのバックアップと復元を実行する方法
  • MySQL データベースのバックアップと復元によく使用されるコマンドの概要

<<:  Linux/CentOS システムでネットワーク時間を同期する 2 つの方法の詳細な説明

>>:  Vue で lodop 印刷コントロールを使用してブラウザ互換の印刷を実現する方法

推薦する

Vueは水平の斜めの棒グラフを実装します

この記事では、水平傾斜棒グラフを実装するためのVueの具体的なコードを参考までに共有します。具体的な...

ウェブページの画像最適化ツールと使用方法のヒントの共有

ウェブページの基本要素として、画像はページの読み込み速度に影響を与える重要な要素の 1 つです。画像...

MySQL sql_mode の使用に関する詳細な説明

目次序文sql_mode の説明最も重要なオプションすべてのオプション要約する序文前回の記事「MyS...

v-model 双方向バインディングデータを実装する vue カスタム コンポーネントのサンプル コード

プロジェクトでは、プロジェクトが呼び出すカスタム パブリック コンポーネントに遭遇します。通常、pr...

Dockerコンテナの中国語言語パックの設定の問題を解決する

Dockerでdocker search centosを使用する場合docker pull dock...

どのような種類の MYSQL 接続クエリを知っていますか?

序文クエリ情報が複数のテーブルから取得される場合、クエリのためにこれらのテーブルを結合する必要があり...

Docker が占有するディスク領域をクリーンアップする方法

Docker は多くのスペースを占有します。コンテナを実行したり、イメージを取得したり、アプリケー...

ウェブデザイン経験

<br />著者はかつてWebデザインの初心者でしたが、継続的な探求と実践を通じて、今で...

MySQLサービスの自動停止の解決策

この記事では主に、MySQL サービスの自動停止の解決策を紹介し、参考と学習のために共有します。一緒...

私の CSS フレームワーク - base.css (ブラウザのデフォルト スタイルをリセット)

コードをコピーコードは次のとおりです。 @文字セット "utf-8"; /* @...

SCSS スタイルのコードを 50% 削減する 14 の実践的な経験

序文Sass は CSS3 言語の拡張機能です。Sass を使用すると、より良いスタイルシートをより...

HTMLチュートリアル、簡単に学べるHTML言語

1. <body background=画像ファイル名 bgcolor=color text=...

ES6 配列のコピーおよびフィルメソッド copyWithin() および fill() の具体的な使用法

目次バッチコピー copyWithin()配列を埋めるメソッド fill()指数の計算方法については...

MySQL ストアド プロシージャの in、out、inout パラメータの例と概要

ストアドプロシージャ1. ストアドプロシージャを作成し、グローバル変数を表示する mysql>...