从一个目录的备份文件中自动产生SQL Server恢复脚本
2008-10-06 10:06:23 来源:WEB开发网核心提示:问题 数据库管理员眼下的一个挑战是备份和恢复数据库,备份在自动调度表中完成,从一个目录的备份文件中自动产生SQL Server恢复脚本,但是恢复可以采取很多不同的版本,你可能需要恢复一个产品数据库,我们可能会得到以下创建于2008年9月10日的备份文件,这个备份文件遵从以上规则,恢复一个发展包,或者测试数据库
问题
数据库管理员眼下的一个挑战是备份和恢复数据库。备份在自动调度表中完成,但是恢复可以采取很多不同的版本,你可能需要恢复一个产品数据库,恢复一个发展包,或者测试数据库,或者只在另外的地方创建数据库副本。有一些自动执行恢复过程和创建脚本的方法,但是这个方法显示了一种方式,那就是只读取存在于备份文件中的目录的内容。
专家解答
以下是读取目录中的内容和创建需要通过执行来恢复数据库的恢复命令的一种简单方法。这个脚本可以用于全部备份,差异备份和事务日志备份。
在我们开始之前,下面的脚本假设情况如下:
1、 恢复的数据库拥有和备份数据库一样的名称。
2、 恢复的数据库和备份数据库存储在相同的位置。
3、 文件名具有以下的格式
dbName_YYYYMMDDHHMM.xxx
4、 文件扩展名如下
全部备份 – BAK
差异备份 – DIF
事务日志备份 – TRN
5、 XP_CMDSHELL 是可用的
6、 不存在可能破坏恢复链的缺失的事务日志
所以,让我们按照下面的步骤来创建自己的备份:
在午夜进行全部备份
早上3:15开始每三个小时进行一次差异备份
早上1点开始每半个小时进行一次日志备份
在上午九点,我们可能会得到以下创建于2008年9月10日的备份文件,这个备份文件遵从以上规则,命名为Customer。
Customer_200809100000.BAK
Customer_200809100100.TRN
Customer_200809100130.TRN
Customer_200809100200.TRN
Customer_200809100230.TRN
Customer_200809100300.TRN
Customer_200809100315.DIF
Customer_200809100330.TRN
更多精彩
赞助商链接