ไม่มีวิธีระบุเครือข่ายสำรองข้อมูลบันทึกรายการ (โฟลเดอร์oк) เพื่อกู้คืนในสตูดิโอจัดการเซิร์ฟเวอร์ SQL
แต่คุณสามารถค้นหาข้อมูลทั้งหมดเกี่ยวกับการสำรองข้อมูล SQL Server ในฐานข้อมูล MSDB (ชุดแบ็คอัพตารางและอื่น ๆ ที่เกี่ยวข้อง)
นี่คือสคริปต์เพื่อสร้างคำสั่ง SQL Server สำหรับกู้คืนฐานข้อมูลจากการสำรองข้อมูลและใช้การสำรองข้อมูลบันทึกธุรกรรมทั้งหมดที่ดำเนินการจากการสำรองฐานข้อมูลเต็มรูปแบบล่าสุด ฉันคิดว่ามันจะช่วยคุณได้
DECLARE @databaseName sysname
DECLARE @backupStartDate datetime
DECLARE @backup_set_id_start INT
DECLARE @backup_set_id_end INT
-- set database to be used
SET @databaseName = '<your_database_name_here>'
SELECT @backup_set_id_start = MAX(backup_set_id)
FROM msdb.dbo.backupset
WHERE database_name = @databaseName AND type = 'D'
SELECT @backup_set_id_end = MIN(backup_set_id)
FROM msdb.dbo.backupset
WHERE database_name = @databaseName AND type = 'D'
AND backup_set_id > @backup_set_id_start
IF @backup_set_id_end IS NULL SET @backup_set_id_end = 999999999
SELECT backup_set_id, 'RESTORE DATABASE ' + @databaseName + ' FROM DISK = '''
+ mf.physical_device_name + ''' WITH NORECOVERY'
FROM msdb.dbo.backupset b,
msdb.dbo.backupmediafamily mf
WHERE b.media_set_id = mf.media_set_id
AND b.database_name = @databaseName
AND b.backup_set_id = @backup_set_id_start
UNION
SELECT backup_set_id, 'RESTORE LOG ' + @databaseName + ' FROM DISK = '''
+ mf.physical_device_name + ''' WITH NORECOVERY'
FROM msdb.dbo.backupset b,
msdb.dbo.backupmediafamily mf
WHERE b.media_set_id = mf.media_set_id
AND b.database_name = @databaseName
AND b.backup_set_id >= @backup_set_id_start AND b.backup_set_id < @backup_set_id_end
AND b.type = 'L'
UNION
SELECT 999999999 AS backup_set_id, 'RESTORE DATABASE ' + @databaseName + ' WITH RECOVERY'
ORDER BY backup_set_id