随着数据不断增加,而且为了兼容以后的innodb存储引擎, 所以考虑采用mysqldump全备+日志增量备份的策略。使用mysqldump对于MySQL大部分mysql存储引擎比如myisam、innodb都有很好的支持。
方案一:mysqldump全备份+日志增量备份
1, mysqldump备份方案:
周一凌晨3点全备
周二到周日凌晨3点增量备份
2, 备份步骤
(1) 创建备份目录,备份脚本存放目录
Shell > mkdir /usr/mysqlbackup;
Shell > chmod 755 /usr/mysqlbackup;
Shell > mkdir /usr/mysqlbackup/daily;
Shell > chmod 755 /usr/mysqlbackup/daily;
Shell > mkdir /usr/script;
Shell > chmod 777 /usr/script/*.sh
(2) 启用二进制日志
如果日志没有启开,必须启用binlog,要重启mysqld,首先,关闭mysqld,打开/etc/my.cnf,加入以下几行:
[mysqld]
log-bin
然后重新启动mysqld,会产生hostname-bin.000001以及hostname-bin.index,前面的日志文件是记录所有对数据的更新操作,后面的文件是存储所有二进制文件的索引,不能轻易被删除。
(3) 全备份,增量备份。
详细见mysqlFullBackup.sh、mysqlDailyBackup.sh脚本(请注意脚本里面的备份目录、mysql软件安装目录、压缩文件名以及用户名密码,如有不符,请修改)。
下面是部分shell上单个手动执行的测试命令。
Shell> /usr/local/mysql/bin/mysqldump -uroot-pnYuIman25040slave201012301124 --no-create-info=FALSE --order-by-primary=FALSE--force=FALSE --no-data=FALSE --tz-utc=TRUE --flush-privileg
es=FALSE --compress=FALSE --replace=FALSE--insert-ignore=FALSE --extended-insert=TRUE --quote-names=TRUE --hex-blob=TRUE--complete-insert=FALSE --add-locks=TRUE --port=3306 --d
isable-keys=TRUE --delayed-insert=FALSE--create-options=TRUE --delete-master-logs=FALSE --comments=TRUE--default-character-set=utf8 --max_allowed_packet=1G --flush-logs=FALSE -
-dump-date=TRUE --lock-tables=TRUE--allow-keywords=FALSE --events=FALSE --single-transaction=TRUE --routines--all-databases > /back