《数据库备份策略说明.doc》由会员分享,可在线阅读,更多相关《数据库备份策略说明.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流数据库备份策略说明【精品文档】第 6 页数据库备份策略说明1、备份目的保障项目数据安全,防止服务器故障导致数据无法恢复的情况。2、备份策略综述:所有mysql实例已经实现了master、slave结构,我们备份一般在slave服务器进行。部分备份完成之后,会上传一份数据到存储机或者其他服务器进行异机及异地备份,另外备份保存一份。一、备份方式1、本机备份该备份模式,适合于快速恢复数据。比如:误操作删除数据等2、异机容灾备份该备份模式,能比较好的规避单机故障问题。3、异地容灾备份该备份模式,规避大规模IDC故障(比如:火灾、地震、空调故障等)、数据安全问题二
2、、备份频率1、主站www、bbs、blog等核心项目,进行每天完整备份。结合各项目数据库实例master与slave结构,以及当前slave服务器负载和带宽情况,采用crontab定时备份。2、对于跟商业有关的项目,备份策略同核心项目。3、非核心项目90%备份策略采用核心项目备份机制,其他采用每周备份策略。4、对于近期大规模更新数据或者数据库结构变更的数据库实例,采用人员干预备份模式,即走备份申请流程。三、备份准备1、创建备份目录/opt/phpdba/backup/database2、脚本编写详见第四项,备份脚本3、加入计划任务 crontab4、检查备份情况5、添加每天检查列表四、备份脚本
3、#!/bin/shLogFile=db$(date +%y%m%d).logweek=date +%wcd /opt/phpdba/backup/databasefor DBName in databasedoNewFile=db$DBName$(date +%y%m%d).tar.gzOldLogFile=db$(date -d 7 days ago +%y%m%d).logif -f $OldLogFile then rm -f $OldLogFile $LogFile 2&1 echo $OldLogFileDelete Old log File Success! $LogFileels
4、e echo $OldLogFileNo Old log File! $LogFileficase $week in 1) date=date -d 56 days ago +%y%m%d OldFile=db$DBName$date.tar.gz if -f $OldFile then rm -f $OldFile $LogFile 2&1 echo $OldFileDelete Old File Success! $LogFile else echo $OldFileNo Old Backup File! $LogFile fi 2|3|4|5|6|0) date=date -d 7 da
5、ys ago +%y%m%d OldFile=db$DBName$date.tar.gz if -f $OldFile then rm -f $OldFile $LogFile 2&1 echo $OldFileDelete Old File Success! $LogFile else echo $OldFileNo Old Backup File! $LogFile fiesacif -f $NewFile then echo $NewFileThe Backup File is exists,Cant Backup! $LogFileelse datestart=$(date +%s)
6、if -z $DBPasswd then mysqldump -u $DBUser -opt $DBName |gzip $NewFile else echo start backup $LogFile cd /opt/phpdba/data/database #sh stop3310.sh /opt/phpdba/mysql/bin/mysql -S /tmp/mysql.sock -p123456 -e stop slave;flush tables tar zcf /opt/ phpdba /backup/database/$NewFile var #sh start3310.sh /o
7、pt/ phpdba /mysql/bin/mysql -S /tmp/mysq.sock -p123456 -e start slave cd /opt/phpdba/backup/database fi echo $NewFileBackup Success! $LogFile dateend=$(date +%s) let time=$dateend-$datestart echo The Backup Time Is:$time $LogFile filesize=ls -l /opt/ phpdba /backup/ database /$NewFile | awk print $5
8、 if $filesize -eq 20 then echo $NewFile Backup File Size:$filesize is error echo - fi echo The Backup File Size:$filesize $LogFile fidone echo - $LogFile五、后期实现binlog不设置过期时间,日志全备份和迁移。3、备份检查1、每个季度安排专人对备份数据库文件的可用性检查,主要包括文件导入是否可用。人工将每份备份导入测试库,并进行可用性测试。后期尽量实现自动化或者半自动化操作。2、每天程序自动检查,生成备份报告邮件给相关人员。Python 远程
9、登录每台备份服务器统计备份目录文件状态,生产邮件报告。3、备份服务器空间监控主要nagios监控 cacti监控4、备份有效期现在备份主要采用shell脚本进行备份,分数据库文件压缩打包备份和导出sql文件进行备份两种形式。规则是:1、周一检查是否存在56天前备份的文件,进行销毁2、周二至周日检查7天钱备份的文件,进行销毁3、90%的mysql实例的binlog保存90天;5%的mysql实例永久保存binlog;其他实例保存30天。5、备份恢复1、邮件描述恢复申请需求2、运维找到相关备份文件3、领导审核同意4、实施恢复进程5、恢复需求总结。比如:程序sql没加limit,导致整个表或者大部分数据更新相同内容。6、备份申请单数据备份申请表应用系统名称申请部门申请日期申请人申请描述备份内容备份要求(备份频率、数据保留时间、建议完成时间等)申请部门负责人签字申请审批备份策略备份操作人员签字: 日期:审批意见 技术负责人签字: 日期:申请部门负责人确认签字处理日期
限制150内