xtrabackupを使用したバックアップ/増分バックアップMySQLデータベース

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/Powerful_Fy/article/details/102749992

二つの共通Percona-xtrabackupツールコマンド:

1.xtrabackupコマンド:唯一のInnoDBデータベースストレージエンジンとXtraDBのノンブロッキングバックアップ
2.innobackupexコマンド:レイヤxtrabackupによってカプセル化のPerl、読み取りロックテーブルを添加することによって達成バックアップのMyISAM。

Percona-xtrabackupインストールツール

Percona YUM倉庫の拡張をインストールします。

[root@linux ~]# yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

リポジトリを起動します。

[root@linux ~]# percona-release enable-only tools release

xtrabackupのバージョン2.4をインストールします。

yum -y install percona-xtrabackup-24

データベースのユーザーバックアップを作成します。

mysql> grant reload,lock tables,replication client,process,super on *.* to userbak@'localhost' identified by 'user123';

リロード、ロックテーブル、複製クライアント、プロセス、スーパー:#ユーザーuserbak、パスワードus​​er123、委任された権限を作成します。

最新の情報に更新権限:

mysql> flush privileges;

バックアップファイル格納ディレクトリを作成します。

[root@centos02 ~]# mkdir /data/mysqlbak

フル・バックアップとMySQLデータベースを復元

バックアップ:

[root@centos02 ~]# innobackupex --defaults-file=/etc/my.cnf --user=userbak --password=user123 /data/mysqlbak -S /tmp/mysql.sock

localhostにユーザ定義の承認userbakを作成するので、ユーザーは127.0.0.1または実際のIPアドレスをホストするために許可されている場合は、ソケットファイルを指定するには、-Sパラメータを使用する必要があり、ホストを指定するには、-hパラメータを使用するホストとして#

バックアップされたファイルを表示します。

[root@centos02 ~]# ls /data/mysqlbak/2019-10-26_14-42-29/
backup-my.cnf  ibdata1  mysql  performance_schema  test  xtrabackup_checkpoints  xtrabackup_info  xtrabackup_logfile

バックアップファイルが自動的にバックアップ時間に従って命名されている格納するディレクトリ#

バックアップディレクトリのサイズでMySQLディレクトリの比較:

[root@centos02 ~]# du -sh /data/mysql
111M	/data/mysql
[root@centos02 ~]# du -sh /data/mysqlbak/
15M	/data/mysqlbak/

#それはstrabackupバックアップツールで見ることができるディスクスペースを節約することです

回復:

mysqlのサービスを停止します。

[root@centos02 ~]# service mysql stop

ファイルDATADIRディレクトリを削除します。

[root@centos02 ~]# rm -rf /data/mysql/*

注意:
データのバックアップは、トランザクションが提出されていないか、または提出されましたが、まだデータファイル取引に同期していない含まれていてもよいので。したがって、この時点では、データファイルは、一貫性のない状態のままです。「準備」の主な役割は、トランザクションのロールバックコミットされていないトランザクションの同期化により、一貫性のある状態で使用できるデータファイルの使用であり、データファイルに提出されました。

一貫性を維持するために、データファイル:

[root@centos02 ~]# innobackupex --apply-log /data/mysqlbak/2019-10-26_14-42-29/

サーバーに十分なメモリよりもアイドル状態である場合には、この製造方法の実現に#ステップは、あなたがその速度、デフォルトの100Mので、メモリを指定するには、-user-memoryパラメータを使用することができます

回復:

[root@centos02 ~]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/mysqlbak/2019-10-26_14-42-29/

変更されたファイルの回復の所有者とグループ:

[root@centos02 ~]# chown -R mysql:mysql /data/mysql

そして、あなたは、MySQLサービスを開始することができます#

増分バックアップとMySQLデータベースを復元

注意:増分バックアップを持っている必要があります前提がフルバックアップであります

最初の増分バックアップ:

[root@centos02 ~]# ls /data/mysqlbak/
2019-10-26_14-42-29

[root@centos02 ~]# innobackupex --user=userbak --password=user123 --incremental /data/mysqlbak/ --incremental-basedir=/data/mysqlbak/2019-10-26_14-42-29  -S /tmp/mysql.sock

説明:
増分バックアップは、使用する必要があります- -incremental指定された増分バックアップ・ストレージ・パスを
使用して- -incremental-basedirには、パスの完全バックアップを指定して、完全な量に基づいて、増分バックアップを行うこと

第二に、増分バックアップ:

[root@centos02 ~]# ls /data/mysqlbak/
2019-10-26_14-42-29  2019-10-26_16-31-37

[root@centos02 ~]# innobackupex --user=userbak --password=user123 --incremental /data/mysqlbak/ --incremental-basedir=/data/mysqlbak/2019-10-26_16-31-37  -S /tmp/mysql.sock

説明:
この- -incremental-basedirに増分増分バックアップを行うには、時間に基づいている、増分バックアップのディレクトリを指定する必要があります

増分バックアップ・リカバリ:

現在のバックアップディレクトリには、フルバックアップと2つの増分バックアップが含まれています。

[root@centos02 ~]# ls /data/mysqlbak/
2019-10-26_14-42-29  2019-10-26_16-31-37  2019-10-26_16-38-00

mysqlのサービスを停止します。

[root@centos02 ~]# service mysql stop

ファイルの空のMySQLのデータ格納ディレクトリ:

[root@centos02 ~]# rm -rf /data/mysql/*

全量を準備します。

[root@centos02 ~]# innobackupex --apply-log --redo-only /data/mysqlbak/2019-10-26_14-42-29/

最初の時間増分のための準備:

