我们使用 傀儡代码 来部署 MariaDB。这些是备份选项。

  • mysql::backup::mysqldump:实现 mysqldump 备份。

  • mysql::backup::mysqlbackup:使用 Oracle MySQL 实现备份 企业备份。

  • mysql::backup::xtrabackup:使用 Percona 的 XtraBackup 实现备份。

我们不拥有 MySQL Enterprise Backup 许可证。

这里是备份脚本。目前最大的问题是,我们没有注意到备份何时失败。

#!/bin/bash
#
# MySQL Backup Script
#  Dumps mysql databases to a file for another backup tool to pick up.
#
# MySQL code:
# GRANT SELECT, RELOAD, LOCK TABLES ON *.* TO 'user'@'localhost'
# IDENTIFIED BY 'password';
# FLUSH PRIVILEGES;
#
##### START CONFIG ###################################################

USER=backup
DIR=/var/lib/mysql/backup
ROTATE=6

# Use a pwd file. See https://dev.mysql.com/doc/refman/5.1/en/password-security-user.html
PWD_FILE=$(mktemp ${DIR}/backup.cnf.XXXX)
echo "
[client]
password=sirugrwiuwiuwguisrkogos
" >> $PWD_FILE

PREFIX=mysql_backup_

ADDITIONAL_OPTIONS="--ignore-table=mysql.event"


##### STOP CONFIG ####################################################
PATH=/usr/bin:/usr/sbin:/bin:/sbin



set -o pipefail

cleanup()
{
    find "${DIR}/" -maxdepth 1 -type f -name "${PREFIX}*.sql*" -mtime +${ROTATE} -print0 | xargs -0 -r rm -f
}

mysqldump --defaults-file=${PWD_FILE} -u${USER} --opt --flush-logs --single-transaction \
 ${ADDITIONAL_OPTIONS} \
 --all-databases | bzcat -zc > ${DIR}/${PREFIX}`date +%Y%m%d-%H%M%S`.sql.bz2

if [ $? -eq 0 ] ; then
    cleanup
fi


rm -rf $PWD_FILE

备份时间

# time /usr/local/sbin/mysqlbackup.sh

real    21m35.647s
user    20m47.059s
sys     0m7.843s

备份大小

# du -sh mysql_backup_20160223-123920.sql
4.9G    mysql_backup_20160223-123920.sql

在我们的用例中使用 xtrabackup 更好吗?什么时候用xtrabackup

有帮助吗?

解决方案

有两种方法可以检测您的 mysqldump 何时失败: 您已经使用的一种:

if [ $? -eq 0 ] ; then
    cleanup
fi

如果此条件失败,您可以断定备份失败... 另一种模式是使用 tail -1 backup.sql,它应该告诉您“备份成功完成”

所以如果只担心是否成功,那么你可以使用上面的方法来确定。

Xtrabackup 是物理的,而 mysqldump 是逻辑的,这主要是选择一个而不是另一个的决定性因素。如果您需要恢复单个表/数据库,可以使用 mysqldump 但不能使用 xtrabackup (除非您进行完全恢复)。物理备份相对较快,但也需要频繁的恢复测试,例如数据损坏对于热备份来说不容易识别(我认为是这样)。 您可以考虑查看更多优点和缺点,但如果您认为这个时间太多,并且您已经确定您的恢复要求适合 Xtrabackup,那就去吧。如果您想以这种方式配置它,这里是 holland-xtrabackup 设置步骤

如果您担心速度并且仍然需要逻辑备份,请选择 我的转储者

如果您对物理备份没问题,请使用 Xtrabackup。

其他提示

不能在测试机器上测试这个吗?我并不是要粗鲁,但只有您才能真正判断 XtraBackup 是否更适合您。我所知道的是 Percona 是一套优质的服装,他们的产品总是值得一看。

我在猜测您的情况,但是任何备份都将更多地取决于您的磁盘配置,而不是特定程序(RAID 配置等)。在任何 IT 设置中都需要考虑四件事——硬件、网络、操作系统和软件(可能需要 5 个人 :-))。

你也看过我的LVM备份吗?兹曼达?如果您正在考虑 XtraBackup,您必须在 Linux 上 - 这些也适用于该平台。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top