簡體   English   中英

從備份文件還原數據庫,其中文件名與reg表達式匹配

[英]Restore database from backup file, where file name matches reg expression

我正在使用SQL Server / T-SQL執行以下操作:

RESTORE DATABASE UAT
FROM DISK = 'E:\Databases\backup\MY_LIVE_20120720_070001.bak'
WITH REPLACE

但是我希望能夠使用一個文件位置,該位置忽略備份文件中文件名中的數字(代表日期)。 只會有一個'MY_LIVE_****.bak'但其數字字符串每天都會更改。

我們的目標是每周使用最新的備份從我的UAT實例恢復活動-其中只有與該字符串前綴匹配的文件,但是編號/日期每周都會更改。

您可以使用xp_cmdshell為文件創建目錄。 但是請注意,出於充分原因,通常禁用xp_cmdshell 鑒於這是UAT,這可能不是問題。

有關更多信息,請參見此處http://www.sqlusa.com/bestpractices2005/dir/

ALTER DATABASE UAT
SET SINGLE_USER WITH
 ROLLBACK IMMEDIATE

declare @fileName varchar(56);

SELECT @filename = physical_device_name
FROM msdb.dbo.backupmediafamily
WHERE media_set_id =(
    SELECT TOP 1 media_set_id 
    FROM msdb.dbo.backupset 
    WHERE database_name='MY_LIVE' 
    ORDER BY backup_start_date DESC)

ALTER DATABASE UAT
SET SINGLE_USER WITH
 ROLLBACK IMMEDIATE

----Restore Database
RESTORE DATABASE UAT
FROM DISK = @fileName
WITH REPLACE

/*If there is no error in statement before database will be in multiuser
 mode.
 If error occurs please execute following command it will convert
 database in multi user.*/
ALTER DATABASE ASLA_DEV SET MULTI_USER
 GO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM