記事のディレクトリ
xTraBackupの紹介
MySQLコールドスタンバイ、mysqldump、およびMySQLホットコピーは、データベースの増分バックアップを実装できません。実際の本番環境では、増分バックアップが非常に実用的です。データが50Gまたは100Gを超え、ストレージ容量が十分であれば、毎日フルバックアップを実行できます。毎日生成されるデータの量が多い場合、データバックアップ戦略をカスタマイズする必要があります。たとえば、毎週の実用的な完全バックアップと、月曜日から土曜日までの実用的な増分バックアップです。Percona-Xtrabackupは、増分バックアップ用の主流のバックアップツールです。Xtrabakackupには、xtrabakupとinnobakupeの2つのツールがあります。このソリューションでは、データベースのバックアップにinnobackupを使用します。
xTraBackupの展開
前提条件
- データベースに対してbinlogログが有効になっていることを確認します。有効になっていない場合は、有効にする必要があります。このパラメーターを有効にするには、データベースを再起動する必要があります。
コマンドを確認してください:
'%log_bin%'のような変数を表示します;
- 追加のバックアップストレージスペース。
展開とインストール
# 下载安装包
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.21/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.21-1.el7.x86_64.rpm
# 部署安装包
yum install -y percona-xtrabackup-24-2.4.21-1.el7.x86_64.rpm
# 检查安装状态
innobackupex -v
バックアップパスの構成
mkdir -p /data/backup/mysql_backup/
mkdir /data/backup/logs/
バックアップスクリプトの構成
vi /data/backup/mysql_backup.sh
#!/bin/bash
. /etc/profile
. ~/.bash_profile
bakdir="/data/backup/mysql_backup/"
logfile="/data/backup/logs/full_mysql_`date '+%Y%m%d'`.log"
echo "=============================== "`date +"%Y-%m-%d %H:%M:%S"`" begin to backup ===============================" >> $logfile
innobackupex \
--defaults-file=/etc/my.cnf \
--user=root \
--password="" \
--socket=/home/mysql/mysql.sock \
--port=3306 \
--safe-slave-backup \
--safe-slave-backup-timeout=7200 \
--slave-info \
--backup $bakdir \
2>> $logfile
echo "=============================== "`date +"%Y-%m-%d %H:%M:%S"`" finished backup ===============================" >> $logfile
find $bakdir -mtime +30 -exec rm -rf {} \;
スケジュールされたタスクの構成
0 2 * * * /data/backup/mysql_backup.sh
バックアップロックテーブルによって引き起こされる遅いビジネス例外を回避するために、バックアップ時間はビジネスへの影響が最も少ない時点を選択することをお勧めします。
バックアップデータチェック
ファイルチェック
バックアップファイルには、整合性に必要なデータベースファイル、構成ファイル、およびxtrabackup_checkpointsファイルが含まれます。