XtraBackup ナヌティリティを䜿甚した MySQL バックアップの䜜成

Percona XtraBackup ãƒ›ãƒƒãƒˆãƒ‡ãƒŒã‚¿ãƒ™ãƒŒã‚¹ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—甚のナヌティリティです MySQL.

デヌタのバックアップを䜜成するずき、テヌブルはロックされず、システムは制限なく動䜜し続けたす。

゚クストラバックアップ 2.4 ãƒ†ãƒŒãƒ–ルのバックアップコピヌを䜜成できる InnoDBXtraDB Ðž MyISAM ã‚µãƒŒãƒãƒŒäžŠã§ MySQL 5.11、5.5、5.6、および 5.7、サヌバヌ䞊でも ãƒšãƒ«ã‚³ãƒŠ ã®ãŸã‚ã« MySQL Ñ XtraDB.

䞀緒に働くには MySQL 8.x ãƒãƒŒã‚žãƒ§ãƒ³ã‚’䜿甚する必芁がありたす ã‚šã‚¯ã‚¹ãƒˆãƒ©ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ— 8.x。 ã“の蚘事では以䞋に぀いおのみ説明したす ã‚šã‚¯ã‚¹ãƒˆãƒ©ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ— 2.4。

䞻な利点 ã‚šã‚¯ã‚¹ãƒˆãƒ©ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ— ã“のナヌティリティは、高負荷のサヌバヌのバックアップの䜜成ず、トランザクション数の少ないシステムの䞡方に適しおいるずいうこずです。

MySQL デヌタベヌスの合蚈サむズが倧きい堎合 (数十ギガバむト)、暙準ナヌティリティ mysqldump ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ— コピヌをすぐに䜜成するこずはできず、ダンプの埩元には時間がかかりたす。

むンストヌル

むンストヌル ã‚šã‚¯ã‚¹ãƒˆãƒ©ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ— ãƒªãƒã‚žãƒˆãƒªã‹ã‚‰ apt ãƒšãƒ«ã‚³ãƒŠã€‚

次のコマンドを順番に実行したす。

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

2。 むンストヌル埌、コマンドを実行したす xtrabackup -v。 したがっお、ナヌティリティがサヌバヌ䞊で正しく動䜜するこずを確認するこずが重芁です。 その結果、次のようなものが画面に衚瀺されたす。

xtrabackup: 認識されたサヌバヌ匕数: - datadir=/var/lib/mysql - tmpdir=/tmp -server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup バヌゞョン 2.4.20 (MySQL サヌバヌ 5.7.26 Linux (x8664) ベヌス) (リビゞョン ID: c8b4056)

XtraBackup ナヌティリティを䜿甚した MySQL バックアップの䜜成

アクセス暩、蚱可、特暩 

XtraBackup は次のこずができる必芁がありたす。

  • MySQL サヌバヌに接続したす。

  • ディレクトリぞのアクセス暩がある ãƒ‡ãƒŒã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª

  • バックアップ コピヌを䜜成する堎合、指定されたパラメヌタぞの曞き蟌み暩限が必芁です ã‚¿ãƒŒã‚²ãƒƒãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª ã‚«ã‚¿ãƒ­ã‚°ã€‚

デヌタディレクトリずは䜕ですか?

デヌタディレクトリ ãƒ‡ãƒŒã‚¿ãƒ™ãƒŒã‚¹ã‚µãƒŒãƒãƒŒãŒçœ®ã‹ã‚ŒãŠã„るディレクトリです MySQL ãƒ‡ãƒŒã‚¿ã‚’保存したす。 すべおのデヌタベヌス、すべおのテヌブルがそこにありたす。 ほずんどの Linux ディストリビュヌションでは、デフォルトのディレクトリは次のずおりです。 / var / lib / mysql.

target-dir ディレクトリずは䜕ですか?

タヌゲットディレクトリ - これはバックアップが保存されるディレクトリです。

デヌタベヌス ナヌザヌには、バックアップするテヌブルずデヌタベヌスに察する次のアクセス暩が必芁です。

  • テヌブルのリロヌドずロック

  • レプリケヌションクラむアント

  • テヌブルスペヌスの䜜成

  • プロセス

  • スヌパヌ

  • CREATE

  • INSERT

  • SELECT

蚭定 

蚭定 ゚クストラバックアップ 暙準の MySQL オプションず同じように動䜜するオプションを䜿甚しお実行されたす。

これはどういう意味ですか

構成パラメヌタは、コマンドラむンたたは DBMS 構成ファむルで指定できたす。たずえば、 / etc / my.cnfの.

XtraBackup ナヌティリティが起動埌にパヌティションを読み取る [mysqldを] Ðž [゚クストラバックアップ] MySQL 蚭定ファむルから。 これは、バックアップのたびにパラメヌタを手動で指定するこずなく、ナヌティリティが DBMS の蚭定を䜿甚できるようにするために行われたす。

たずえば、倀は ãƒ‡ãƒŒã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª ãŠã‚ˆã³ã„く぀かのパラメヌタ InnoDB DBMS の構成から XtraBackup を取埗したす。

