The database ‘model’ is marked RESTORING and is in a state that does not allow recovery to be run.Could not create tempdb. You may not have enough disk space available. Free additional disk space by deleting other files on the tempdb drive
The database ‘model’ is marked RESTORING and is in a state that does not allow recovery to be run.
Error: 927, Severity: 14, State: 2.
Database ‘model’ cannot be opened. It is in the middle of a restore.
Could not create tempdb. You may not have enough disk space available. Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. Check for additional errors in the event log that may indicate why the tempdb files could not be initialized.
We get above error if the Model database is corrupted. TempDB is recreated every time when SQLServer restarts using model database, We receive "Could not create tempdb" because model database is corrupted
1. Start SQLServer with Traceflag 3608,3609,-c,-f
-T3609 Will keep the existing TEMPDB, Which means when SQLServer is restarted SQLServer uses the existing tempdb instead of re-creating it as long as checkpoint in the tempdb had been done immediately before the last server shutdown
Sqlservr.exe -sInstanceName -T3608 -c -f -T3609
2. Open SQLCMD and make DAC connection
SQLCMD -E -SADMIN:Servername\InstanceName
3. Use Tempdb
Above command will open the TempDB. If you get error while executing "Use Tempdb" your tempdb is not cleanly shutdown.
To work around this copy a Tempdb.mdf and templog.ldf from Cleanly shutdown SQLServer of same version and replace it in TEMPDB location.
Also note Transaction log location is stored in Tempdb.mdf.So you may have to copy Tlog file in destination server in same directory structure as it existed source server .
Once you copy the file restart SQLServer using -T3608 -c -f -T3609 Then run
4. sp_detach_db ‘model
5. Replace model.mdf and model.ldf from different server of same build
5. sp_attach_db ‘model’,’X:\PAth\model.mdf’,’x:\modellog.ldf’
Note: If you are in SQLServer2008 we can use "create database with attach" optionCREATE DATABASE [model] ON( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.R2\MSSQL\DATA\model.mdf' ),( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.R2\MSSQL\DATA\modellog.ldf' )FOR ATTACHgo
Now we can start SQL Server normally and if you find any database in restoring state if can use RESTORE database DBNAME WITH RECOVERY to recover and open the database.
Thank You and Best Regards,