Friday, February 10, 2017

DB Suspect Mode --- Database cannot be started in this edition of SQL Server

Recently we have faced a issue with a Database.

We have got a requirement for installing SQL Server 2012 standard edition, but customer updated that they will provide the standard edition license key afterwards. So we have installed a SQL Server 2012 evaluation edition on one of the servers, then we asked application team to proceed with their application setup and they can use this evaluation edition for their database setup. Application team has setup their application and started using the DB on this instance for their application.
Meanwhile we have received the standard edition license key. So we have applied it on the evaluation edition. Once after applying the license key application DB went into suspect mode. When I have checked it in error log found below type error

"Database cannot be started in this edition of SQL Server because part or all of object is enabled with data compression or vardecimal storage format. Data compression and vardecimal storage format are only supported on SQL Server Enterprise Edition."

When we checked application prerequisite notes it mentioned then it required SQL Server enterprise edition and it uses data compression.

Evaluation edition supports all features of Enterprise edition so application team did not faced any issues while setting up the application. Once after applying the standard edition license key database went into suspect mode by saying current edition of SQL Serevr(here stanadard edition) did not support the data compression.

After searching for some time found one solution for this issue.

Along with this instance we had 2 more instances which were still having evaluation edition. So I have moved the database to another server which has evaluation edition using detach and attach method. Then removed the data compression feature using below command and moved this database back to original server using backup and restore, which made the database online

ALTER INDEX ALL ON <TABLE NAME> REBUILD WITH (DATA_COMPRESSION = None);