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 のバイナリコンパイルとインストールに関するチュートリアル
Vueカードのフリップカルーセル表示、フリップ時にデータを切り替えながら、参考までに、具体的な内容は...
序文私は less/sass を書くことに慣れていますが、小さなプログラムを開発するときには、まだ ...
Web プロジェクトを作成しているときに、紹介ビデオが別にある紹介ページに遭遇しました。この短いビデ...
目次ネイティブJS GETリクエストの送信方法投稿リクエストの送信方法パラメータ付きのGETリクエス...
Linuxの基本設定 Linux環境でpython3をコンパイルしてインストールする 1. Linu...
最初のステップはTypeScriptをグローバルにインストールすることですnpmを使用してインストー...
ほとんどのナビゲーション バーは、下の図に示すように水平に配置されていますが、これはどのように実現さ...
序文コンポーネントは、非常に頻繁に使用されるものです。多くの人は、コンポーネントを 1 つのファイル...
1. Pythonのインストール1. フォルダーを作成します。 mkdir python フォルダ...
目次1. シナリオ2. IJavaScriptShadowboxを実装する2.1 メインスレッドの実...
背景PNG 画像は jpg 画像よりも多くのストレージスペースを占有しますが、PNG 画像の品質は大...
Chrome ブラウザで Web ページを開くと、ページを右クリックすると 2 つの非常によく似たオ...
このシステムでは、# 記号は root ユーザーを表し、$ 記号は通常のユーザーを表します。では、ど...
シナリオ: docker で tomcat を起動すると (Alibaba Cloud からダウンロ...
1. 元のmariadbを削除します。削除しないとmysqlをインストールできません。 mariad...