mysql如何做灾备

MySQL是一种非常重要的数据库,对于企业的业务来说是不可或缺的应用,但是在日常应用过程中,我们不能排除数据库因为自然灾害,硬件故障等原因导致的宕机风险。为了保证企业和业务的正常运行,我们需要对 MySQL 数据库进行灾备处理。

MySQL 数据库的灾备处理,主要是通过备份和恢复来准确保障数据库的数据安全。基于 MySQL+CentOS 的组合,可以采用以下方式实现 Linux 平台上 MySQL 数据库的灾备备份。

#!/bin/bash USER='backupuser' PASSWORD=”password” BACKUP_DIR=/data/backup/mysql MYSQL_HOST='localhost' MYSQL_PORT='3306' MYSQL_USER='root' MYSQL_PASSWORD='password' MYSQL_BIN=/usr/bin/mysql MYSQLDUMP_BIN=/usr/bin/mysqldump GZIP_BIN=/usr/bin/gzip echo 'start backup mysql...' echo 'Create backup dir' if [ ! -d ${BACKUP_DIR}/`date +%Y%m%d_%H%M%S` ]; then mkdir -p ${BACKUP_DIR}/`date +%Y%m%d_%H%M%S` fi DATABASES=`$MYSQL_BIN -u${MYSQL_USER} -p${MYSQL_PASSWORD} -h${MYSQL_HOST} -P${MYSQL_PORT} -e "SHOW DATABASES;" |grep -v -E "(Database|information_schema|mysql)$"` for DB in $DATABASES; do echo $DB $MYSQLDUMP_BIN --single-transaction -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${DB} | $GZIP_BIN >${BACKUP_DIR}/`date +%Y%m%d_%H%M%S`/$DB.sql.gz done echo 'backup mysql complete!'