您的位置:首页 > 数据库 > MySQL

MySQL备份方案–>(利用mysqldump以及binlog二进制日志)

2014-05-20 12:33 731 查看
  MySQL备份方案-->(利用mysqldump以及binlog二进制日志)

  随着数据不断增加,而且为了兼容以后的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

code.google.com/p/shsp/issues/detail?id=1;

  --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 >

  /backup/mysql/full/mysql_20110104_195546.sql

  (4) 设置crontab任务,每天执行备份脚本

  shell> crontab –e

  #每个星期日凌晨3:00执行完全备份脚本

  0 3 * * 0 /usr/scrpit/mysqlFullBackup.sh>/dev/null 2>&1

  #周一到周六凌晨3:00做增量备份

  0 3 * * 1-6/root/MySQLBackup/mysqlDailyBackup.sh >/dev/null 2>&1

  (5) 清除旧的备份文件。

  每天去看查看下备份磁盘空间,删除旧的备份压缩文件。

  3, 数据库恢复

  【注释】如果增量恢复操作中报“ERROR 1051 (42S02) at line 32: Unknown table 'fin_cell_attr_his'”类似的错误,则需要现create一张空表,然后再执行增量恢复。

  Mysql> createtable tb1 ……;

  (1) 全恢复:

  用 mysqldump 备份出来的文件是一个可以直接倒入的 SQL 脚本,直接用 mysql命令恢复最后一次全备份:

  先从备份文件服务器上copy出来,解压缩,再恢复,例如:

  Shell>/root/s3cmd/s3cmd get s3://csf-backup/mysqldb/ mysql_20101216_231900.sql.tar.gz /usr/mysqlrestore/

  Shell>/root/s3cmd/s3cmd get s3://csf-backup/mysqldb/ mysql_binlog_20101217_030100.tar.gz /usr/mysqlrestore/

  Shell>cd /usr/mysqlrestore/

  Shell>tar -xvf mysql_20101216_231900.sql.tar.gz

  Shell>tar -xvf mysql_binlog_20101217_030100.tar.gz

  刷新日志:

  Mysql>flush logs;

  恢复最后一次全备份命令:

  Shell>/usr/local/mysql/bin/mysql -uroot -p123456

  恢复最后一次全备份之后的所有增量备份命令:

  Shell>/usr/local/mysql/bin/mysqlbinlog mysql-bin.00007 mysql-bin.00008mysql-bin.00009 mysql-bin.00010 mysql-bin.00011 | mysql

  code.google.com/p/gzmi;

  code.google.com/p/gzdi;

  code.google.com/p/gzki;

  code.google.com/p/gzyi;

  code.google.com/p/szci;

  code.google.com/p/szlp;

  code.google.com/p/hzdt;

  code.google.com/p/hzct;

  code.google.com/p/hzzu;

  code.google.com/p/hzce;

  code.google.com/p/shze;

  code.google.com/p/shyr;

  code.google.com/p/shre;

  code.google.com/p/shcr;

  code.google.com/p/bjsr;

  code.google.com/p/bjce;

  code.google.com/p/bjie;

  code.google.com/p/bjdt;

  code.google.com/p/njre;

  code.google.com/p/njye;

  code.google.com/p/sdzs;

  code.google.com/p/sdcy;

  code.google.com/p/hfzr;

  code.google.com/p/hfyie;

  code.google.com/p/yczs;

  code.google.com/p/sjzu;

  code.google.com/p/sjzc;

  code.google.com/p/xmti;

  code.google.com/p/fznir;

  code.google.com/p/gzmr;

  code.google.com/p/wzzs;

  code.google.com/p/nbne;

  code.google.com/p/qzze;

  code.google.com/p/csmti;

  code.google.com/p/cslp;

  code.google.com/p/fscy;

  code.google.com/p/dgzs;

  code.google.com/p/szke;

  code.google.com/p/hfga;

  code.google.com/p/shkc;

  code.google.com/p/hzht;

  code.google.com/p/gzkz;

  code.google.com/p/gzms;

  code.google.com/p/jxke;

  code.google.com/p/jxkfp;

  code.google.com/p/jxfp;

  code.google.com/p/gzpz;

  code.google.com/p/shzp;

  code.google.com/p/bjzp;

  code.google.com/p/shsp;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: