MySQLのバックアップツール

MySQLのバックアップツール

一般的にMySQLのバックアップツールを使用
•バックアップの物理的な欠点
が悪い、クロスプラットフォーム-
-長時間のバックアップ、冗長性、収納スペースの無駄
•mysqldumpをバックアップ欠点
-効率が低い、遅いバックアップと復元
-バックアップ、データの挿入および更新操作中断された
ツールxtraBackup
強力なオンラインホットバックアップツールは、•
バックアッププロセスは、本番環境に適したデータベーステーブル、ロックしていない-
Percona(改善されたMySQLのサブ専門機関が提供する-
分岐)
•は、2つの主要コンポーネントが含まれ
- xtrabackup:Cプログラムを、 InnoDBの/ XtraDBをサポート
- innobackupex:Perlスクリプトxtrabackupパッケージ化するには、MyISAMテーブルのサポート
ステップを:インストールパッケージxtraBackup
1)は、パッケージ記述情報を理解します

[root@dbsvr1 pub]# rpm -qpi percona-xtrabackup-24-2.4.6-2.el7.x86_64.rpm
Name        : percona-xtrabackup-24
Version     : 2.4.6
Release     : 2.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Databases
Size        : 32416340
License     : GPLv2
Signature   : DSA/SHA1, 2017年02月27日 星期一 20时28分17秒, Key ID 1c4cbdcdcd2efd2a
Source RPM  : percona-xtrabackup-24-2.4.6-2.el7.src.rpm
Build Date  : 2017年02月27日 星期一 20时27分21秒
Build Host  : vps-centos7-x64-01.ci.percona.com
Relocations : (not relocatable)
URL         : http://www.percona.com/software/percona-xtrabackup
Summary     : XtraBackup online backup for MySQL / InnoDB
Description :
Percona XtraBackup is OpenSource online (non-blockable) backup solution for InnoDB and XtraDB engines

2)依存関係がperlの-DBD-MySQLのperlのダイジェストインストール -MD5がlibevは
:使用RHEL 7は、yumを添付しています
`[@ dbsvr1ルートパブ] -Y#yumをインストールDBD-Perlの-Perlのダイジェスト-のMySQL MD5は、
rpmパッケージ-4.15-1.el6.rf.x86.rpm libevは見つけるためにインターネットを使用libevは
IVH libevは-4.15-1.el6.rf.x86_64.rpm`` - [ルート@のdbsvr1パブ]#rpmを

如果未安装这些依赖包,则直接安装percona-xtrabackup时会报错:
3)安装percona-xtrabackup

[ルートdbsvr1パブ@] #rpm -ivh percona-xtrabackup - * RPMの
WARNING:percona-xtrabackup-24-2.4.6-2.el7.x86_64.rpm:ヘッダV4 DSA / SHA1署名、キーID cd2efd2a:NOKEY
準備################################# ... [100%]
/インストール...アップグレードされている
1 :percona-xtrabackup-24-2.4.6-2.el7 ################################# [ 33% ]
2:Percona-xtrabackup-TEST-24-2.4.6 - ################################# [67 %]
。3:Percona-xtrabackup-2-24-のdebuginfo ################################# [100%]

4)确认安装的主要程序/脚本

[ルート@パブdbsvr1]#のRPM -ql Percona-xtrabackup-24-2.4.6-2.el7.x86_64
は/ usr / binに/ innobackupex
は/ usr / binに/ xbcloud
は/ usr / binに/ xbcloud_osenv
は/ usr / binに/ xbcrypt
/ USR / binに/ xbstream
は/ usr / binに/ xtrabackup
/usr/share/doc/percona-xtrabackup-24-2.4.6
/usr/share/doc/percona-xtrabackup-24-2.4.6/COPYING
を/ usr / share /男性/ MAN1 / innobackupex.1.gz
/usr/share/man/man1/xbcrypt.1.gz
/usr/share/man/man1/xbstream.1.gz
/usr/share/man/man1/xtrabackup.1。 GZ
`ステップ2:innobackupexフルバックアップ、増分バックアップ操作

