1. mysqldump バックアップ方法では論理バックアップが使用されます。最大の欠点は、バックアップとリカバリの速度が遅いことです。50G のデータベースの場合、この速度は許容範囲ですが、データベースが非常に大きい場合は、バックアップに mysqdump を使用することはあまり適していません。 。 現時点では、非常に便利で効率的なツールが必要です。xtrabackはその1つで、innodb hotbackupの無料バージョンとして知られています。 xtraback の機能は次のとおりです。
2. xtrabackをインストールする 1) xtrabackをダウンロードする https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/tarball/percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz をダウンロードしてください 2) 解凍 [root@master ~]# tar zxf percona-xtrabackup-2.4.4-Linux-x86_64.tar.gz 3) 解凍ディレクトリに入り、bin以下のすべてのプログラムを/usr/binにコピーします。 [root@master ~]# cd percona-xtrabackup-2.4.4-Linux-x86_64/ [root@master percona-xtrabackup-2.4.4-Linux-x86_64]# cp bin/* /usr/bin/ Xtraback は、innodb および xtradb テーブルのホット バックアップ用のツールです。オンライン ホット バックアップをサポートし、innodb テーブルをロックせずにバックアップできます。ただし、このツールは myisam エンジン テーブルを操作することはできません。 4) 関連プラグインをインストールする yum インストール perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl-TermReadKey.x86_64 perl-Digest-MD5 –y 5) percona-toolkitをダウンロードしてインストールする https://www.percona.com/downloads/percona-toolkit/2.2.19/RPM/percona-toolkit-2.2.19-1.noarch.rpm で実行します。 [root@master ~]# rpm -ivh percona-toolkit-2.2.19-1.noarch.rpm 警告: percona-toolkit-2.2.19-1.noarch.rpm: ヘッダー V4 DSA/SHA1 署名、キー ID cd2efd2a: NOKEY 準備中... ###################################### [100%] 更新/インストール中... 1:percona-toolkit-2.2.19-1 ###################################### [100%] 3. バックアップ 解決策 1: xtrabackup フルバックアップ + binlog 増分バックアップ (bin-log を有効にする必要があります) バックアップディレクトリを作成する [root@master ~]# mkdir -p /opt/mysqlbackup/{full,inc} まず、テスト データベースを作成し、テスト データベースに tb1 という名前のテーブルを作成し、次のように tb1 テーブルに 3 行のデータを挿入します。 データを挿入した後、次のように完全バックアップを実行します。 [ルート@マスター ~]# innobackupex --user=root --password=pwd123 /opt/mysqlbackup/full/ 上記の完全バックアップ パスは、先ほど作成した mysqlbackup ディレクトリ内にあります。 バックアップが成功したことを証明する次のプロンプトが表示されます バックアップファイルは次のとおりです。 これまでのところ、完全バックアップは完全に成功しており、その後、いくつかのデータがMySQLデータベースに挿入され、増分バックアップが実行されます。 完全バックアップ後のデータベースの変更のバイナリ ログ増分バックアップを作成するには: 完全バックアップ中の binlog ログの位置を表示します。 上記は、完全バックアップが完了した後の位置です。ここでデータを挿入すると、この位置から開始されます。これをこの位置からの増分バックアップと呼びます。ここで、次のように tb1 テーブルにデータを挿入します。 増分バックアップバイナリファイル: [ルート@マスター ~] # mysqlbinlog --start-position=1279 /usr/local/mysql/data/mysql-bin.000001 > /opt/mysqlbackup/inc/`date +%F`.sql バックアップが完了したら、次のようにデータベースの損傷と誤った削除をシミュレートします。 [root@master ~]# rm -rf /usr/local/mysql/data/* データベースの回復 まず、完全バックアップを復元します。つまり、tom1/2/3 のデータは次のようになります。 [root@master ~]#innobackupex --copy-back /opt/mysqlbackup/full/2017-11-21_11-47-42/ 復元が成功したことを証明する次のプロンプトが表示されます データが DATADIR ディレクトリに復元された後、すべてのデータ ファイルの所有者とグループが mysql などの正しいユーザーであることを確認する必要があります。そうでない場合は、mysqld を起動する前にデータ ファイルの所有者とグループを変更する必要があります。のように: # chown -R mysql:mysql /usr/local/mysql/data/ 復元が成功したかどうかを確認するためにMySQLサービスを再起動します。 上記から、フルバックアップが正常に復元されたことがわかります。フルバックアップ中に 3 行のデータを挿入したので、次のように増分バックアップを復元します。 復元中に大量のバイナリ ログが生成されないようにするには、復元前にバイナリ ログを一時的に閉じます。 次に、復元が成功したかどうかを確認します。 この時点で、すべてのデータが正常に回復されました。binlog+xtrabackup ツールによって実装された上記のバックアップは少し面倒なようです。面倒だと感じる場合は、次の解決策2を参照してください。 2. xtrabackup フルバックアップ + xtrabacup 増分バックアップ テスト環境の準備 テストデータベースを作成し、数行のデータを入力するテーブルを作成します。 上記の操作の説明: テストライブラリが作成され、テストライブラリ内にxxテーブルが作成され、tom1とtom2のデータがxxテーブルに挿入されました。 次に、次のように完全バックアップを実行します。 [root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --user=root --password='pwd123' --popt=3306 --backup --target-dir=/opt/mysqlbackup/full/full_incre_$(日付 +%Y%m%d_%H%M%S) 上の黒い部分が保管場所です。以下はバックアップが成功したことを示しています この時点で、再度データを挿入し、増分バックアップを実行します 最初の増分バックアップは次のとおりです。 [root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --user=root --password='pwd123' --popt=3306 --backup --target-dir=/opt/mysqlbackup/inc/inc_incre_$(date +%Y%m%d_%H%M%S) --incremental-basedir=/opt/mysqlbackup/full/full_incre_20171121_123051/ バックアップが成功したことを示す次のメッセージが表示されます。 上記のバックアップパスは/opt/mysqlbackup/inc/です。バックアップされたファイルを表示できます。 次に、xxテーブルに再度データを挿入し、2回目の増分バックアップを実行します。 2 回目の増分バックアップは次のとおりです。 [root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --user=root --password='pwd123' --popt=3306 --backup --target-dir=/opt/mysqlbackup/inc/inc_incre_$(date +%Y%m%d_%H%M%S) --incremental-basedir=/opt/mysqlbackup/inc/inc_incre_20171121_124604/ バックアップが成功したことを証明する次のプロンプトが表示されます 段階的回復のためのエクストラバカップ 効果を得るためにxxテーブルを削除しました 次のようにして完全バックアップの復元を開始します。 [root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 2. 最初の増分を復元する(tom3) [root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 --incremental-dir=/opt/mysqlbackup/inc/inc_incre_20171121_124604/ 3. 2番目の増分を復元する [root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --apply-log-only --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 --incremental-dir=/opt/mysqlbackup/inc/inc_incre_20171121_125202 ライブラリ全体を復元する [root@master ~]# xtrabackup --defaultes-file=/etc/my.cnf --prepare --user=root --password="pwd123" --target-dir=/opt/mysqlbackup/full/full_incre_20171121_123051 mysqlデータベースを停止 - rsyncデータファイルを開始 [root@master ~]# systemctl stop mysqld [root@master ~]# cd /opt/mysqlbackup/full/full_incre_20171121_123051/ [root@master full_incre_20171121_123051]# rsync -rvt --exclude 'xtrabackup_checkpoints' --exclude 'xtrabackup_logfile' ./ /usr/local/mysql/data/ MySQLのアクセス権限を付与する [root@master ~]# chown -R mysql:mysql /usr/local/mysql/data/ 復元が成功したかどうかを確認するために、mysql サービスを起動します。 要約する 上記は、xtraback を使用して MySQL データベースをバックアップする方法です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
>>: Linux での MySql centos7 のバイナリコンパイルとインストールに関するチュートリアル
目次1. 概要2. 名前フィールド3. バージョンフィールド4. 説明フィールド5. キーワードフィ...
目次セットは値が重複しない特別なコレクションです。セットコレクション基本API独自の価値判断セットを...
序文この記事は主に、日常の Web ページ制作で遭遇する問題解決スキルの一部をまとめ、皆さんの参考と...
目次スロットなしVue2.x スロットスロット付き名前付きスロットスロット属性なしスロットの簡単なサ...
ステップ1. MySQLスロークエリを有効にする方法1: 設定ファイルを変更するWindows: W...
<br /> 第 1 部と第 2 部では、Web サイトのパフォーマンス、ページ コンテ...
インターネット上には、正しい方法であっても、使用しても正しい結果が得られない方法が数多くあります。正...
この記事は、参考のためにMySQL 8.0.17のインストールと設定のグラフィックチュートリアルを記...
1. 一般的な使用法: (1)%で使用する% は 1 つ以上の文字のワイルドカードを表します。たとえ...
よく使用されるコマンドは次のとおりです。 chmod 777 文件或目錄例: chmod 777 /...
1. 静的ページとは、Web ページ内に HTML タグのみが含まれるページです。WEB 開発者がこ...
私は今日、mybatis を学び、データベースに対していくつかの簡単な追加、削除、変更、クエリを実行...
1. はじめに画像は多くのスペースを占め、画像の数が増えるほど管理が難しくなるため、シンプルなラベル...
目次序文: Ubuntu 18.04 は apt ソースを Alibaba Cloud ソースに変更...
目次1. 優先キューの紹介2. 優先キューのカプセル化1. 優先キューの紹介通常のキューに要素が挿入...