ホームページ  >  記事  >  データベース  >  単一テーブルのバックアップと復元のための mysql サンプル コードの詳細な紹介

単一テーブルのバックアップと復元のための mysql サンプル コードの詳細な紹介

黄舟
黄舟オリジナル
2017-03-18 13:55:351221ブラウズ

以下のエディターは、単一テーブルのバックアップと復元に関する簡単なディスカッション mysql を提供します。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。エディターをフォローして一緒に見てみましょう

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

1. perconaの公式xtrabackupのバイナリ版を解凍して使用できます。

2. xtrabackup を解凍し、接続を作成します

3. PATH 環境変数

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。一貫したバックアップ セットを取得するには、復元操作の前にログのロールフォワードとロールバックを実行する必要があります

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

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

5. dictmajor テーブルの回復ステータスを確認します

  create table dictmajor(
        column_value tinyint not null,
        column_mean varchar(32) not null,
        constraint pkdictmajor primary key (column_value));
-------- ------------------------ ------------------------ -------

前のセクションでは、テーブルのバックアップに xtrabackup を使用しました。アプリケーション シナリオでは、単一テーブルのデータ量が大きく、バックアップ中にテーブルへの書き込み操作をサポートする必要があります。つまり、現在のシナリオでは、単純なバックアップ ツールである mysqldump も要件を満たすことができます
mysqldump バックアップの一般的な手順を考えると、


1.

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.

select * from dictmajor;

alter table tempdb.dictmajor import tablespace;

以上が単一テーブルのバックアップと復元のための mysql サンプル コードの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。