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

黄舟
リリース: 2017-03-18 13:55:35
オリジナル
1221 人が閲覧しました

以下のエディターは、単一テーブルのバックアップと復元に関する簡単なディスカッション 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!