Error trying to Restore DB & Move files with NORECOVERY
arvind_rao@hotmail.com
Posts: 8
Hi, I am trying make a copy our Production DB from a backup & running into issues described below
Basically I am trying to
1. Restore the MyDB as the MyDB2 with NORECOVERY & also move/replace the data/log logical files
2. Restore the Log Files (backed up hourly) with NORECOVERY
3. Restore the MyDB2 with RECOVERY & finalize it
The issue we are running is that
1. We can restore the DB ONLY with REPLACE option, but that means we cannot restore the Logs incrementally as the db is allready recovered
2. Unable to restore the DB using the NORECOVERY option and get "The tail of the log for the database "PT" has not been backed up." error (not sure is there is something wrong with the backup OR its because we're trying to restore to a new DB (other than the one it was backed up))
Command to restore the db & restore the mdf/ldf files + move an extra file -
EXECUTE master..sqlbackup '-SQL "RESTORE DATABASE [MyDB2] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\FULL_(local)_MyDB_20130110_000102.sqb' WITH NORECOVERY, MOVE N'MyDB_Data' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.QA\MSSQL\Data\MyDB2.mdf', MOVE N'MyDB_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.QA\MSSQL\Data\MyDB2.ldf' "'
SQL error 3013: SQL error 3013: RESTORE DATABASE is terminating abnormally.
SQL error 3159: SQL error 3159: The tail of the log for the database "MyDB2" has not been backed up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the
RESTORE statement to just overwrite the contents of the log.
On trying to restore the logs, I am getting
EXECUTE master..sqlbackup '-SQL "RESTORE LOG MyDB2 FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\LOG_(local)_MyDB_20130109_180201.sqb' WITH NORECOVERY" '
SQL error 3013: SQL error 3013: RESTORE LOG is terminating abnormally.
SQL error 3117: SQL error 3117: The log or differential backup cannot be restored because no files are ready to rollforward.
Any ideas?
(Disclaimer : I am not a DBA & have limited database knowledge)
Basically I am trying to
1. Restore the MyDB as the MyDB2 with NORECOVERY & also move/replace the data/log logical files
2. Restore the Log Files (backed up hourly) with NORECOVERY
3. Restore the MyDB2 with RECOVERY & finalize it
The issue we are running is that
1. We can restore the DB ONLY with REPLACE option, but that means we cannot restore the Logs incrementally as the db is allready recovered
2. Unable to restore the DB using the NORECOVERY option and get "The tail of the log for the database "PT" has not been backed up." error (not sure is there is something wrong with the backup OR its because we're trying to restore to a new DB (other than the one it was backed up))
Command to restore the db & restore the mdf/ldf files + move an extra file -
EXECUTE master..sqlbackup '-SQL "RESTORE DATABASE [MyDB2] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\FULL_(local)_MyDB_20130110_000102.sqb' WITH NORECOVERY, MOVE N'MyDB_Data' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.QA\MSSQL\Data\MyDB2.mdf', MOVE N'MyDB_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.QA\MSSQL\Data\MyDB2.ldf' "'
SQL error 3013: SQL error 3013: RESTORE DATABASE is terminating abnormally.
SQL error 3159: SQL error 3159: The tail of the log for the database "MyDB2" has not been backed up. Use BACKUP LOG WITH NORECOVERY to backup the log if it contains work you do not want to lose. Use the WITH REPLACE or WITH STOPAT clause of the
RESTORE statement to just overwrite the contents of the log.
On trying to restore the logs, I am getting
EXECUTE master..sqlbackup '-SQL "RESTORE LOG MyDB2 FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\LOG_(local)_MyDB_20130109_180201.sqb' WITH NORECOVERY" '
SQL error 3013: SQL error 3013: RESTORE LOG is terminating abnormally.
SQL error 3117: SQL error 3117: The log or differential backup cannot be restored because no files are ready to rollforward.
Any ideas?
(Disclaimer : I am not a DBA & have limited database knowledge)
Comments
The other option is to take a log backup of MyDB2 before you try and replace it.
HTH
Chris
I had tried replacing the db earlier, using
and although that ran fine, when I try to restore log files I get I am not sure the issue is related so as I am trying to restore the log to a different DB (than original) OR cos the db is already closed/recovered as I used the REPLACE option
Any thoughts?
Chris
-SQL "BACKUP LOGS [MyDB2] TO DISK = N'C:\Temp\Log\<AUTO>' " [SQLSTATE 01000]
-SQL "RESTORE DATABASE [MyDB2] FROM DISK = N'....sqb' WITH MOVE N'MyDB_Data' TO N'...MyDB2.mdf', MOVE N'MyDB_Log' TO N'..MyDB2.ldf', , NORECOVERY " [SQLSTATE 01000]
RESTORE LOG MyDB2 FROM DISK = '....sqb' WITH NORECOVERY [SQLSTATE 01000]
Msg 3241, Sev 16, State 1, Line 1 : The media family on device '...sqb' is incorrectly formed. SQL Server cannot process this media family. [SQLSTATE 42000]
Msg 3013, Sev 16, State 1, Line 1 : RESTORE LOG is terminating abnormally. [SQLSTATE 42000]
Chris
http://www.red-gate.com/supportcenter/C ... egs#o15223
will try with LOG now & see
Thanks for your help
Chris
-SQL "BACKUP LOG [MyDB2] TO DISK = N'C:\Temp\Log\DB2_FULL.log' " [SQLSTATE 01000]
If MyDB2 seems recovered then run DBCC CHECKDB with PHYSICAL_ONLY then try using the GUI to take a LOG backup to see that you have the permissions correct.
Chris
These should all be running with the account that runs SQLBackup so it doesn't look like a permissions issue.
I am leaving now so I look forward to reading this thread on Monday.
Chris
Ran it with "EXECUTE master..sqlbackup" & it works. Still had to backup the log before I tried to restore the db.
Chris thanks for your help.
Chris