mysql 増分バックアップに Xtrabackup を使用する
xtrabackup バージョンは 8.0 にアップグレードされましたが、サポートされるのは mysql8.0
のみです。引き続き 2.4## を使用します。 # ですが、
2.4 は以前の
2.1 と比べて比較的大きな変更があります:
innobackupex 関数はすべて
xtrabackup に統合されています。 one
binary であり、互換性上の理由から、
innobackupex は
xtrabackup のソフト リンクです。つまり、
xtrabackup は非 Innodb テーブルをサポートするようになりました。また、
Innobackupex は次のバージョンで削除される予定です (8.0 ではすでに削除されています)。
innobackupex を
xtrabackup に置き換えることをお勧めします。他にもいくつかの新機能があります。詳細については、
xtrabackup の新しいバージョンを参照してください。
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb sudo apt-get update sudo apt-get install percona-xtrabackup-24バックアップ アカウントのデータベースをセットアップします
mysql> CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY '123456';
mysql> GRANT RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost';
mysql> FLUSH PRIVILEGES;
フル バックアップxtrabackup --user=bkpuser --password=123456 --backup --target-dir=/data/backups/mysql
# 会看到输出
200603 09:55:37 Executing UNLOCK TABLES
200603 09:55:37 All tables unlocked
200603 09:55:37 [00] Copying ib_buffer_pool to /data/backups/mysql/ib_buffer_pool
200603 09:55:37 [00] ...done
200603 09:55:37 Backup created in directory '/data/backups/mysql/'
200603 09:55:37 [00] Writing /data/backups/mysql/backup-my.cnf
200603 09:55:37 [00] ...done
200603 09:55:37 [00] Writing /data/backups/mysql/xtrabackup_info
200603 09:55:37 [00] ...done
xtrabackup: Transaction log of lsn (837940114) to (837940123) was copied.
200603 09:55:37 completed OK!
- バックアップを準備します
xtrabackup --prepare --target-dir=/data/backups/mysql
- バックアップをコピーします
mysql が保存されているデータ ディレクトリを移動します。
mv /var/lib/mysql /var/lib/mysql_bak mkdir /var/lib/mysql xtrabackup --copy-back --target-dir=/data/backups/mysql # 这样会保留原始备份 他会将当时读到my.cnf的datadir设置为恢复路径 200603 10:47:42 [01] ...done 200603 10:47:42 [01] Copying ./performance_schema/mutex_instances.frm to /var/lib/mysql/performance_schema/mutex_instances.frm 200603 10:47:42 [01] ...done 200603 10:47:42 [01] Copying ./performance_schema/events_transactions_history_long.frm to /var/lib/mysql/performance_schema/events_transactions_history_long.frm 200603 10:47:42 [01] ...done 200603 10:47:42 [01] Copying ./xtrabackup_info to /var/lib/mysql/xtrabackup_info 200603 10:47:42 [01] ...done 200603 10:47:42 [01] Copying ./ibtmp1 to /var/lib/mysql/ibtmp1 200603 10:47:42 [01] ...done 200603 10:47:42 completed OK!
- バックアップは成功し、その後ブログに通常どおりアクセスできます。再起動しますははははははははははははははははははははははははははは #
# 将恢复目录的属主更改一下 chown -R mysql:mysql mysql /etc/init.d/mysql start
リカバリ中にデータをバックアップしたくない場合は、
コマンド # を使用できます。 ##増分バックアップ
バックアップの作成
xtrabackup --user=bkpuser --password=123456 --backup --target-dir=/data/backups/base # 基于全量备份进行增量 xtrabackup --user=bkpuser --password=123456 --backup --target-dir=/data/backups/inc1 --incremental-basedir=/data/backups/base
- from_lsn
- はバックアップの開始
LSN
です。増分バックアップの場合、 to_lsn
base バックアップと同じである必要があります。
この場合、
to_lsn (最後のチェックポイント LSN) と
last_lsn (最後にコピーされた
LSN
最初の増加をテストし、いくつかのデータを作成する前に増分を作成し続けることができます
root@longing:/data/backups/inc1# cat xtrabackup_checkpoints backup_type = incremental from_lsn = 837943393 to_lsn = 837943393 last_lsn = 837943402 compact = 0 recover_binlog_info = 0 flushed_lsn = 837943402
- 準備復元するには
xtrabackup --user=bkpuser --password=123456 --backup --target-dir=/data/backups/inc2 --incremental-basedir=/data/backups/inc1
xtrabackup --apply- log-only
最後の増分を除くすべての増分をマージする場合に使用する必要があります。準備が完了すると、増分バックアップは完全バックアップと同一であり、同じ方法で復元できます。xtrabackup --user=bkpuser --password=123456 --prepare --apply-log-only --target-dir=/data/backups/base xtrabackup --user=bkpuser --password=123456 --prepare --apply-log-only --target-dir=/data/backups/base --incremental-dir=/data/backups/inc1 xtrabackup --user=bkpuser --password=123456 --prepare --target-dir=/data/backups/base --incremental-dir=/data/backups/inc2真ん中にデータが挿入されているのがわかりますね!
- 質問のまとめ
- 基本バックアップの作成
- すべてのバックアップを準備します。基本バックアップに基づくすべての増分は、マージ操作と同等です
- 最後に、バックアップを直接復元できます。
- Principle
-
InnoDB
は内部的に REDO ログ ファイルを維持します (トランザクション ログ ファイルとも呼ぶことができます)。トランザクション ログには、テーブル データの各 InnoDB レコード変更が保存されます。 InnoDB が起動すると、InnoDB はデータ ファイルとトランザクション ログをチェックし、コミットされたトランザクション ログをデータ ファイルに適用 (ロールフォワード) し、変更されたがコミットされていないデータをロールバックするという 2 つの手順を実行します。
Xtrabackup
は起動時にログ シーケンス番号 (LSN) を記憶し、すべてのデータ ファイルをコピーします。コピー処理には時間がかかるため、この間にデータ ファイルが変更されると、データベースの時点が変更されます。この時点で、
xtrabackup
Xtrabackup トランザクション ログはローテーションで繰り返し書き込まれ、トランザクション ログは再利用できるため、この操作は継続的に実行する必要があります。したがって、
xtrabackup は起動以来、各データ ファイルの変更をトランザクション ログに継続的に記録します。以上が
xtrabackupのバックアップ処理です。
最後の増分バックアップに「--apply-log-only」を使用しない理由
最後の「準備」操作ではロールバック操作をスキップする必要がないため、使用されるデータ ファイルは回復用はローカルです。処理されました。サービスが開始されると、再度ロールバック フェーズにはなりません。このパラメータが最後に使用される場合、サーバーは開始後にロールバック フェーズに入ります。したがって、この
--apply-log-only は、次の増分が使用できなくなることを避けるために、増分をマージするためにのみ使用されます。
「man xtrabackup」を参照
为什么备份完后要准备备份 "prepare"
一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。他的作用是使数据文件处于一致性状态,方法是回滚未提交的事务并同步已提交的事务至数据文件。
为什么选择这个做备份?
mysqldump
备份缺点
效率较低,备份和还原速度慢,份过程中,数据插入和更新操作会被挂起
MySQL
备份工具
跨平台性差,备份时间长,冗余备份,浪费存储空间
XtraBackup
备份过程中不锁库表,适合生产环境,由专业组织Percona
提供( 改进MySQL
分支 )
XtraBackup
能对表 库进行备份吗?
当然了,只不过博主太懒了,写起来太麻烦了,不过原理都是差不多,操作也差不多,大家自己搞搞!
xtrabackup --user=bkpuser --password=123456 --backup --databases="u_test" --no-timestamp --target-dir=/data/backups/u xtrabackup --prepare --target-dir=/data/backups/u
还原
先
prepare
,利用--apply-log
的作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态copy
,因为是部分备份,不能直接用--copy-back
,只能手动来复制需要的库,也要复制ibdata(数据字典)
cp /data/backups/u/ibdata1 /var/lib/mysql/
cp -r u/u_test /var/lib/mysql/
以上がXtrabackup を使用して mysql の増分バックアップを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

MySQLは、非同期、半同期、およびグループ複製の3つのモードを介してデータの複製を処理します。 1)非同期の複製パフォーマンスは高くなりますが、データが失われる可能性があります。 2)半同期複製により、データセキュリティが向上しますが、遅延が増加します。 3)グループレプリケーションは、高可用性要件に適したマルチマスターレプリケーションとフェールオーバーをサポートします。

