How to bring back a Database with Missing Filegroups

  • Hi all

    It's the middle of the night and I'm in a real pickle.

    Long story but I "had" a Database with 5 Filegroups which went missing (don't ask please). I managed to recover some of them (mdf, ldf and 2 ndf, 2 ndf still missing). I have a backup from last night however it would be quite a disaster if the company would loose a full day's work.

    I have tried to reattach a Database with the remaining Filegroups and a copy of older missing Filegroups but I get and error message regarding Primay complaining about the validity of the "copied" Filegroups.

    I have tried to create an empty Database with only 3 Filegroups and copy the Live ones that I have saved but to no avail.

    I have only 8 hours before the Business opens. Can someone help please?

    Cheers

    Ludo

  • hmm .. not done stuff like this for some time - it may be possible to restore the last full backup and then put back indivdual file groups and then roll forward the t-logs.

    I seem to remember partital restores with filegroups don't really quite work the way you imagine or hope they would.

    I also know there was some point about not using the primary filegroup for user objects. I was trying to have a system where data was partitioned by day onto a filegroup; you could then restore selected filegroups based upon which days data you might want to see - but it didn't quite work like that!

    I suspect backup and logs is your only way.

    You might want to try restoring a backup and then grab the filegroups which are missing to your system - but your data would be seriously at risk i suspect.

    [font="Comic Sans MS"]The GrumpyOldDBA[/font]
    www.grumpyolddba.co.uk
    http://sqlblogcasts.com/blogs/grumpyolddba/

  • Hi

    Thanks for replying.

    I managed to find a solution which is not documented anywhere as far as I could see.

    Here is my method assuming that you had initialy 5 filegroups and lost 2 but still have the Primary:

    - Create an empty database with 5 filegroups

    - Take offline the 2 filegroups you have missing

    - Replace the newly created filegroups the one you haven't lost

    As the missing filegroups are offline there is no complaint from the Primary filegroup however your database will become suspect. Mine did anyway.

    From there you have to run a set of commands:

    EXEC sp_resetstatus DBName

    GO

    ALTER DATABASE DBName SET EMERGENCY

    DBCC checkdb(DBName)

    ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE

    DBCC CheckDB (DBName, REPAIR_ALLOW_DATA_LOSS)

    ALTER DATABASE DBName SET MULTI_USER

    Your Database then becomes available and you can access your data as long as it wasn't part of the missing filegroups.

    In parallel I performed a restore of my latest backup and therefore only missed 1 day on "some" of my Tables.

    This worked for me anyway. 🙂

    Cheers

  • what you did above is the method of last resort if your database is corrupted and you have no backup. Well done on saving the day but in reality if your company cannot afford to lose a days data you need to be running tran log backups as well and perhaps differentials. As your ldf was intact you would have been able to recover right up to the minute with no data loss at all.

    So your priority should be to get those backups in place.

    Not having a go here just want to ensure you don't get into this situation again.

    regards

    george

    ---------------------------------------------------------------------

  • George

    We have backups running every night so I had a 1 day old one. The issue is that we didn't want to loose 1 day of business.

    Before the delete of the Database we took a netapp snapshot of the system to make we could get the files back if they were deleted. Unfortunately the snapshop only managed to recover 3 files out of 5.

    We were later told by the netapp gurus that the snapshots were not working properly with SQL Server 2008 R2. By this time it was a bit late.

    I therefore believe that we were not careless is our approach and this was just an unfortunate event.

    We're trying to improve our resilience all the time and we have learnt a lot following this incident. If anybody get themselves in such situation at least they have an option to try now.

    Being part of a small fast growing company is challenging and we do not have all the Servers, Disk Space, ... we would like to play with. We therefore do not have enough capacity to implement a solution with belt, braces and suspenders.

    Cheers

  • Well here's what I do that doesn't require a lot of space. I take daily full and then 15 minute trans.

    The full is 20 GB but the logs are around 100-200 mb / day.

    So assuming the same ratios at your company you could at least take a full on sunday and then logs every 15 minutes (to a different disk subsystem). So if a tragedy like this happens you just restore the full up + logs to the point in time of the disaster. Takes the time to restore but you don't lose 1 day of data.

    I have a script that reads from the HDS to regenerate the restore script to a point in time. I chose this option in case the disaster also wipes out msdb. If msdb is still fine then just use the gui and you'll be restoring in no time flat.

    In the event you lose every file of the prod db, you can recover from backups and the worst you'd lose here is 15 minutes (you can bring that down to 5 minutes if you want). If you need more than that then you need to consider HA solution which ain't cheap...

  • Before the delete of the Database we took a netapp snapshot of the system to make we could get the files back if they were deleted. Unfortunately the snapshot only managed to recover 3 files out of 5.

    you deleted your database?

    We were later told by the netapp gurus that the snapshots were not working properly with SQL Server 2008 R2. By this time it was a bit late.

    I therefore believe that we were not careless is our approach and this was just an unfortunate event.

    I agree you were not careless but unfortunate. The lesson to be learnt though is implement log backups and don't rely on netapp, a backup is no good if you cannot restore from it.

    If you can afford netapp you can afford disk space for log backups. 🙂

    ---------------------------------------------------------------------

  • George

    It's a long story of having to keep old huge Databases and going Live on a new one so a lot of the disks were used. This exercise was to go from Sata disks to fast disks and free some space so we could properly implement netapp.

    Ooops!

    Today we have a session on lessons learn and I have a lot of things to bring to the table as you can imagine. It's amazing the amount of stuff you have to learn when you're under pressure. 🙂

    Ninja

    I would be interested to see the scripts.

    If I understand correctly this solution relies on a full backup which will need to be restored then each snapshot replayed to bring it up to date with the latest changes?

    Thanks to both of you for your replies and I will investigate all the different pointers you have posted.

    Have a nice day!!

    Ludo

  • Ludo-TRX850 (6/6/2011)


    George

    It's a long story of having to keep old huge Databases and going Live on a new one so a lot of the disks were used. This exercise was to go from Sata disks to fast disks and free some space so we could properly implement netapp.

    Ooops!

    Today we have a session on lessons learn and I have a lot of things to bring to the table as you can imagine. It's amazing the amount of stuff you have to learn when you're under pressure. 🙂

    Ninja

    I would be interested to see the scripts.

    If I understand correctly this solution relies on a full backup which will need to be restored then each snapshot replayed to bring it up to date with the latest changes?

    Thanks to both of you for your replies and I will investigate all the different pointers you have posted.

    Have a nice day!!

    Ludo

    Assuming you take regular log backups you can go to the restore database wizard and put a date / time to stop the restore.

    See the script that it generates to give you a ballpark idea of what it does.

    My script works alongside the backup jobs so I'm not 100% sure you'll be able to use them!

  • Hi

    Thanks for the info. I will have a look at what is generated and see if we can implement a solution around it.

    Cheers

    Ludo

  • Here's the script and sample output.

    SET IMPLICIT_TRANSACTIONS ON

    SET DATEFORMAT YMD

    SET STATISTICS IO OFF

    SET NOCOUNT ON

    --------Instructions----------

    -- SET datetime of restore

    -- You can exclude full backup file if they are corrupted at the line "Backup exclude list". Uncomment the line and enter the full filename to exclude

    -- set query output to text

    -- execute the script

    -- copy / paste the result of the query to a new ssms window

    -- The script is generated so that you can't accidentally erase the prod DB

    -- To erase the prod DB : Erase or comment the line that starts with : , MOVE N'PROD-FOR

    -- Then do a search / replace ([PROD-FORDIA_test_restore] >>>> [PROD-FORDIA]

    -- Execute the script

    --------Instructions----------

    --What date / time to restore the db to?

    DECLARE @pit AS DATETIME

    SET @pit = '2011-06-04 21:11:11.123'

    IF OBJECT_ID('tempdb..#out') > 0 DROP TABLE #out

    IF OBJECT_ID('tempdb..#cmds') > 0 DROP TABLE #cmds

    CREATE TABLE #out (t VARCHAR(500) NULL, dt DATETIME NULL, TYPE CHAR(1))

    INSERT INTO #out (t)

    EXEC xp_cmdshell 'dir / B /OD Q:\*FORDIA*.bak'

    DELETE t FROM #out t WHERE t.t NOT LIKE '%.bak' OR t IS NULL

    --Full Backup exclude list (can't ignore log backups without another full or diff'

    --OR t IN ('PROD-FORDIA-FULL 2011-05-03 05H00.bak', 'PROD-FORDIA-FULL 2011-05-04 05H00.bak')

    UPDATE #out SET t = 'Q:\' + t, dt = REPLACE(LEFT(RIGHT(t, 20), 16), 'H', ':'), TYPE = CASE WHEN LOWER(t) LIKE '%full%' THEN 'D' ELSE 'L' END

    DECLARE @Exec VARCHAR(8000)

    SET @Exec = NULL

    ;

    WITH CTE_BK (t, dt, TYPE)

    AS

    (

    SELECT TOP 1 t, dt, TYPE FROM #out WHERE [TYPE] = 'D' AND dt <= @pit

    ORDER BY dt DESC

    )

    SELECT --t, dt, TYPE ,

    CASE dtRestore_seq.[TYPE]

    WHEN 'D' THEN 'PRINT ''

    Restoring...' + t + '''

    RESTORE DATABASE [PROD-FORDIA_test_restore] FROM DISK = N''' + t + ''' WITH FILE = 1

    , MOVE N''PROD-FORDIA_Data'' TO N''Q:\Test restore\PROD-FORDIA_test_restore.mdf'', MOVE N''PROD-FORDIA_Log'' TO N''Q:\Test restore\PROD-FORDIA_test_restore_1.ldf'', MOVE N''PROD-FORDIA_1_Data'' TO N''Q:\Test restore\PROD-FORDIA_test_restore_2.ndf''

    , NORECOVERY, STATS = 10'

    WHEN 'L' THEN 'PRINT ''

    Restoring...' + t + '''

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N''' + t + ''' WITH FILE = 1, NORECOVERY, STATS = 25

    '

    WHEN 'STOP_AT' THEN 'PRINT ''

    Restoring...' + t + '''

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N''' + t + ''' WITH FILE = 1, STATS = 10, STOPAT = N''' + CONVERT(VARCHAR(100), @pit, 126) + ''''

    WHEN 'MissLogs' THEN 'PRINT ''

    STOP_AT later than last log file... recovering database...''

    RESTORE DATABASE [PROD-FORDIA_test_restore] WITH RECOVERY

    '

    ELSE NULL

    END AS [--cmd] --self commenting line in copy/paste

    FROM (

    SELECT t, dt, TYPE FROM CTE_BK

    UNION ALL

    SELECT t, dt, TYPE FROM #out WHERE TYPE = 'L' AND dt > (SELECT dt FROM CTE_BK) AND dt <= @pit

    UNION ALL

    SELECT TOP 1 t, dt, 'STOP_AT' AS TYPE FROM #out WHERE TYPE = 'L' AND dt > @pit AND EXISTS (SELECT * FROM CTE_BK) ORDER BY dt

    UNION ALL

    SELECT NULL, '9999-12-31', 'MissLogs' AS TYPE WHERE NOT EXISTS (SELECT TOP 1 t, dt, 'STOP_AT' AS TYPE FROM #out WHERE TYPE = 'L' AND dt > @pit AND EXISTS (SELECT * FROM CTE_BK) ORDER BY dt)

    ) dtRestore_seq

    ORDER BY dt

    IF OBJECT_ID('tempdb..#out') > 0 DROP TABLE #out

    IF OBJECT_ID('tempdb..#cmds') > 0 DROP TABLE #cmds

    ROLLBACK

    --cmd

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    PRINT '

    Restoring...Q:\PROD-FORDIA-FULL 2011-06-04 05H00.bak'

    RESTORE DATABASE [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-FULL 2011-06-04 05H00.bak' WITH FILE = 1

    , MOVE N'PROD-FORDIA_Data' TO N'Q:\Test restore\PROD-FORDIA_test_restore.mdf', MOVE N'PROD-FORDIA_Log' TO N'Q:\Test restore\PROD-FORDIA_test_restore_1.ldf', MOVE N'PROD-FORDIA_1_Data' TO N'Q:\Test restore\PROD-FORDIA_test_restore_2.ndf'

    , NORECOVERY, STATS = 10

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 05H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 05H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 05H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 05H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 05H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 05H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 06H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 06H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 06H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 06H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 06H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 06H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 06H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 06H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 07H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 07H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 07H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 07H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 07H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 07H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 07H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 07H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 08H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 08H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 08H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 08H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 08H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 08H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 08H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 08H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 09H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 09H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 09H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 09H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 09H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 09H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 09H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 09H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 10H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 10H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 10H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 10H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 10H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 10H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 10H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 10H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 11H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 11H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 11H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 11H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 11H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 11H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 11H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 11H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 12H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 12H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 12H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 12H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 12H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 12H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 12H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 12H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 13H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 13H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 13H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 13H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 13H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 13H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 13H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 13H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 14H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 14H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 14H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 14H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 14H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 14H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 14H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 14H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 15H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 15H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 15H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 15H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 15H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 15H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 15H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 15H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 16H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 16H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 16H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 16H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 16H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 16H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 16H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 16H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 17H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 17H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 17H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 17H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 17H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 17H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 17H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 17H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 18H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 18H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 18H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 18H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 18H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 18H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 18H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 18H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 19H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 19H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 19H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 19H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 19H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 19H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 19H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 19H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 20H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 20H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 20H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 20H15.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 20H30.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 20H30.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 20H45.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 20H45.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 21H00.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 21H00.bak' WITH FILE = 1, NORECOVERY, STATS = 25

    PRINT '

    Restoring...Q:\PROD-FORDIA-TransactionLogs 2011-06-04 21H15.bak'

    RESTORE LOG [PROD-FORDIA_test_restore] FROM DISK = N'Q:\PROD-FORDIA-TransactionLogs 2011-06-04 21H15.bak' WITH FILE = 1, STATS = 10, STOPAT = N'2011-06-04T21:11:11.123'

  • Smashing thanks!

    Ludo

Viewing 13 posts - 1 through 12 (of 12 total)

You must be logged in to reply to this topic. Login to reply