--hostホスト名

3306 --port

--userユーザ名

--passwordパスワード

--databases =「ライブラリ名」

--databases = "ライブラリ1ライブラリー2"

--databases =「ライブラリ表」

バックアップファイルに名前を付けることなく、--no-タイムスタンプの日付は、バックアップディレクトリ名を行うには、データベース名のバックアップを使用して、サブディレクトリに格納されています

--no-timestmapは``バックアップディレクトリ名という名前の日付を使用しないで
フルバックアップを実行するために)1

デフォルトでは、バックアップファイルは、日付と名前のサブディレクトリに保存されます、

MySQLのmysqldにプロトコルに接続されたクライアントとしてinnobackupexツールは、/バックアップフォルダにデータをバックアップします

[root@dbsvr1 ~]# innobackupex --user=root --password=1234567 /backup/mysql –no-timestamp
170425 11:05:44 innobackupex: Starting the backup operation
IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex
           prints "completed OK!".
Unrecognized character \x01; marked by <-- HERE after <-- HERE near column 1 at - line 1374.
170425 11:05:45 Connecting to MySQL server host: localhost, user: root, password: set, port: not set, socket: not set
Using server version 5.7.17
innobackupex version 2.4.6 based on MySQL server 5.7.13 Linux (x86_64) (revision id: 8ec05b7)
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /var/lib/mysql
xtrabackup: open files limit requested 0, set to 1024
xtrabackup: using the following InnoDB configuration:
xtrabackup:   innodb_data_home_dir = .
xtrabackup:   innodb_data_file_path = ibdata1:12M:autoextend
xtrabackup:   innodb_log_group_home_dir = ./
xtrabackup:   innodb_log_files_in_group = 2
xtrabackup:   innodb_log_file_size = 50331648
InnoDB: Number of pools: 1
170425 11:05:45 >> log scanned up to (2543893)
xtrabackup: Generating a list of tablespaces
InnoDB: Allocated tablespace ID 2 for mysql/plugin, old maximum was 0
170425 11:05:45 [01] Copying ./ibdata1 to /backup/ibdata1
170425 11:05:45 [01]        ...done
170425 11:05:46 [01] Copying ./mysql/plugin.ibd to /backup/mysql/plugin.ibd
170425 11:05:46 [01]        ...done
170425 11:05:46 [01] Copying ./mysql/servers.ibd to /backup/mysql/servers.ibd
170425 11:05:46 [01]        ...done
170425 11:05:46 [01] Copying ./mysql/help_topic.ibd to /backup/mysql/help_topic.ibd
170425 11:05:46 [01]        ...done
170425 11:05:46 >> log scanned up to (2543893)
.. ..
170425 11:06:00 [01] Copying ./sys/x@0024waits_global_by_latency.frm to /backup/sys/x@0024waits_global_by_latency.frm
170425 11:06:00 [01]        ...done
170425 11:06:00 [01] Copying ./sys/session_ssl_status.frm to /backup/sys/session_ssl_status.frm
170425 11:06:00 [01]        ...done
170425 11:06:00 [01] Copying ./db1/db.opt to /backup/db1/db.opt
170425 11:06:00 [01]        ...done
170425 11:06:00 [01] Copying ./db1/tb1.frm to /backup/db1/tb1.frm
170425 11:06:00 [01]        ...done
170425 11:06:00 Finished backing up non-InnoDB tables and files
170425 11:06:00 Executing FLUSH NO_WRITE_TO_BINLOG ENGINE LOGS...
xtrabackup: The latest check point (for incremental): '2543884'
xtrabackup: Stopping log copying thread.
.170425 11:06:00 >> log scanned up to (2543893)
170425 11:06:00 Executing UNLOCK TABLES
170425 11:06:00 All tables unlocked
170425 11:06:00 [00] Copying ib_buffer_pool to /backup/ib_buffer_pool
170425 11:06:00 [00]        ...done
170425 11:06:00 Backup created in directory '/backup/'
170425 11:06:00 [00] Writing backup-my.cnf
170425 11:06:00 [00]        ...done
170425 11:06:00 [00] Writing xtrabackup_info
170425 11:06:00 [00]        ...done
xtrabackup: Transaction log of lsn (2543884) to (2543893) was copied.
170425 11:06:01 completed OK

