Restore SQL Server Database - failed: 38(Reached the end of the file.)
Looks like a corrupted or incomplete backup. See this post on msdn blogs http://social.msdn.microsoft.com/Forums/en/sqldisasterrecovery/thread/b57ae7c2-9f86-48e1-a356-ceb105181bf8
Summary of thread linked..
It appears that the backup file itself is corrupt, or the copy was incomplete.
Restore reached the end of the backup file before the database was fully restored.
Error restoring database backup
I have managed to do this from code. This was not enough
Restore bkp = new Restore();
bkp.PercentCompleteNotification = 1;
bkp.Action = RestoreActionType.Database;
bkp.Database = sDatabase;
bkp.ReplaceDatabase = true;
The RelocateFiles
property must be filled with the names and paths of the files to be relocated. For each file you must specify the name of the file and the new physical path. So what I did was looking at the PrimaryFilePath
of the database I was restoring to, and use that as the physical location. Something like this:
if (!string.IsNullOrEmpty(sDataFileName) && !File.Exists(sDataFileName))
{
if (originaldb != null)
{
if (string.Compare(Path.GetDirectoryName(sDataFileName), originaldb.PrimaryFilePath, true) != 0)
{
string sPhysicalDataFileName = Path.Combine(originaldb.PrimaryFilePath, sDatabase + ".MDF");
bkp.RelocateFiles.Add(new RelocateFile(sLogicalDataFileName, sPhysicalDataFileName));
}
}
}
Same for the log file.
SQL Server: Database stuck in Restoring state
You need to use the WITH RECOVERY
option, with your database RESTORE
command, to bring your database online as part of the restore process.
This is of course only if you do not intend to restore any transaction log backups, i.e. you only wish to restore a database backup and then be able to access the database.
Your command should look like this,
RESTORE DATABASE MyDatabase
FROM DISK = 'MyDatabase.bak'
WITH REPLACE,RECOVERY
You may have more sucess using the restore database wizard in SQL Server Management Studio. This way you can select the specific file locations, the overwrite option, and the WITH Recovery option.
SQL Server database restore error: specified cast is not valid. (SqlManagerUI)
The GUI can be fickle at times. The error you got when using T-SQL is because you're trying to overwrite an existing database, but did not specify to overwrite/replace the existing database. The following might work:
Use Master
Go
RESTORE DATABASE Publications
FROM DISK = 'C:\Publications_backup_2012_10_15_010004_5648316.bak'
WITH
MOVE 'Publications' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.mdf',--adjust path
MOVE 'Publications_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008R2\MSSQL\DATA\Publications.ldf'
, REPLACE -- Add REPLACE to specify the existing database which should be overwritten.
Database and log restoration job failed
We added ORDER BY clause to the RESTORE LOG dynamic query.
This made sure the correct restore log order will be used.
Related Topics
Correct Way to Take a Exclusive Lock
Oracle Pl/SQL Results into One String
Mysql: Searching Between Dates Stored as Varchar
Is the Semicolon Necessary in SQL
How to Create Foreign Keys Across Databases
Performance of Regexp_Replace VS Translate in Oracle
How Can SQL Create Duplicate Records
Inserting Default Value as Current Date + 30 Days in MySQL
Detecting Column Changes in a Postgres Update Trigger
SQL How to Search a Many to Many Relationship
Query on Datetime Fields with Milliseconds Gives Wrong Result in SQL Server
When Should You Consider Indexing Your SQL Tables
How to Use Dynamic Column Names in an Update or Select Statement in a Function