BUG: Cannot Restore Database When Model Database Is in Use

BUG #: 49934 (SQLBUG_70)


Restoring a database while another process is using the model database may cause the restore to fail, with the following error message:
SQL-DMO Error: Could not obtain exclusive lock on database Model
In other words, if the connection doing a RESTORE DATABASE statement cannot get an exclusive lock on the model database, the restore may fail.


Due to the way the the RESTORE statement works in SQL Server 7.0, the SQL Server must have an exclusive lock on the model database to assign a new dbid to the database being restored. Therefore, if there is another connection using the model database at the time of the restore, the exclusive lock is denied, so the restore fails.


To work around this problem, use the sp_who stored procedure to determine whether there are any processes holding locks in the model database before doing a restore. If so, wait until the process finishes before attempting the restore.


Microsoft has confirmed this to be a problem in SQL Server version 7.0.

Id. de artículo: 199216 - Última revisión: 06/16/2008 - Revisión: 1