ホームページ >データベース >mysql チュートリアル >単一テーブルのバックアップと復元のための 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
を設定します。B. mysql データベースにユーザーのバックアップ ユーザーと認証を作成します。 1 . ユーザーの作成export PATH=/usr/local/xtrabackup/bin/:$PATH
2. 認証
C. このステップの主な目的は、後で復元操作を実行するときに復元が有効かどうかを確認することです。 ,
1.
create user backuper@'localhost' ident if ied by 'backup123'; create user backuper@'127.0.0.1' identified by 'backup123';
D. tempdb.dictmajorテーブルをバックアップします
1.
バックアップコマンドgrant reload,lock tables,replication client,process,
super
on *.* to 'backuper'@'localhost';
grant create,insert,select on percona_schema.xtrabackup_history to 'backuper'@'localhost';
grant reload,lock tables,replication client,process,super on *.* to 'backuper'@'127.0.0.1';
grant create,insert,select on percona_schema.xtrabackup_history to 'backuper'@'127.0.0.1';
2.バックアップ ディレクトリ (/tmp/tempdb) 現在時刻の名前のディレクトリを生成し、バックアップ ファイルを保存します
select * from tempdb.dictmajor;
select * from dictmajor;
+--------------+-----------------+
| column_value | column_mean |
+--------------+-----------------+
| 1 | 汉语言文学 |
| 2 | 精算 |
| 3 | 生物制药 |
| 4 | 材料化学 |
| 5 | 商务英语 |
| 6 | 考古 |
| 7 | 外交 |
| 8 | 导游 |
+--------------+-----------------+
innobackupex --host=127.0.0.1 --user=backuper --password=backup123 --port=3306 --include='tempdb.dictmajor' /tmp/tempdb
定義、復元中に使用されます)
tree /tmp/tempdb/ /tmp/tempdb/ └── 2016-09-10_18-25-16 ├── backup-my.cnf ├── ibdata1 ├── tempdb │ ├── dictmajor.frm │ └── dictmajor.ibd ├── xtrabackup_binlog_info ├── xtrabackup_checkpoints ├── xtrabackup_info └── xtrabackup_logfile
F。一貫したバックアップ セットを取得するには、復元操作の前にログのロールフォワードとロールバックを実行する必要があります
mysql>drop table tempdb.dictmajor;
2. db.dictmajor 前のロールフォワードとロールバックとの比較テーブル
innobackupex --apply-log --export /tmp/tempdb/2016-09-10_18-25-16/2。バックアップ内のテーブル スペース ファイルを tempdb.dictmajor テーブル スペースのある場所に移動します テーブル スペース ファイル
tree /tmp/tempdb/ /tmp/tempdb/ └── 2016-09-10_18-25-16 ├── backup-my.cnf ├── ibdata1 ├── ib_logfile0 ├── ib_logfile1 ├── tempdb │ ├── dictmajor.cfg │ ├── dictmajor.exp │ ├── dictmajor.frm │ └── dictmajor.ibd ├── xtrabackup_binlog_info ├── xtrabackup_binlog_pos_innodb ├── xtrabackup_checkpoints ├── xtrabackup_info └── xtrabackup_logfile
create table dictmajor(
column_value tinyint not null,
column_mean varchar(32) not null,
constraint pkdictmajor primary key (column_value));
-------- ------------------------ ------------------------ -------
前のセクションでは、テーブルのバックアップに xtrabackup を使用しました。アプリケーション シナリオでは、単一テーブルのデータ量が大きく、バックアップ中にテーブルへの書き込み操作をサポートする必要があります。つまり、現在のシナリオでは、単純なバックアップ ツールである mysqldump も要件を満たすことができます
mysqldump バックアップの一般的な手順を考えると、
1.alter table tempdb.dictmajor discard tablespace;
C: バックアップしたテーブルを削除します
1.
cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.ibd /usr/local/mysql/data/tempdb/ cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.exp /usr/local/mysql/data/tempdb/ cp /tmp/tempdb/2016-09-10_18-25-16/tempdb/dictmajor.cfg /usr/local/mysql/data/tempdb/ chown -R mysql:mysql /usr/local/mysql/data/tempdb/*
D: tempdb.dictmajor テーブルを復元します
1.
りー
E: 復元の有効性を確認します
1.
alter table tempdb.dictmajor import tablespace;
以上が単一テーブルのバックアップと復元のための mysql サンプル コードの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。