Wanneer een kloon van de database is gemaakt met behulp van DBCC CLONEDATABASE, het zal een schema en een statistische kopie van de opgegeven database maken en bevat geen enkele kopie van de gegevens.
Het maken van de kloon is net zo eenvoudig als het doorgeven van de bron databasenaam en kloon databasenaam naar de DBCC-opdracht.
DBCC CLONEDATABASE ('SansSQL', 'SansSQL_Clone')
Uitvoer van het DBCC-commando
Zodra het klonen is voltooid, bevindt de gekloonde database zich in de modus Alleen-lezen.
SELECT name, database_id, is_read_only FROM sys.databases WHERE name in ('SansSQL', 'SansSQL_Clone')
Dus wat gebeurt er eigenlijk als we het DBCC CLONEDATABASE-commando op een database geven?
Het begint met enkele validaties voordat de kloon wordt gemaakt, De volgende validaties worden uitgevoerd door DBCC CLONEDATABASE. De opdracht mislukt als een van de validaties mislukt.
- De brondatabase moet een gebruikersdatabase zijn. Het klonen van systeemdatabases (master, model, msdb, tempdb, distributiedatabase enz.) is niet toegestaan.
- De brondatabase moet online of leesbaar zijn.
- Een database die dezelfde naam gebruikt als de kloondatabase mag nog niet bestaan.
- De opdracht zit niet in een gebruikerstransactie.
- Primair gegevensbestand en logbestand maken
- Secundaire dataruimten toevoegen
- Secundaire bestanden toevoegen
SELECT database_id, file_id, type_desc, name, physical_name FROM sys.master_files WHERE DB_NAME(database_id) in ('SansSQL', 'SansSQL_Clone')
Vervolgens zal de DBCC CLONEDATABASE een interne database-snapshot maken met de volgende stappen
- Valideer de brondatabase
- Slock ophalen voor de brondatabase
- Snapshot maken van de brondatabase
- Maak een kloondatabase aan (dit is een lege database die van het model erft)
- Verkrijg X lock voor de kloondatabase
- Kopieer de metadata naar de kloondatabase
- Alle DB-vergrendelingen vrijgeven
SELECT DATABASEPROPERTYEX('SansSQL','isClone') AS SansSQL_DB_CloneStatus ,DATABASEPROPERTYEX('SansSQL_Clone','isClone') AS SansSQL_CloneDB_CloneStatus
Referentie:https://support.microsoft.com/en-in/kb/3177838