Wednesday, April 06, 2011

Database Snapshot erstellen

Ein Snapshot (Read only Kopie eines Datenbankstandes) kann nicht aus dem SSMS per Menü erstellt werden sondern nur über TSQL:

CREATE DATABASE SnapshotDbName ON
( NAME = originalDbFileNameLogisch, FILENAME = 'Pfad zu neu zu erstellender Snapshot Datei' )
AS SNAPSHOT OF OrignialDbName;
GO

beim erstellen des Snapshots ist der logische Filename nicht frei wählbar, sondern der logische Name des Datenfiles in der Original Db,sonst erhält man:

Msg 5014, Level 16, State 3, Line 1
The file 'TestSS20110404_Data' does not exist in database 'Test'.

Wichtig: die Original Datenbank darf nicht im No Recovery Mode sein sonst erhält man:
Msg 1822, Level 16, State 1, Line 1
The database must be online to have a database snapshot.

z.b.:
CREATE DATABASE TestSS20110406 ON
( NAME = Test, FILENAME = 'E:\SqlDbs\TestSS20110406.ss' )
AS SNAPSHOT OF Test;
GO

erstellt unter Datenbanken\Snapshots eine readonly Kopie der Datenbank Test, die nur ein physikalisches Datenfile mit logischem Namen Test hat (siehe DatenbankProperties\Files)

No comments: