始创于2000年 股票代码:831685
咨询热线:0371-60135900 注册有礼 登录
  • 挂牌上市企业
  • 60秒人工响应
  • 99.99%连通率
  • 7*24h人工
  • 故障100倍补偿
您的位置: 网站首页 > 帮助中心>文章内容

如何还原某一个目录下的所有数据库备份文件(1)

发布时间:  2012/6/16 21:35:38

引述

在工作中,经常为测试或开发部门搭建数据库环境,每一次搭建环境,需要还原某一个目录下的所有数据库备份文件,也就是,一次需要还原一百多个数据库。

每碰到类似的情况,需要编写一个SQL脚本来实现还原数据库的功能。这里就简单介绍如何编写存储过程来实现,还原某一个目录下的所有数据库备份文件。

要实现还原某一个目录下的所有数据库备份文件,首先要实现还原某一个目录下的某一个备份文件。真实世界中,只提供数据库备份路径,和备份数据库文件名,及还原到的本地路径。接下来,将讲述以下内容:

  • 根据备份文件找出数据库名
  • 根据备份文件找出数据、日志目录列表
  • 构造还原数据库SQL语句
  • 还原单个数据库的存储过程代码
  • 还原多个数据库的存储过程代码(一个目录下)

●根据备份文件找出数据库名

在还原数据库的开始,我们先要知道把备份数据库文件还原到哪一个数据库上。在真实世界中,我们无法保证备份数据库文件都为”数据库名+.bak”格式 (如:myDB.bak,其中myDB就是数据库名)。通常情况,只知道备份文件,需要知道数据库名,我们可以通过SQL Server提供的T-SQL语句“Restore HeaderOnly”来找出原来的数据库名,简单语法这样:Restore HeaderOnly From

返回的结果集中,有一列”DatabaseName”描述备份的数据名。通过”DatabaseName”列,就可以找出我们需要的原来数据库名了。

e.g.

  1. Restore HeaderOnly From Disk = 'E:\DBBackup\dbA2011-09-05.bak'

【注:】在结果集中, SQL Server 2008/R2 比 SQL Server 2005 多一个列”CompressedBackupSize”。

●根据备份文件找出数据、日志列表

接下来,我们需要知道备份文件中包含哪些数据、日志文件,及要知道原来的文件路径是什么。要是原来的数据库文件存储路径与新路径不一致,我们需要在”Restore Database …” 里面使用” Move”选项。这里我们可以通过使用SQL Server 提供的T-SQL语句”Restore FileListOnly”,返回数据库和日志文件列表组成的结果集,简单语法这样:Restore FileListOnly From <backup_device>

e.g.

  1. Restore FileListOnly From Disk = 'E:\DBBackup\dbA2011-09-05.bak'

【注:】在结果集中, SQL Server 2008/R2 比 SQL Server 2005 多一个列”TDEThumbprint”,应用于显示数据库加密密钥的指纹。

●构造还原数据库SQL语句

上面两点内容,我们根据备份文件,知道了要还原的数据库名和数据库文件列表,那么,我们基本可以构造出还原数据库的SQL语句了。

e.g.

  1. Restore DataBase dbA
  2. From Disk='E:\DBBackup\dbA2011-09-05.bak'
  3. With File=1,
  4. Move 'dbA' To 'E:\DATA\SQL2008DE01\dbA.mdf',
  5. Move 'dbA_log' To 'E:\DATA\SQL2008DE01\dbA_Log.LDF',Replace,Recovery
  6. 更多请联系:亿恩科技
    QQ:1613285598   0371-63322220

 

 


本文出自:亿恩科技【www.enkj.com】

服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM]

  • 您可能在找
  • 亿恩北京公司:
  • 经营性ICP/ISP证:京B2-20150015
  • 亿恩郑州公司:
  • 经营性ICP/ISP/IDC证:豫B1.B2-20060070
  • 亿恩南昌公司:
  • 经营性ICP/ISP证:赣B2-20080012
  • 服务器/云主机 24小时售后服务电话:0371-60135900
  • 虚拟主机/智能建站 24小时售后服务电话:0371-60135900
  • 专注服务器托管17年
    扫扫关注-微信公众号
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 亿恩科技 版权所有  地址:郑州市高新区翠竹街1号总部企业基地亿恩大厦  法律顾问:河南亚太人律师事务所郝建锋、杜慧月律师   京公网安备41019702002023号
      1
     
     
     
     

    0371-60135900
    7*24小时客服服务热线