説明ステートメントは、SQLクエリのパフォーマンスを分析および改善するために使用できます。 1.説明ステートメントを実行して、クエリプランを表示します。 2。出力結果を分析し、アクセスの種類、インデックスの使用量に注意し、順序を結合します。 3.分析結果に基づいてインデックスを作成または調整し、結合操作を最適化し、フルテーブルスキャンを回避してクエリ効率を向上させます。

論理バックアップにMySQLDUMPとホットバックアップにMySQLenterPriseBackupを使用することは、MySQLデータベースをバックアップする効果的な方法です。 1. mysqldumpを使用してデータベースをバックアップします:mysqldump-uroot-pmydatabase> mydatabase_backup.sql。 2。ホットバックアップにmysqlenterprisebackupを使用:mysqlbackup - user = root-password = password - backup-dir =/path/to/backupbackup。回復するときは、対応する寿命を使用します

MySQLのクエリが遅い主な理由には、インデックスの欠落または不適切な使用、クエリの複雑さ、過剰なデータボリューム、および不十分なハードウェアリソースが含まれます。最適化の提案には以下が含まれます。1。適切なインデックスを作成します。 2。クエリステートメントを最適化します。 3.テーブルパーティションテクノロジーを使用します。 4.適切にハードウェアをアップグレードします。

MySQLビューは、SQLクエリの結果に基づいた仮想テーブルであり、データを保存しません。 1)ビューは複雑なクエリを簡素化し、2)データセキュリティを強化し、3)データの一貫性を維持します。ビューは、テーブルのように使用できるデータベースにクエリを保存しますが、データは動的に生成されます。

MySQLdiffersfromotherSQLdialectsinsyntaxforLIMIT,auto-increment,stringcomparison,subqueries,andperformanceanalysis.1)MySQLusesLIMIT,whileSQLServerusesTOPandOracleusesROWNUM.2)MySQL'sAUTO_INCREMENTcontrastswithPostgreSQL'sSERIALandOracle'ssequenceandt

MySQLパーティション化により、パフォーマンスが向上し、メンテナンスが簡素化されます。 1)大きなテーブルを特定の基準(日付範囲など)、2)物理的に独立したファイルに物理的に分割する、3)MySQLはクエリするときに関連するパーティションに焦点を合わせることができます。

mysqlで許可を許可および取り消す方法は? 1。grantallprivilegesondatabase_name.to'username'@'host 'などの許可を付与するために付与ステートメントを使用してください。 2。Revokeallprivilegesondatabase_name.from'username'@'host 'など、Revoke Statementを使用して、許可のタイムリーな通信を確保します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









