単一テーブルの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 印刷コントロールを使用してブラウザ互換の印刷を実現する方法

推薦する

事例を通してLinux NFSの仕組みを詳細に分析

前回の記事に引き続き、web02 サーバーを作成し、web01 サーバーと web02 サーバーの ...

MySQLテーブルのテーブル構造を素早く変更する方法

MySQL テーブルのテーブル構造をすばやく変更する - 「MySQL 管理」から抜粋 ALTER ...

Vue ベースの Excel 解析とエクスポートの詳細な説明

目次序文基本的な紹介コードの実装基本構造アップロード分析Excel にエクスポート基本構造Excel...

vue3+vite プロジェクトで svg を使用する方法の詳細なグラフィック説明

今日、vue3+viteプロジェクトの実践で、svgを使用する場合、以前の記述方法が使用できないこと...

MySQL ストアド プロシージャと共通関数のコード分析

mysql ストアド プロシージャの概念:特定のタスク (クエリと更新) を実行できる、データベース...

VS2022 リモート デバッグ ツールの使い方

WeChat 関連サービスをデバッグする場合など、職場のサーバー環境でリモートデバッグを行う必要があ...

MySqlはページクエリ機能を実装します

まず、ページ分割クエリを使用する理由を明確にする必要があります。データが膨大なため、すべてのデータを...

Ubuntu 18.04 は mysql 5.7.23 をインストールします

以前、Ubuntu 16.04 に MySQL をスムーズにインストールしました。今回、Ubuntu...

ZabbixはPSK共有キーを使用してサーバーとエージェント間の通信を暗号化します。

Zabbix バージョン 3.0 以降、Zabbix サーバー、Zabbix プロキシ、Zabbi...

JS を使用した簡単な雪効果の例の詳細な説明

目次序文主な実装コードHTMLコードJSコード序文南の友達の多くは、雪をほとんど見たことがない、ある...

MySQLクエリキャッシュに関するヒント

目次序文QueryCache の概要クエリキャッシュ構成QueryCache の使用queryCac...

React Nativeの起動プロセスの詳細分析

はじめに: この記事ではreact-native-cliで作成したサンプル プロジェクト (Andr...

MySQLデータベースはsysbenchに基づくOLTPベンチマークテストを実装します

Sysbench は、MySQL データベース ストレージ エンジン InnoDB のディスク I/...

Centos7 に Nginx 統合 Lua サンプル コードをインストール

序文私が使用しているパソコンはMacで、OSはmacOS Mojaveです。コンピュータに仮想マシン...

Mac インストール mysqlclient プロセス分析

仮想環境で pip 経由でインストールしてみてください: pip で mysqlclient をイン...