mysql数据库备份还原
———————————————————————————-数据库完全备份及还原————————————————————————–
1.数据库备份
mysqldump –uroot -p${PASSWORD} –A –F –E –R –triggers –single-transaction –master-data=2 –flush-privileges –default-character-set=utf8 | gzip > ${BACKUP}/fullbak_${BACKUP_TIME}.sql.gz
2.数据库还原
2.1 进入备份的文件夹进行解压:
gzip -d ${BACKUP}/fullbak_${BACKUP_TIME}.sql.gz
2.2 恢复前登录数据库关闭二进制日志:
set sql_log_bin=off
2.3 还原数据库
source ${BACKUP}/fullbak_${BACKUP_TIME}.sql
2.4 打开二进制日志:
set sql_log_bin=on
———————————————————————————-数据库增量备份及还原————————————————————————
1.设置二进制存放路径
[mysqld]
log-bin=/data/mysql/log-bin
mkdir -p /data/mysql
chown mysql.mysql /data/mysql
2.完全备份数据库
mysqldump –uroot -p${PASSWORD} –A –F –E –R –triggers –single-transaction –master-data=2 –flush-privileges –default-character-set=utf8 | gzip > ${BACKUP}/fullbak_${BACKUP_TIME}.sql.gz
3. 进入备份的文件夹进行解压:
gzip -d ${BACKUP}/fullbak_${BACKUP_TIME}.sql.gz
4.查看恢复二进制文件的起始位置:
grep ‘^– CHANGE MASTER TO’ ${BACKUP}/fullbak_${BACKUP_TIME}.sql
#– CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000001′, MASTER_LOG_POS=XXX;
5.备份二进制日志:
mysqlbinlog mysql-bin.000001 –start-position=XXX > /data/mysql/inc.sql
##如有多个二进制文件则将其他二进制日志 >> /data/mysql/inc.sql
6.还原数据库
set sql_log_bin=off
source ${BACKUP}/fullbak_${BACKUP_TIME}.sql
source /data/mysql/inc.sql
set sql_log_bin=on
—————————————————————————————-注意事项 ——————————————————————————
1.根据业务确定备份周期,数据库和(二进制日志,配置文件)可按7:1比例周期定制计划任务。
2.数据库备份可按照mysqldump .二进制日志和配置文件可按照 rsync -av /data/mysql/* back-up-server:/path进行动态更新。
3.还原时,根据完全备份的日志起始点,生成对应的还原日志。