1

私はSQLServer/T-SQLを使用して以下を行っています:

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

ただし、バックアップファイルのファイル名(日付を表す)の番号を無視するファイルの場所を使用できるようにしたいと思います。存在するのは1つだけです'MY_LIVE_****.bak'が、その数字列は毎日変更されます。

目標は、最新のバックアップを使用して、毎週ライブからUATインスタンスを復元することです。このバックアップには、その文字列プレフィックスに一致するファイルのみが含まれますが、番号/日付は毎週変更されます。

4

2 に答える 2

1

ファイルのディレクトリを作成するために使用できxp_cmdshellます。ただし、これxp_cmdshellは通常、正当な理由で無効になっていることに注意してください。これがUATであることを考えると、それは問題ではないかもしれません。

詳細については、こちらをご覧くださいhttp://www.sqlusa.com/bestpractices2005/dir/

于 2012-08-08T11:17:19.517 に答える
0
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
于 2012-08-08T12:16:57.737 に答える