Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Alternatives to snapshot functionality, SQL Server Standard

For testing purposes I would like to reset a complete database to a certain state (data and structure). I would like to do this automated. Preferably a command line instruction before I start my tests.

After some searching I discovered that SQL Server offers an great solution for this. Snapshots. After writing a test query I discovered that the standard edition of SQL Server does NOT support this. :-(

Given the fact that I want this to be automated: what are my options? Overwriting the data files immediately doesn't sound like a good option to me...

Some other information:

  • Windows 7
  • Microsoft SQL Server Standard Edition (64-bit), 10.50.1600.1
  • Database size is app. 1 gigabyte
  • This is only meant for testing. So the database is NOT used by other users when I'm returning to my 'snapshot'.
  • More information about snapshots:
    • http://msdn.microsoft.com/en-us/library/ms190677.aspx
    • This page also states that the standard edition does not support this. :-(

Thank you in advance!

like image 277
Sunib Avatar asked Mar 14 '11 14:03

Sunib


People also ask

Is CDC available in SQL Server Standard Edition?

Web, Express and Standard editions of SQL Server do not support this functionality. You need to enable CDC at database level AND at the table level for all tables that need to be tracked. You need to start the SQL Server Agent. Change Data Capture Types and CDC Automation.

What is the difference between the first DB snapshot and subsequent snapshots?

The first snapshot of a DB instance contains the data for the full DB instance. Subsequent snapshots of the same DB instance are incremental, which means that only the data that has changed after your most recent snapshot is saved.

Can you snapshot a SQL Server?

The only way to create a SQL Server database snapshot is to use Transact-SQL. SQL Server Management Studio does not support the creation of database snapshots.

What is difference between database snapshot and backup?

1. Backup can be stored in another location, same server, or even on the same drive in this case. Snapshots can be stored only in the same location where original data is present.


2 Answers

Detach the MDF file, copy it somewhere, re-attach it.

When you want to reset the database, detatch the MDF, copy the old one over the top, and re-attach it.

Alternatively backup and restore.

like image 72
Ben Avatar answered Sep 19 '22 17:09

Ben


I homebrewed a solution like this because I wasn't happy with the way replication was running (and I was also using standard edition) - maybe my solution will lead you in the right direction:

http://trycatchfinally.net/2009/09/moving-a-sql-server-database-to-another-server-on-a-schedule-without-using-replication/

Basically, it takes a periodic backup, zips it, FTPs it somewhere, and the remote server checks for new files, extracts them, restores them, and then emails you to let you know a new replica has been restored.

like image 30
SqlRyan Avatar answered Sep 20 '22 17:09

SqlRyan