Changing the recovery mode of a SQL Server database
You could be asking how you’d want to place a database into an undesirable state, such as Recovery Pending. In my scenario, I had a client database that had become inaccessible due to storage failure. Fortunately, this database was not in use in production, so I had some time to figure out how to fix the problem.
“Try Before You Pry” was a phrase I heard a lot throughout my time in the fire department. Is it necessary to kick in the house’s front door? I could open it and avoid damaging the door by attempting before prying (with my boot). This philosophy holds in various types of situations. It’s good to test things out on non-critical databases first to avoid further damage.
In this case, I’d like to give it a shot before forcing something that could be harmful. It meant I had to get a test database back up and running. Once it’s in the state, I want it to be. I can try various approaches to recover the database correctly.
Once a successful solution establishes, I may confidently pry against the broken database in production, knowing that I am using a proven solution.
DISCLAIMER: DO NOT USE A PRODUCTION SQL SERVER FOR THIS.
You sample notice.
DISCLAIMER: DO NOT USE A PRODUCTION SQL SERVER FOR THIS.
You give sample notice. Again.
How do you get a SQL Server database into a recovery pending state?
It is how I accomplished it:
- Click the “New Transaction” button to start a new transaction.
- Make a fresh table.
- Should stop SQL Server.
- The database log file should be renamed or deleted.
- Should restart SQL Server Service.
The database will be in recovery, waiting for the state when the SQL Server service restarts.
What is the reason for the database’s pending recovery?
The database will be put into a recovery pending condition when it tries to come back up since the log file is missing, but there was an ongoing transaction when shut the service down. SQL Server would proceed through the transaction log recovery phase under regular operations even with an open transaction. During the rollback phase of recovery, SQL Server will attempt to roll back and undo all available transactions at the time of restart. It is unable to do so since the log file no longer exists.
As a result, the database is now available for recovery. Because there was an open transaction, SQL Server could not get the database into a consistent state. It is pending recovery. The error log will look somewhat like this: SQL Server will regenerate the transaction log file if the database is shut down properly and the transaction log file is removed/renamed/etc.
Summary
It can sometimes be helpful to put a database in a specific state so you may test solutions before attempting to act in a Production environment. Just remember to give it a try before trying to pry it open. Being extra careful is not harmful because not doing so could worsen matters.
About Enteros
IT organizations routinely spend days and weeks troubleshooting production database performance issues across multitudes of critical business systems. Fast and reliable resolution of database performance problems by Enteros enables businesses to generate and save millions of direct revenue, minimize waste of employees’ productivity, reduce the number of licenses, servers, and cloud resources and maximize the productivity of the application, database, and IT operations teams.
The views expressed on this blog are those of the author and do not necessarily reflect the opinions of Enteros Inc. This blog may contain links to the content of third-party sites. By providing such links, Enteros Inc. does not adopt, guarantee, approve, or endorse the information, views, or products available on such sites.
Are you interested in writing for Enteros’ Blog? Please send us a pitch!
RELATED POSTS
Enteros: Revolutionizing Database Performance with AIOps, RevOps, and DevOps for the Insurance Sector
- 20 December 2024
- Database Performance Management
In the fast-evolving world of finance, where banking and insurance sectors rely on massive data streams for real-time decisions, efficient anomaly man…
Enteros: Transforming Database Software with Cloud FinOps for the Technology Sector
In the fast-evolving world of finance, where banking and insurance sectors rely on massive data streams for real-time decisions, efficient anomaly man…
Enhancing Enterprise Performance: Enteros Database Architecture and Cloud FinOps Solutions for the Healthcare Industry
- 19 December 2024
- Database Performance Management
In the fast-evolving world of finance, where banking and insurance sectors rely on massive data streams for real-time decisions, efficient anomaly man…
Revolutionizing Database Performance in the Financial Sector with Enteros: A Deep Dive into Cost Estimation and Optimization
In the fast-evolving world of finance, where banking and insurance sectors rely on massive data streams for real-time decisions, efficient anomaly man…