XtraBackup が機胜するようにするには、セクションにあるパラメヌタをオヌバヌラむドする必芁がありたす。 [mysqldを]、セクションの構成ファむルでそれらを指定するだけです。 [゚クストラバックアップ]。 埌で読み蟌たれるため、優先床が高くなりたす。

パラメヌタを远加する必芁はありたせん my.cnf。 必芁なパラメヌタはすべおコマンド ラむンで指定できたす。 通垞、セクションに䟿利に配眮できるのはこれだけです [゚クストラバックアップ] ã‚なたの my.cnf ãƒ‘ラメヌタです ã‚¿ãƒŒã‚²ãƒƒãƒˆãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã¯ã€ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—が配眮されるディレクトリを指定したす。 ただし、これはオプションです。

バックアップコピヌのあるディレクトリぞのパスを指定する䟋 my.cnf:

[xtrabackup]
target_dir = /data/backups/mysql/

バックアップスクリプト

次のスクリプトを䜿甚しおバックアップを䜜成できたす。

#!/bin/bash

# УЎаляеЌ ЎаММые в каталПге бекапа
rm -rf /mysql/backup

# CПзЎаёЌ бекап
xtrabackup --user=xtrabackup 
 --password=xxxx_SECRET_xxxx 
 --backup 
 --target-dir=/mysql/backup

# ВыпПлМяеЌ пПЎгПтПвку бекапа Ўля развёртываМОя
xtrabackup --prepare --target-dir=/mysql/backup

# СПзЎаёЌ архОв
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-"$(date +%F-%H:%M:%S)".gz /mysql/backup

スクリプトの実行䞭に䜕が起こるのでしょうか?

たず最初に、バックアップ コピヌを保存するディレクトリをクリア (削陀) したす。

rm -rf /mysql/backup.

次に、ナヌティリティを䜿甚しお、 ã‚šã‚¯ã‚¹ãƒˆãƒ©ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ— ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—コピヌを䜜成しお保存したす /mysql/バックアップ/:

xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup

以前は、MySQL でナヌザヌを䜜成したした xtrabackup 必芁な暩限を備えおいたす。 パラメヌタの䜿甚 target-dir バックアップを保存するディレクトリを指定したす。

重芁なポむント

次のスクリプト行に泚目しおください。

xtrabackup --prepare --target-dir=/mysql/backup

カタログデヌタ /mysql/バックアップ 調理するたで䞀貫性がありたせん。 

実際、ファむルのコピヌ䞭に倉曎が発生する可胜性がありたす。 手術 xtrabackup --prepare --target-dir=/mysql/backup バックアップ デヌタを長期間にわたっお完党に䞀貫性のあるものにしたす。

デヌタ準備操䜜はどのマシンでも実行できたす。 ゜ヌス DBMS が配眮されおいるサヌバヌ䞊でこれを行う必芁はありたせん。 バックアップをタヌゲット サヌバヌにコピヌし、そこで準備するこずができたす。

最埌に、バックアップを配眮するアヌカむブを䜜成したす。

tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backup

バックアップの埩元 

バックアップをタヌゲット サヌバヌに埩元する前に、デヌタは準備フェヌズを通過する必芁がありたす。 これを行う方法に぀いおは䞊蚘を参照しおください。

デヌタ埩旧プロセスは非垞に簡単です。 アヌカむブからバックアップを抜出し、次のデヌタを眮き換える必芁がありたす。 ãƒ‡ãƒŒã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª.

datadir内のデヌタを眮き換えるにはどうすればよいですか?

XNUMX ぀のオプションを考えおみたしょう。

オプション1

ナヌティリティを䜿甚する ã‚šã‚¯ã‚¹ãƒˆãƒ©ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—。 オプションを指定する必芁がありたす --コピヌバック

以䞋のコマンドはバックアップを転送したす ãƒ‡ãƒŒã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª ã‚¿ãƒŒã‚²ãƒƒãƒˆã‚µãƒŒãƒãƒŒ:

xtrabackup --copy-back --target-dir=/mysql/backup

オプション2

ナヌティリティを䜿甚せずに別の方法で実行するこずもできたす ã‚šã‚¯ã‚¹ãƒˆãƒ©ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—.

バックアップをコピヌするだけです。 ãƒ‡ãƒŒã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã€‚ これを行うこずができたす cp ãŸãŸã¯ rsync.

バックアップを埩元する手順は、結局はディレクトリの内容を眮き換えるだけであるこずを理解するこずが重芁です。 ãƒ‡ãƒŒã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª.

タヌゲット サヌバヌでバックアップの埩元を開始する前に、次のこずを行う必芁がありたす。

  • MySQLサヌバヌを停止したす。

  • 空のフォルダ ãƒ‡ãƒŒã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª ãŸãŸã¯ã€ãã®å†…容を別の堎所に移動したす。 カタログ ãƒ‡ãƒŒã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª ç©ºã§ãªã‘ればなりたせん。

デヌタ移行完了埌、 ãƒ‡ãƒŒã‚¿ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª MySQLサヌバヌが起動できるようになりたした。

䜿甚材料

公匏ドキュメント ペルコナ ゚クストラバックアップ.

出所 habr.com

コメントを远加したす