優れたバックアップファイルのデータを確認してください

[root@dbsvr1 ~]#ls /backup/
backup-my.cnf  ib_buffer_pool  mysql      sys                   xtrabackup_info
db1  ibdata1      performance_schema  xtrabackup_checkpoints  xtrabackup_logfile

2)前のステップに基づいて(フルバックアップ)増分バックアップを行います

何か新しいことや、DB1のmytbライブラリ内のテーブルを作成するように変更されたデータベーステーブルの操作を行うには無料:

mysql> USE db1;
Database changed
mysql> CREATE TABLE mytb(id int(4), name varchar(24));
Query OK, 0 rows affected (0.38 sec)
mysql> INSERT INTO tb1 VALUES
    -> (1,'bon'),
    -> (2,'bo'),
Query OK, 2 rows affected (0.12 sec)
Records: 2  Duplicates: 0  Warnings: 0
mysql> SELECT * FROM tb1;
+------+------+
| id   | name |
+------+------+
|    1 | bob  |
|    2 | bo   |
+------+------+
2 rows in set (0.00 sec)

1回/バックアップは/ incr01 /に保存し、増分バックアップを行うには、土台のフルバックアップでは、増分バックアップ指定基準ベースディレクトリ(フルバックアップディレクトリ)を保存する前には、オプション--incremental-BASEDIRを使用する必要があります。以下の関連操作

[root@dbsvr1 ~]# innobackupex  --user=root --password=12345678 --incremental /incr01 --incremental-basedir=/backup/ --no-timestamp
170425 11:30:14 innobackupex: Starting the backup operation
IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex
           prints "completed OK!".
Unrecognized character \x01; marked by <-- HERE after <-- HERE near column 1 at - line 1374.
170425 11:30:14 Connecting to MySQL server host: localhost, user: root, password: set, port: not set, socket: not set
Using server version 5.7.17
innobackupex version 2.4.6 based on MySQL server 5.7.13 Linux (x86_64) (revision id: 8ec05b7)
incremental backup from 2543884 is enabled.
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /var/lib/mysql
xtrabackup: open files limit requested 0, set to 1024
xtrabackup: using the following InnoDB configuration:
xtrabackup:   innodb_data_home_dir = .
xtrabackup:   innodb_data_file_path = ibdata1:12M:autoextend
xtrabackup:   innodb_log_group_home_dir = ./
xtrabackup:   innodb_log_files_in_group = 2
xtrabackup:   innodb_log_file_size = 50331648
InnoDB: Number of pools: 1
170425 11:30:14 >> log scanned up to (2549933)
xtrabackup: Generating a list of tablespaces
InnoDB: Allocated tablespace ID 2 for mysql/plugin, old maximum was 0
xtrabackup: using the full scan for incremental backup
170425 11:30:15 [01] Copying ./ibdata1 to /incr01/ibdata1.delta
170425 11:30:15 [01]        ...done
170425 11:30:15 >> log scanned up to (2549933)
170425 11:30:15 [01] Copying ./mysql/plugin.ibd to /incr01/mysql/plugin.ibd.delta
170425 11:30:15 [01]        ...done
... ...
170425 11:30:35 Executing UNLOCK TABLES
170425 11:30:35 All tables unlocked
170425 11:30:35 [00] Copying ib_buffer_pool to /incr01/ib_buffer_pool
170425 11:30:35 [00]        ...done
170425 11:30:35 Backup created in directory '/incr01/'
170425 11:30:35 [00] Writing backup-my.cnf
170425 11:30:35 [00]        ...done
170425 11:30:35 [00] Writing xtrabackup_info
170425 11:30:35 [00]        ...done
xtrabackup: Transaction log of lsn (2549924) to (2549933) was copied.
170425 11:30:35 completed OK!

