zoukankan      html  css  js  c++  java
  • SQL Server 2008 维护计划实现数据库备份(最佳实践)

    一、背景

    之前写过一篇关于备份的文章:SQL Server 维护计划实现数据库备份,上面文章使用完整备份和差异备份基本上能解决数据库备份的问题,但是为了保障数据更加安全,我们需要再次完善我们的备份计划;

    下面这篇文章主要加入了日志备份,并对设计备份的频率和设计命名规范等问题进行实战;

    二、最佳实践

    (一) 备份计划

    1) 每周星期日的2:00:00执行数据库的完整备份;

    2) 每周星期一至星期六每天的2:00:00执行数据库的差异备份;

    3) 每天在8:00:00和23:59:59之间、每1小时执行数据库的日志备份;

    4) 每个月的最后一个星期日的1:00:00执行数据库的完整备份;

    (二) 计划讲解

    1. 根据备份文件的不同,我创建了4个文件用于存放备份文件:(Medusa是数据库名)

    1) Medusa_Full:用于存放完整备份文件;

    2) Medusa_Diff:用于存放差异备份文件;

    3) Medusa_Log:用于存放日志备份文件;

    4) Medusa_Save:用于存放保留备份文件

    上面的4个文件夹与备份计划的4个步骤是一 一对应的;

    clip_image001

    (Figure1:文件夹命名规范)

    2. 创建名为Medusa的维护计划,并创建如下图的4个子计划:

    clip_image003

    (Figure2:子计划列表)

    3. 设置【清除历史记录】、【清除维护】的保留时间:

    1) Subplan_Full:保留完整备份文件4周;(1个*4周=4个文件)

    2) Subplan_Diff:保留差异备份文件2周;(6个*2周=12个文件)

    3) Subplan_Log:保留日志备份文件1周;(16个*7天=112个文件)

    4) Subplan_Save:保留备份文件1年;(1个*12月=12个文件)

    上面的时间策略需要根据数据库的安全级别、磁盘空间、业务特性等情况共同解决的,你可以根据的实际情况进行修改和调整;

    4. 下面的Figure3、Figure4、Figure5、Figure6是具体设置的效果图:

    clip_image004

    (Figure3:子计划Full)

    clip_image005

    (Figure4:子计划Diff)

    clip_image006

    (Figure5:子计划Log)

    clip_image007

    (Figure6:子计划Save)

    5. 保存维护计划后,在SQL Server代理的作业中会生成Figure7的作业列表:

    clip_image008

    (Figure7:Job列表)

    6. 执行一段时间后,在各个文件夹中会生成一系列的文件:

    clip_image009

    (Figure8:Full文件)

    clip_image010

    (Figure9:Diff文件)

    clip_image012

    (Figure10:Log文件)

    clip_image013

    (Figure11:Save文件)

    7. 有了这些文件之后,我们可以虽然还原到某个时间点上的数据,数据的差异为一个小时,例如你是在2012-12-11的15:48:00分误操作了数据库,我能回滚到最接近这个时间的是:2012-12-11的15:00:00

    clip_image015

    (Figure12:还原完整备份文件)

    clip_image017

    (Figure13:还原差异、日志备份文件)

    在使用SSMS的还原的时候,系统会帮你找到最近的备份文件,并且进行了勾选,要完成上面的还原,根据我们之前的备份计划,我们需要文件:

    1) 完整备份文件:Barfoo.Medusa_backup_2012_12_09_020005_0612500.bak

    2) 差异备份文件:Barfoo.Medusa_backup_2012_12_11_020005_8354977.bak

    3) 日志备份文件:

    Barfoo.Medusa_backup_2012_12_11_080005_4808937.trn

    Barfoo.Medusa_backup_2012_12_11_090005_4816881.trn

    Barfoo.Medusa_backup_2012_12_11_100005_6543553.trn

    Barfoo.Medusa_backup_2012_12_11_110005_7645233.trn

    Barfoo.Medusa_backup_2012_12_11_120005_8434417.trn

    Barfoo.Medusa_backup_2012_12_11_130004_9379977.trn

    Barfoo.Medusa_backup_2012_12_11_140005_2044137.trn

    Barfoo.Medusa_backup_2012_12_11_150005_2208329.trn

    还原的步骤就是先还原完整备份文件,接着还原差异备份文件,再依次执行日志备份文件,这样就能回滚到你想要的时间点:2012-12-11的15:00

    三、注意事项

    1. 备份计划中“每个月的最后一个星期日的1:00:00执行数据库的完整备份”这个可以换成“仅复制备份(COPY_ONLY)”,这样就需要在维护计划中使用T-SQL进行备份;

    2. 维护计划的可以通过T-SQL脚本生成嘛?

    sp_add_maintenance_plan

    sp_delete_maintenance_plan_db

    sp_add_maintenance_plan_db

    sp_delete_maintenance_plan_job

    sp_add_maintenance_plan_job

    sp_help_maintenance_plan

    sp_delete_maintenance_plan

    四、参考文献

    SQL Server 备份和还原全攻略

    SQL Server 维护计划实现数据库备份

    数据库维护计划存储过程 (Transact-SQL)

    源文来源于

    http://www.cnblogs.com/Leo_wl/p/3288518.html#top

  • 相关阅读:
    【python】装饰器详解推荐
    【React + flask】跨域服务及访问
    【LInux】统计某文件夹下目录的个数
    【NPM】设置代理
    【Mac】jupyter
    【Mac brew】代理安装brew insall
    【医学】超声波成像原理
    【Nginx】配置及使用
    音视频处理ffmpeg使用
    【DL】梯度下降小结
  • 原文地址:https://www.cnblogs.com/qzqdy/p/8250026.html
Copyright © 2011-2022 走看看