Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
A lekérdezésoptimalizálóval kapcsolatos teljesítményproblémák kivizsgálása érdekében létrehoz egy csak sémaalapú, írásvédett másolatot az adatbázisról DBCC CLONEDATABASE használatával.
Transact-SQL szintaxis konvenciói
Szintaxis
DBCC CLONEDATABASE
(
source_database_name
, target_database_name
)
[ WITH { [ NO_STATISTICS ] [ , NO_QUERYSTORE ] [ , VERIFY_CLONEDB | SERVICEBROKER ] [ , BACKUP_CLONEDB ] } ]
Érvek
source_database_name
A másolandó adatbázis neve.
target_database_name
Annak az adatbázisnak a neve, amelybe a forrásadatbázis át lesz másolva. Ezt az adatbázist a DBCC CLONEDATABASE hozza létre, és nem szabad még léteznie.
NO_STATISTICS
A következőkre vonatkozik: SQL Server 2014 (12.x) Service Pack 2 CU 3, SQL Server 2016 (13.x) Service Pack 1 és újabb verziók.
Megadja, hogy a tábla-/indexstatisztikákat ki kell-e zárni a klónból. Ha ez a beállítás nincs megadva, a rendszer automatikusan belefoglalja a táblázat-/indexstatisztikákat.
NO_QUERYSTORE
A következőkre vonatkozik: SQL Server 2016 (13.x) Service Pack 1 és újabb verziókra.
Megadja, hogy a lekérdezéstár adatait ki kell-e zárni a klónból. Ha ez a beállítás nincs megadva, a lekérdezéstár adatai a klónba lesznek másolva, ha a lekérdezéstár engedélyezve van a forrásadatbázisban.
VERIFY_CLONEDB
A következőkre vonatkozik: SQL Server 2014 (12.x) Service Pack 3, SQL Server 2016 (13.x) Service Pack 2, SQL Server 2017 (14.x) CU 8 és újabb verziók.
Ellenőrzi az új adatbázis konzisztenciáját. Az VERIFY_CLONEDB engedélyezése letiltja a statisztikákat és a lekérdezéstár gyűjteményét is, így egyenértékű a WITH VERIFY_CLONEDB, NO_STATISTICS, NO_QUERYSTOREfuttatásával.
A következő paranccsal állapítható meg, hogy a klónozott adatbázis ellenőrzése megtörtént-e:
SELECT DATABASEPROPERTYEX('clone_database_name', 'IsVerifiedClone');
SZOLGÁLTATÁSKÖZVETÍTŐ
A következőkre vonatkozik: SQL Server 2014 (12.x) Service Pack 3, SQL Server 2016 (13.x) Service Pack 2, SQL Server 2017 (14.x) CU 8 és újabb verziók.
Megadja, hogy a szolgáltatásközvetítővel kapcsolatos rendszerkatalógusok szerepeljenek-e a klónban. A SERVICEBROKER beállítás nem használható VERIFY_CLONEDBkombinálva.
BACKUP_CLONEDB
A következőkre vonatkozik: SQL Server 2014 (12.x) Service Pack 3, SQL Server 2016 (13.x) Service Pack 2, SQL Server 2017 (14.x) CU 8 és újabb verziók.
Létrehozza és ellenőrzi a klónadatbázis biztonsági másolatát. Ha a VERIFY_CLONEDBkombinálva használják, a rendszer a biztonsági mentés előtt ellenőrzi a klónadatbázist.
Megjegyzések
A DBCC CLONEDATABASE létrehozott adatbázis klónja csak hibaelhárítási és diagnosztikai célokra szolgál. A klón az eredeti adatbázis írásvédett, sémaalapú másolata, és korlátozásokkal rendelkezik arra, hogy mely objektumok legyenek átmásolva. További részletekért tekintse meg a támogatott objektumok szakaszt. A klónadatbázis egyéb használata nem támogatott.
Az alábbi ellenőrzéseket a DBCC CLONEDATABASEhajtja végre. A parancs meghiúsul, ha valamelyik ellenőrzés sikertelen.
- A forrásadatbázisnak felhasználói adatbázisnak kell lennie. A rendszeradatbázisok (
master,model,msdb,tempdb,distributionadatbázis stb.) klónozása nem engedélyezett. - A forrásadatbázisnak online vagy olvashatónak kell lennie.
- A klónadatbázis nevével megegyező nevű adatbázis nem létezhet.
- A parancs nincs felhasználói tranzakcióban.
Ha az összes ellenőrzés sikeres, a forrásadatbázis klónozását a következő műveletek hajtják végre:
- Létrehoz egy új céladatbázist, amely ugyanazt a fájlelrendezést használja, mint a forrás, de az alapértelmezett fájlméretet a
modeladatbázisból. - Belső pillanatképet hoz létre a forrásadatbázisról.
- Másolja a rendszer metaadatait a forrásból a céladatbázisba.
- Másolja az összes objektum sémáját a forrásból a céladatbázisba.
- A forrásból a céladatbázisba másol minden index statisztikáit.
A céladatbázis összes fájlja örökli a méret- és növekedési beállításokat a model adatbázistól. A céladatbázis fájlnevei a <source_file_name_underscore_random number> konvenciót követik. Ha a létrehozott fájlnév már létezik a célmappában, DBCC CLONEDATABASE sikertelen lesz.
DBCC CLONEDATABASE nem támogatja a klónok létrehozását, ha vannak olyan felhasználói objektumok (táblák, indexek, sémák, szerepkörök stb.), amelyek a model adatbázisban lettek létrehozva. Ha felhasználói objektumok találhatók az model adatbázisban, az adatbázis klónozása a következő hibaüzenettel meghiúsul:
Msg 2601, Level 14, State 1, Line 1
Cannot insert duplicate key row in object <system table> with unique index 'index name'. The duplicate key value is <key value>
Fontos
Ha oszlopcentrikus indexekkel rendelkezik, a parancs futtatása előtt tekintse meg DBCC CLONEDATABASE frissíteni az oszlopcentrikus indexstatisztikákat. Az SQL Server 2019-től kezdve (15.x) a fenti cikkben ismertetett manuális lépésekre már nincs szükség, mivel a DBCC CLONEDATABASE parancs automatikusan összegyűjti ezeket az információkat.
Oszlopcentrikus indexek statisztikai blobja
Az SQL Server 2019-től kezdve (15.x) DBCC CLONEDATABASE automatikusan rögzíti az oszlopcentrikus indexekhez tartozó statisztikai blobokat, így nincs szükség manuális lépésekre.
DBCC CLONEDATABASE létrehoz egy csak sémapéldányt tartalmazó adatbázist, amely tartalmazza a lekérdezési teljesítményproblémák elhárításához szükséges összes elemet az adatok másolása nélkül. Az SQL Server korábbi verzióiban a parancs nem másolja ki az oszlopcentrikus index-lekérdezések pontos hibaelhárításához szükséges statisztikákat, és manuális lépésekre volt szükség az információk rögzítéséhez.
A klónozott adatbázisok adatbiztonságával kapcsolatos információkért lásd: A klónozott adatbázisok adatbiztonságának ismertetése.
Belső adatbázis-pillanatkép
DBCC CLONEDATABASE a forrásadatbázis belső adatbázis-pillanatképét használja a másolat végrehajtásához szükséges tranzakciós konzisztencia érdekében. A pillanatkép használatával megelőzheti a parancsok végrehajtásakor fellépő blokkolási és egyidejűségi problémákat. Ha nem hozható létre pillanatkép, DBCC CLONEDATABASE sikertelen lesz.
Az adatbázisszintű zárolások a másolási folyamat következő lépései során vannak tárolva:
- A forrásadatbázis ellenőrzése
- Megosztott (S) zárolás lekérése a forrásadatbázishoz
- Pillanatkép létrehozása a forrásadatbázisról
- Klónadatbázis létrehozása (a
modeladatbázistól örökölt üres adatbázis) - Exkluzív (X) zárolás lekérése a klónadatbázishoz
- Metaadatok másolása a klónozott adatbázisba
- Az összes adatbázis-zárolás feloldása
Amint a parancs fut, a rendszer elveti a belső pillanatképet.
TRUSTWORTHY és DB_CHAINING beállítások klónozott adatbázison vannak kikapcsolva.
Támogatott objektumok
A céladatbázisban csak a következő objektumok klónozása végezhető el. A titkosított objektumok klónozhatók, de nem használhatóak a klónozott adatbázisban. Az alábbi szakaszban nem szereplő objektumok nem támogatottak a klónban:
- ALKALMAZÁSSZEREPKÖR
- RENDELKEZÉSRE ÁLLÁSI CSOPORT
- OSZLOPCENTRIKUS INDEX
- CDB
- CDC
- Változáskövetési 6, 7, 8
- CLR 1, 2
- ADATBÁZIS TULAJDONSÁGAI
- ALAPÉRTELMEZETT
- FÁJLOK ÉS FÁJLCSOPORTOK
- Teljes szöveges 3
- FUNKCIÓ
- Tartalomjegyzék
- BEJELENTKEZÉS
- PARTÍCIÓ FÜGGVÉNY
- PARTÍCIÓS SÉMA
- ELJÁRÁS 4
- LEKÉRDEZÉSI TÁROLÓ 2, 5
- SZEREP
- SZABÁLY
- SÉMA
- KÖVETKEZÉS
- TÉRBELI INDEX
- STATISZTIKA
- SZINONIMA
- 9. TÁBLÁZAT
- MEMÓRIAOPTIMALIZÁLT TÁBLÁK 2
- FILESTREAM ÉS FILETABLE OBJECTS 1, 2
- KIVÁLT
- TÍPUS
- FRISSÍTETT ADATBÁZIS
- FELHASZNÁLÓ
- NÉZET
- XML-INDEX
- XML-SÉMAGYŰJTEMÉNY
1 az SQL Server 2014 (12.x) Service Pack 2 CU 3-ban kezdődik.
2 az SQL Server 2016 (13.x) Service Pack 1 verziójában.
3 az SQL Server 2016 (13.x) Service Pack 1 CU 2-től kezdve.
4 Transact-SQL eljárás minden kiadásban támogatott, kezdve az SQL Server 2014 (12.x) Service Pack 2-vel. A CLR-eljárások az SQL Server 2014 (12.x) Service Pack 2 CU 3-tól kezdve támogatottak. A natívan lefordított eljárások az SQL Server 2016 (13.x) Service Pack 1-től kezdve támogatottak.
5 lekérdezéstár adatai csak akkor lesznek másolva, ha engedélyezve van a forrásadatbázisban. A legújabb futtatókörnyezeti statisztikák lekérdezéstár részeként történő másolásához hajtsa végre a sp_query_store_flush_db a futtatókörnyezet statisztikáinak a Lekérdezéstárba való kiürítéséhez, mielőtt végrehajtja DBCC CLONEDATABASE.
6 az SQL Server 2016 (13.x) Service Pack 2 CU 10-ben kezdődik.
7 az SQL Server 2017 (14.x) Service Pack 2 CU 17-től kezdve.
8 az SQL Server 2019 (15.x) CU 1 és újabb verzióiban.
9 A legtöbb is_ms_shipped megjelölt rendszertábla nincs klónozva.
Engedélyek
A sysadmin rögzített kiszolgálói szerepkör tagságát igényli.
Hibaüzenetek
Az alábbi üzenetek a hibanaplóban a klónozási folyamat során naplózott üzenetekre mutatnak példát:
2018-03-26 15:33:56.05 spid53 Database cloning for 'sourcedb' has started with target as 'sourcedb_clone'.
2018-03-26 15:33:56.46 spid53 Starting up database 'sourcedb_clone'.
2018-03-26 15:33:57.80 spid53 Setting database option TRUSTWORTHY to OFF for database 'sourcedb_clone'.
2018-03-26 15:33:57.80 spid53 Setting database option DB_CHAINING to OFF for database 'sourcedb_clone'.
2018-03-26 15:33:57.88 spid53 Starting up database 'sourcedb_clone'.
2018-03-26 15:33:57.91 spid53 Database 'sourcedb_clone' is a cloned database. A cloned database should be used for diagnostic purposes only and is not supported for use in a production environment.
2018-03-26 15:33:57.92 spid53 Database cloning for 'sourcedb' has finished. Cloned database is 'sourcedb_clone'.
Tudnivalók az SQL Server szervizcsomagjairól
A szervizcsomagok kumulatívak. Minden új szervizcsomag tartalmazza a korábbi szervizcsomagokban található összes javítást, valamint az új javításokat. Javasoljuk, hogy alkalmazza a legújabb szervizcsomagot és a szervizcsomag legújabb kumulatív frissítését. A legújabb szervizcsomag telepítése előtt nem kell telepítenie egy korábbi szervizcsomagot. Az SQL Server legújabb frissítéseinek és verzióelőzményeinek 1. táblázatában talál további információt a legújabb szervizcsomagról és a legújabb kumulatív frissítésről.
Jegyzet
A DBCC CLONEDATABASE-ből létrehozott újonnan létrehozott adatbázis nem használható éles adatbázisként, és elsősorban hibaelhárítási és diagnosztikai célokra szolgál. Javasoljuk, hogy az adatbázis létrehozása után válassza le a klónozott adatbázist.
Adatbázis tulajdonságai
DATABASEPROPERTYEX('dbname', 'IsClone') 1 értéket ad vissza, ha az adatbázis DBCC CLONEDATABASEhasználatával jött létre.
DATABASEPROPERTYEX('dbname', 'IsVerifiedClone') 1 értéket ad vissza, ha az adatbázist sikeresen ellenőrizték a következővel WITH VERIFY_CLONEDB: .
Példák
Egy. Séma, statisztika és lekérdezéstárat tartalmazó adatbázis klónjának létrehozása
Az alábbi példa létrehoz egy klónt a AdventureWorks2025 adatbázisból, amely sémákat, statisztikákat és lekérdezéstár-adatokat (SQL Server 2016 (13.x) Service Pack 1 és újabb verziót tartalmaz):
DBCC CLONEDATABASE (AdventureWorks2022, AdventureWorks_Clone);
GO
B. Adatbázis csak sémaalapú klónjának létrehozása statisztikák nélkül
Az alábbi példa létrehozza a AdventureWorks2025 adatbázis klónját, amely nem tartalmaz statisztikákat (SQL Server 2014 (12.x) Service Pack 2 CU 3 és újabb verziók):
DBCC CLONEDATABASE (AdventureWorks2022, AdventureWorks_Clone) WITH NO_STATISTICS;
GO
C. Adatbázis csak sémaalapú klónjának létrehozása statisztikák és lekérdezéstár nélkül
Az alábbi példa létrehozza a AdventureWorks2025 adatbázis klónját, amely nem tartalmaz statisztikákat és lekérdezéstár-adatokat (SQL Server 2016 (13.x) Service Pack 1 és újabb verziók):
DBCC CLONEDATABASE (AdventureWorks2022, AdventureWorks_Clone) WITH NO_STATISTICS, NO_QUERYSTORE;
GO
D. Ellenőrzött adatbázis klónjának létrehozása
Az alábbi példa létrehoz egy sémaalapú klónt a AdventureWorks2025 adatbázisból, amely nem tartalmaz statisztikai adatokat és a lekérdezéstárban ellenőrzött adatokat (SQL Server 2016 (13.x) Service Pack 2 és újabb verziók):
DBCC CLONEDATABASE (AdventureWorks2022, AdventureWorks_Clone) WITH VERIFY_CLONEDB;
GO
E. Olyan adatbázis klónjának létrehozása, amely igazoltan használható, és amely tartalmazza a klónozott adatbázis biztonsági másolatát
Az alábbi példa létrehoz egy sémaalapú klónt a AdventureWorks2025 adatbázisról statisztikák és a lekérdezéstár adatai nélkül, amelyeket a rendszer ellenőriz. Létrejön a klónozott adatbázis hitelesített biztonsági másolata is (SQL Server 2016 (13.x) Service Pack 2 és újabb verziók).
DBCC CLONEDATABASE (AdventureWorks2022, AdventureWorks_Clone) WITH VERIFY_CLONEDB, BACKUP_CLONEDB;
GO