XtraBackupとrsyncの違いは何ですか?


11

はい、両方でstraceを実行します...しかし、知りたいのですが...

  • XtraBackupはrsync -ac src destに加えて何をしていますか?
  • XtraBbackupの何が特別なのですか?
  • XtraBackupはmysqldとどのように相互作用しますか?

1
これは、「XtraBackupについて聞いたことがありますが、恐れ入ります」という砕氷船に関する質問の1つです。私はこれらのタイプの質問が大好きです!!! +1 !!!
RolandoMySQLDBA

1
@RolandoMySQLDBA:私は考えを引き起こし、人々に知識を共有してもらうのが好きです。それが私たちが良くなる方法ですよね?ローンレンジャーであることはそれほど楽しいことではありません。:-)
randomx '17年

回答:


16

rsyncは、データをバイト単位でバイト単位でコピーしたものです。最後のrsyncまでは複数のrsyncを実行する必要があり、非常に高速です。次に、MySQLを完全にシャットダウンして、もう一度rsyncを実行します。

XtraBackupは、rsyncのように動作する包括的なツールですが、人生の目的を定めています。すべてのInnoDBデータとテーブルスペースのコピーを開始できます。内部にチェックポイントを作成し、InnoDBクラッシュリカバリをインプレースで実行して、完全なポイントインタイムバックアップを取得する機能があります。XtraBackupには、増分バックアップの作成を可能にする追加機能もあります。もう1つの追加機能は、InnoDBログファイルの作成です。これも、インプレースクラッシュリカバリによって構築されます。MyISAMテーブルの凍結コピーを提供するラッパーソフトウェアもいくつかあります。

どちらの方法も素晴らしいです。XtraBackupは、InnoDBトランザクション機能を、ほとんどの初期コピーに実装するだけです。Xtrabackupは、確立されたMySQLインフラストラクチャにドロップできるファイルを作成します。言うまでもなく、XtraBackupは、インストルメンテーションバックアップと、具体化された非常に使いやすいInnoDBファイルを提供します。

rsyncを使用すると、コピープロセスを複数回管理し、mysqlシャットダウンでそれを制限して、rsyncを1回介入する必要があります。

どちらを使うかは個人的な好みかもしれません。XtraBackupは、コピーされたデータよりも少し大きいバックアップを作成します。方法の選択は、この質問の読者にお任せします。

私はrsyncの方が使いやすいので、プロセスが始まる前に特定の時点を決定できるので、mysqldのロックまたはシャットダウン、そのような制御を実行できる場合、および指定した順序で完全に制御できます。 。

両方のバックアップスタイルには、1つの共通点があります。XtraBackupでは、バックアッププロセスが完了し、XtraBackupを信頼する必要があるまで、実際の時点が変動します(これまでに200,000ダウンロードあります。Facebookは最大のユーザーの1人です)それは多くの信頼を得ています)。つまり、午前0時にXtraBackupを開始し、バックアップが午前2時20分まで続く場合、バックアップの実際の時点は午前2時20分です。複数のrsyncを手動で実行し、最後のrsyncの前に「service mysql stop」を発行するタイミングを決定する必要があるため、rsyncの使用には同じ移動ターゲットの問題があります。

これらのメソッドは、mysqldをrsyncメソッドを使用してシャットダウンする必要があるという点で異なりますが、XtraBackupはmysqldとは独立して動作します。実際、ラッパーソフトウェアを介してMyISAMテーブルを処理する場合を除いて、XtraBackupはmysqldとほとんど相互作用しません。XtraBackupは、mysqldとは別個のInnoDBストレージエンジン操作を使用して、完全に機能するInnoDBデータおよびログファイルを構築しようとします。

mysqlのシャットダウンは、非常に大きな理由でrsyncメソッドで非常に必要です。InnoDBバッファープールは、ディスクに書き戻されていないデータページとインデックスページ(1ページ= 16KB)である「ダーティページ」を保持できます。rsyncを使用しても、InnoDBバッファープールで保留中のデータ変更はキャッチされません。最後のrsyncのmysqldのシャットダウンを高速化するには、次のコマンドを実行してください。

SET GLOBAL innodb_max_dirty_pages_pct = 0;

このコマンドは、ダーティページの数を最小限に抑えます。このコマンドは、バックアップのrsyncメソッドを実行する約1時間前に実行する必要があります。これはXtraBackupにも役立ちますが、XtraBackupはmysqlのシャットダウンを必要としません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.