首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么自动还原最新的备份数据库

2013-08-09 
如何自动还原最新的备份数据库?在 e:\db_bk下有多个完全备份的数据库(如:backup_201307260230.bak等),希望

如何自动还原最新的备份数据库?
在 e:\db_bk下有多个完全备份的数据库(如:backup_201307260230.bak等),希望编写SQL脚本自动查找目录下最新的bk文件,然后还原,每天6点自动还原。

[解决办法]
写个SP,动态产生恢复指令就OK啦
[解决办法]


create table #t
(id int not null identity(1,1), filenames varchar(500))

insert into #t(filenames)
  exec master..xp_cmdshell 'dir /b/s e:\db_bk\*.bak' 

declare @filename varchar(500),@tsql varchar(6000)

select @filename=max(replace(replace(filenames,'e:\db_bk\',''),'.bak',''))+'.bak'
 from #t 
 where filenames is not null

select @tsql='restore database [数据库名] from disk=''e:\db_bk\'+@filename+''' with replace '

exec(@tsql)

drop table #t

[解决办法]
USE msdb
GO
SELECT physical_device_name
FROM   backupmediafamily
WHERE  media_set_id                 = (
           SELECT MAX(media_set_id)
           FROM   backupset
           WHERE  database_name     = 'data'
                  AND backupset.[type] = 'D'
       )


data是你的数据库名称
'D'是完全备份

再用上面的文件名还原数据库
[解决办法]
楼上给出脚本了,MSDB会纪录详细的备份信息,按照备份日期排序就找到最新备份文件了然后还原。还原的时候要先KILL掉之前的连接或者修改单用户访问

热点排行