环思产品论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2873|回复: 0
打印 上一主题 下一主题

工具:数据库自动备份

[复制链接]

131

主题

154

帖子

1161

积分

超级版主

机总

Rank: 8Rank: 8

积分
1161
QQ
跳转到指定楼层
楼主
发表于 2018-6-9 09:27:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhouf 于 2018-6-25 14:44 编辑

工具:数据库自动备份

目的:解决开发人员或用户误删除大批量数据;
方法:通过全备、差异备份、日志备份来处理;


前提条件:
1. 启动服务器上的“SQL代理服务”,将服务设置为“自动启动”;

2. 需要备份的数据库,恢复模式必须是“完整Full”;



实现步骤:
1. 下载附件“SqlBackupTool.zip”并解压;
2. 运行脚本 01_master.sql
3. 打开解压的脚本 02_createJob.sql, 修改执行参数,需要备份的数据库名;
    @sDBNames
        需要备份的数据库,逗号分隔, 前提条件是需要备份的数据库属性“恢复模式”必须是“Full”
        (右键数据库->属性Attribute->选项Options->恢复模式Recover Model->完全Full)
    @sPath
        备份文件存放位置 (最后一位必须是‘\’)
        这个文件夹的安全权限,必须确保“SQL代理服务”所有用户具有完全控制的权限
默认频率与过期天数(自动删除)
     完全备份,35天过期(计划:每周日2:00执行)
     差异备份,15天过期(计划:每天3:00执行)
     日志备份,15天过期(计划:每10分钟执行, 您也可以在执行后将调度时间改为5分钟)

4.  (需要测试) 打开查询分析器,找到“SQL代理”,展开到“任务Jobs”;
    右键执行这些Job,看看有没有执行成功(必须在目标路径看到有文件成功备份)    不成功的原因往往有两种:
    A.文件夹安全权限,手工在服务器上创建一次目标路径目录
    B.需备份的数据库恢复模式不是完全模式(Full);

5. 备份Job执行完成后,服务器文件夹 (@sPath) 会生成如下文件:
    (第一个是差异备份文件 _diff_,   第二个是完全备份 _full_, 第三个是日志备份 _log_)



如何恢复数据库:
1. 打开查询分分析器,在 Database 上右键,选择恢复数据库

2. 选择从设备恢复数据库

3. 选择原来备份文件,这里不需要选择所有文件,只需要从最后一次全备 (_full_) 文件之后的所有文件;

4. 点击“时间轴”,在弹出对话框中指定需要恢复的时间点

5. 切记切记:(重要的事情说三遍)
执行数据库恢复前,一定要修改恢复后的数据库名称。否则可能导致覆盖正式数据库;
执行数据库恢复前,一定要修改恢复后的数据库名称。否则可能导致覆盖正式数据库;
执行数据库恢复前,一定要修改恢复后的数据库名称。否则可能导致覆盖正式数据库;




特别注意事项:
此工具是使用了完全备份、差异备份、日志备份相结合的方式,sqlserver在每次执行备份时,每个备份中都会记录相应的时间戳,如果我们开发人员中途手工执行了一次完全备份,而完全整备份却没有放在上面所指定的目录,就会导致下次恢复数据时,时间戳连接不上,出现断层,无法达到恢复数据到某个时间点的效果;
所以,需要大家养成手工执行备份时,一定要将手工执行备份为“复制”模式;



SqlBackupTool.zip

15.21 KB, 下载次数: 154

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|上海环思 ( 沪ICP备11022428号 )

GMT+8, 2024-9-17 09:38 , Processed in 0.074892 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表