確認されている優れたバックアップ・データ・ファイル:
[ルート@ dbsvr1〜]#LS / incr01 /
バックアップib_buffer_poolのmy.cnf ibdata1.meta performance_schema xtrabackup_checkpoints xtrabackup_logfile
MySQLのSYS ibdata1.delta DB1を
フルバックアップを対比、増分バックアップのサイズ:


[root@dbsvr1 ~]# du -sh /backup/ /incr01/
142M    /backup/                              //完整备份的大小
3.5M    /incr01/    
```                          //增量备份的大小
步骤三:恢复数据

通过XtraBackup工具备份的数据库目录,若要恢复到另一个MySQL服务器,需要先做一个“--apply-log --redo-only ”的准备操作。

1)准备恢复“完整备份”

完成准备以后,最终/backup可用来重建MySQL服务器。这种情况下,需要先做一个“--apply-log --redo-only ”的准备操作,以确保数据一致性:

[ルート@ dbsvr1〜] #innobackupex --user =ルート--password = 12345678 --apply---REDOログ・専用/バックアップ/
170425 11時42分19秒innobackupex:適用-ログ操作を開始する
重要:ことを確認してください適用ログの実行が正常に完了します。
成功した実行適用ログinnobackupexの終わりに
プリント「OK完成!」。
MySQLサーバ5.7.13のLinux(x86_64版)に基づいてinnobackupexバージョン2.4.6(リビジョンID:8ec05b7)
xtrabackup:/バックアップ/にcd
xtrabackup:このターゲットは、すでに用意しているようです。
InnoDBは:プールの数:1
xtrabackup:予告:xtrabackup_logfileはすでに'--prepare'に使用されました。
xtrabackup:回復のために、以下のInnoDBの設定を使用して:
xtrabackup:innodb_data_home_dirを=。
xtrabackup:innodb_data_file_path = ibdata1と:12M:自動拡張
xtrabackup:innodb_log_group_home_dir =。
xtrabackup:innodb_log_files_in_group = 2
xtrabackup:innodb_log_file_size = 50331648
xtrabackup:回復のために、以下のInnoDBの設定を使用して:
xtrabackup:innodb_data_home_dirを=。
xtrabackup:innodb_data_file_path = ibdata1と:12M:自動拡張
xtrabackup:innodb_log_group_home_dir =。
xtrabackup:innodb_log_files_in_group = 2
xtrabackup:innodb_log_file_size = 50331648
xtrabackup:回復のための出発InnoDBのインスタンス。
xtrabackup:(--useメモリパラメータで設定)バッファ・プールの104857600バイトを使用して
InnoDBは:パンチ穴のサポートが利用可能
InnoDBテーブル:ミューテックスとrw_locksはGCC原子組み込みコマンドの使用
はInnoDBを:イベントミューテックスを使用し
InnoDBは:GCC組み込み__atomic_thread_fenceは()メモリバリアのために使用されている
のInnoDB:圧縮テーブルはzlibの1.2.7を使用
InnoDBテーブルを:プールの数:1つ
のInnoDB:CPUのCRC32命令を使用していない
のInnoDBを:初期バッファプール、合計サイズ= 100M、インスタンス= 1、チャンクサイズ= 100M
InnoDBは:バッファプールの初期化完了
のInnoDB:page_cleanerコーディネータ優先:-20
InnoDBは:最高のサポートされるファイル形式は、バラクーダです。
xtrabackup:= 1つのinnodb_fast_shutdownとシャットダウン開始
シャットダウン...開始:InnoDBは
InnoDBテーブル:シャットダウンが完了します。シーケンス番号2544177ログ
プールの数:1のInnoDBを
170425午前11時42分20秒はOK完成しました!

准备恢复“增量备份”

[ルート@ dbsvr1〜] #innobackupex --user =ルート--password = 12345678 --apply---REDOログ・専用/バックアップ/ = / incr01 --incremental-dirの
170425 11時42分55秒innobackupex:適用開始-log操作
重要:適用-ログ実行が正常に完了したことを確認してください。
成功した実行適用ログinnobackupexの終わりに
プリント「OK完成!」。
:MySQLサーバ5.7.13のLinux(x86_64版)(8ec05b7リビジョンID)に基づいてinnobackupexバージョン2.4.6
2543884からの増分バックアップが有効になっています。
xtrabackup:/バックアップにcd /
xtrabackup:このターゲットはすでに--applyログのみを用いて調製されているようです。
InnoDBは:プールの数:1
xtrabackup:xtrabackup_logfile検出:サイズ= 8388608、start_lsn =(2549924)
xtrabackup:回復のために、以下のInnoDBの設定を使用して:
xtrabackup:innodb_data_home_dirを=。
xtrabackup:innodb_data_file_path = ibdata1と:12M:自動拡張
xtrabackup:innodb_log_group_home_dir = / incr01 /
xtrabackup:innodb_log_files_in_group = 1
xtrabackup:innodb_log_file_size = 8388608
xtrabackup:表領域のリストを生成する
のInnoDB:表番号2のMySQL /プラグインのために割り当てられた、古い最大値が0であった
xtrabackup。 /incr01//ibdata1.deltaのページサイズは16384バイトです
./ibdata1 ...に/incr01//ibdata1.delta適用
... ...
170425 11時43分09秒[01]コピー/ incr01 / performance_schema / global_status .FRMは./performance_schema/global_status.frmする
170425 11時43分09秒[01] ...完了を
170425 11時43分09秒[01] ./performance_schema/session_status.frmする/incr01/performance_schema/session_status.frmコピー
170425 11時43分09秒[01] ...行わ
170425 11時43分09秒[00]コピー/ incr01 // xtrabackup_info ./xtrabackup_infoへ
11時43分09秒は、[00]は...行わ170425を
170425 11時43分10秒をOK完成!

2)关闭mysql服务,并将/var/lib/mysql/下的文件删除,假设数据被删除。

[root@dbsvr1 ~]#systemctl  stop  mysqld
[root@dbsvr1 ~]#rm -rf /var/lib/mysql
3)恢复“完整备份+增量备份”

完成准备以后,最终仍然是/backup用来重建MySQL服务器,但这种情况下需提前合并相关增量备份的数据

[ルート@ dbsvr1〜]#innobackupex --user =ルート--password = 12345678 --copy-バック/バックアップ/
... ...
170425 11時51分39秒[01]コピー./performance_schema/global_status.frmへ/var/lib/mysql/performance_schema/glo.frm
170425 11時51分39秒[01] ...行わ
170425を11時51分39秒[01] ./performance_schema/session_status.frmをコピーするには/ var / libに/ mysqlの/ performance_schema / seus.frm
11時51分39秒[01] 170425 ...行って
コピー11時51分39秒[01] 170425を./ib_buffer_poolには/ var / libに/ mysqlの/ ib_buffer_pool
170425 11時51分39秒[01]。 ..done
170425 11時51分39秒[01] ./ibtmp1をコピーするには/ var / libに/ mysqlの/ ibtmp1
170425 11時51分39秒[01] ...行わ
170425 11時51分39秒[01]のコピーを./ xtrabackup_infoへの/ var / libに/ mysqlの/ xtrabackup_info
170425 11時51分39秒[01] ...完了
170425 11時51分39秒はOK完成しました!

4)修改/var/lib/mysql/下文件属主与属组,查看数据:

恢复后,/var/lib/mysql下文件属组与属主皆为root,需要更改为mysql

ルートの@ dbsvr1〜] #chown -R mysqlの:mysqlのは/ var / libに/ mysqlの
[ルート@ dbsvr1〜] mysqld.serviceを開始#systemctl
[ルート@ dbsvr1〜] #mysql -uroot -p12345678 -e「DB1から*を選択します。 TB1"
mysqlの:[警告]コマンドラインインターフェイス上でパスワードを使用すると、安全でないことができます。
+ ------ + ------ +
| ID | 名前|
+ ------ + ------ +
| 1 | ボブ|
| 2 | BO |
+ ------ + ------ +

おすすめ

転載: blog.51cto.com/14354846/2405722