[root@centos02 ~]# innobackupex --apply-log --redo-only /data/mysqlbak/2019-10-26_14-42-29/ --incremental-dir=/data/mysqlbak/2019-10-26_16-31-37

第二の増分を準備する(最後の増分なし - -redoのみ):

[root@centos02 ~]# innobackupex --apply-log  /data/mysqlbak/2019-10-26_14-42-29/ --incremental-dir=/data/mysqlbak/2019-10-26_16-38-00

(なし - -redo専用)再び全額を準備します。

[root@centos02 ~]# innobackupex --apply-log /data/mysqlbak/2019-10-26_14-42-29/

注: - -redoのみなしで、再び準備ができたら、最後の増分バックアップとフルバックアップを準備します

回復:innobackupex --copy-バック/フルバックアップディレクトリ

[root@centos02 ~]# innobackupex --copy-back /data/mysqlbak/2019-10-26_14-42-29/

DATADIRカタログを見ます:

[root@centos02 ~]# ls /data/mysql
ibdata1  ib_logfile0  ib_logfile1  ibtmp1  mysql  performance_schema  test  test_mysql  xtrabackup_info  xtrabackup_master_key_id

#データファイルのリカバリ

所有者とグループ回復されたデータファイルを変更します。

[root@centos02 ~]# chown -R mysql:mysql /data/mysql

そして、あなたは、MySQLサービスを開始することができます#

追加:
すべての増分バックアップは、前回の増分に基づいて増分バックアップを行うためのバックアップです。1.場合には、リカバリ操作準備あなたが最初のフルバックアップとすべての増加を準備する必要がある場合の準備
2.もしを各増分バックアップが最初のフルバックアップに基づいており、その後、回復時間は、最初のフルバックアップや機器の最後の増加を準備する必要があります

MariaDB10.3.x全額以降/増分バックアップとリカバリ

MariaDB10.3以降は、フォーマットを記録し、異なる前にやり直しのでMariaDB10.3.xと上記のバージョンでは、Percona XtraBackupツールに問題があります。

解決方法:mariabackup、それはMariaDBは、InnoDBは、アリアとMyISAMテーブルの物理学オンラインバックアップのために提供されるオープンソースのツールで、このツールはXtraBackupのPercona(バージョン2.3.8)ソリューションに基づいています。

フル・バックアップと復元:

バックアップ:

[root@linux ~]# mariabackup --defaults-file=/etc/my.cnf --backup --user=bakuser --password=bak123 --target-dir /data/mysqlbak/20191026

別のバックアップファイル格納ディレクトリと#XtrabackupツールはMariabackupは、独自の定義とxtrabackupツールが自動的に時間を生成必要があり、単純に/データ/ mysqlbakディレクトリを指定することができます

回復:

1.サービスと空のDATADIRを停止します。

[root@linux ~]# service mysql stop
Redirecting to /bin/systemctl stop mysql.service
[root@linux ~]# rm -rf /data/mysql/*

2.準備します。

[root@linux ~]# mariabackup --prepare --target-dir /data/mysqlbak/20191026/

3.スタート・リカバリ:

[root@linux ~]# mariabackup --copy-back --target-dir /data/mysqlbak/20191026/

4.所有者を変更し、ファイルグループを復元します:

[root@linux ~]# chown -R mysql:mysql /data/mysql

#成功し、その後、サービスを開始することができます

増分バックアップとリカバリ:

注意:増分バックアップの前提は、フルバックアップを持っている必要がありますする必要があります

機器の最初の増加:

[root@linux ~]# mariabackup --backup --user=bakuser --password=bak123 --target-dir /data/mysqlbak/20191026_inc1 --incremental-basedir /data/mysqlbak/20191026/

# - バックアップファイルストレージパスによって定義-target-DIR、 - -incremental-BASEDIRによって調製総量指定されたディレクトリに基づきます

セカンドにより調製:

[root@linux ~]# mariabackup --backup --user=bakuser --password=bak123 --target-dir /data/mysqlbak/20191026_inc2 --incremental-basedir /data/mysqlbak/20191026_inc1

# - -target-DIRは、第二のバックアップファイルストレージパスによって定義され、 - 第二の増加によって最初にバックアップディレクトリを指定-incremental-BASEDIR調製に

回復:

サービスと空のDATADIRを停止します。

[root@linux ~]# service mysql stop
Redirecting to /bin/systemctl stop mysql.service
[root@linux ~]# rm -rf /data/mysql/*

フルバックアップを準備します。

[root@linux ~]# mariabackup --prepare --target-dir /data/mysqlbak/20191026 --apply-only

によって調製初めて調製:

[root@linux ~]# mariabackup --prepare --target-dir /data/mysqlbak/20191026 --incremental-dir /data/mysqlbak/20191026_inc1 --apply-only

で用意した第2の準備:

[root@linux ~]# mariabackup --prepare --target-dir /data/mysqlbak/20191026 --incremental-dir /data/mysqlbak/20191026_inc2 --apply-only

回復し始めました。

[root@linux ~]# mariabackup --copy-back --target-dir /data/mysqlbak/20191026

データファイルを回復するために、所有者とグループを変更します。

[root@linux ~]# chown -R mysql:mysql /data/mysql

開始するmysqlの後#

追加:
すべてのバックアップの増加が直接プライマリおよびバックアップディレクトリに基づくことができるときxtrabackup異なるものを、Mariabackupは、機器が増えるたびに、操作を再開する準備ができて準備最後の増加の場合に基づいている、ことにより調製カタログに基づいてする必要はありません

おすすめ

転載: blog.csdn.net/Powerful_Fy/article/details/102749992