KB3177838-ako používať DBCC CLONEDATABASE na vytvorenie schémy a štatistiky iba kópie používateľskej databázy na serveri SQL Server

Súhrn

Táto aktualizácia obsahuje nový príkaz riadenia DBCC CLONEDATABASE (TRANSACT-SQL) v sql server 2017 vo Windowse, Service Pack 4 pre SQL Server 2012,Microsoft SQL Server 2014 Service pack 2 a SQL Server 2016 SP1. Tento príkaz vytvorí novú databázu obsahujúcu schému všetkých objektov a štatistík zo zadanej zdrojovej databázy. 

Poznámka: V prostrediach SQL Server 2014 je nutné nainštalovať Kumulatívna aktualizácia 3 pre SQL Server 2014 SP2 , aby ste získali možnosť klonovania, súborov a objektov spoločného jazyka RUNTIME (CLR) a klonovania s NO_STATISTICSmi možnosťami pomocou príkazu DBCC.

Informácie o balíkoch Service Pack pre SQL Server

 

Balíky Service Pack sú kumulatívne. Každý nový balík Service Pack obsahuje všetky opravy, ktoré sa nachádzajú v predchádzajúcich balíkoch Service Pack, spolu s novými opravami. Naším odporúčaním je použiť najnovší balík Service Pack a najnovšiu Kumulatívna aktualizácia pre daný balík Service Pack. Skôr než nainštalujete najnovší balík Service Pack, nemusíte nainštalovať predchádzajúci balík Service Pack. Na vyhľadanie ďalších informácií o najnovšom balíku Service Pack a najnovšej kumulatívnej aktualizácii použite tabuľku 1 v nasledujúcom článku.

Určenie verzie, vydania a aktualizácie servera SQL Server a jeho súčastí

Informácie o DBCC CLONEDATABASE

Služby technickej podpory spoločnosti Microsoft môžu požiadať o vytvorenie klonu databázy pomocou DBCC CLONEDATABASE s cieľom zistiť problém s výkonom súvisiaci s optimalizáciu dotazu.Poznámka: Novovytvorená databáza vytvorená z DBCC CLONEDATABASE nie je podporovaná na používanie ako výrobná databáza a je určená predovšetkým na riešenie problémov a diagnostiku. Po vytvorení databázy odporúčame odpojiť klonovanú databázu. Klonovania zdrojovej databázy vykonávajú tieto operácie:

  • Vytvorí novú cieľovú databázu, ktorá používa rovnaké rozloženie súboru ako zdroj, ale s predvolenými veľkosťami súborov ako databázou modelu.

  • Vytvorí internú snímku zdrojovej databázy.

  • Skopíruje systémové metaúdaje zo zdroja do cieľovej databázy.

  • Skopíruje celú schému pre všetky objekty zo zdroja do cieľovej databázy.

  • Kopíruje štatistiku všetkých indexov zo zdroja do cieľovej databázy.

Syntax

DBCC CLONEDATABASE (source_database_name, target_database_name)[WITH [NO_STATISTICS][,NO_QUERYSTORE]] 

Argumenty

  • source_database_nameTento argument je názov databázy, ktorej schému a štatistiku je potrebné skopírovať.

  • target_database_nameTento argument je názov databázy, do ktorej sa skopíruje schéma a štatistiky z zdrojovej databázy. Táto databáza sa vytvorí pomocou príkazu DBCC CLONEDATABASE a nemal by už existovať.

  • NO_STATISTICSTento argument špecifikuje, či je potrebné vylúčiť štatistiku tabuľky/indexu v Clone. Ak táto možnosť nie je určená, štatistiky tabuľky alebo indexu sa automaticky zahrnú. Táto možnosť je k dispozícii od SQL servera 2014 SP2 CU3 a SQL Server 2016 Service Pack 1.

  • NO_QUERYSTORETento argument špecifikuje, či je v Clone potrebné vylúčiť ukladací priestor dotazov. Ak táto možnosť nie je určená, údaje v ukladacom priestore dotazu sa skopírujú do klonu, ak sú povolené v zdrojovej databáze. Táto možnosť je k dispozícii od SQL servera 2016 Service Pack 1.

Kedy používať DBCC CLONEDATABASE?

Príkaz DBCC CLONEDATABASE by sa mal použiť na vytvorenie schémy a štatistiky iba kópie výrobnej databázy, aby bolo možné preskúmať problémy s výkonom dotazu. Majte na pamäti nasledujúce obmedzenia a podporované objekty:

  • ObmedzeniaNasledujúce validácie vykonávajú DBCC CLONEDATABASE. Príkaz zlyhá, ak niektorá z platných zlyhaní zlyhá.

    • Zdrojová databáza musí byť databázou používateľov. Klonovanie systémových databáz (predloha, model, msdb, tempdb, distribučná databáza atď.) nie je povolené.

    • Zdrojová databáza musí byť online alebo čitateľná.

    • Databáza používajúca rovnaký názov ako databáza klonov už nesmie existovať.

    • Príkaz nie je v používateľskej transakcii.

    Ak sa všetky validácie podarí, DBCC CLONEDATABASE spustí nasledujúce operácie:

    • Vytvorenie primárneho údajového súboru a súboru denníka

    • Pridanie sekundárneho dataspaces

    • Pridanie sekundárnych súborov

    Poznámka: Všetky súbory v cieľovej databáze budú dediť nastavenia veľkosti a rastu z databázy modelu. Konvencia názvov súborov: názvy súborov pre cieľovú databázu sa budú riadiť konvenciou source_file_name _underscore_random Number . Ak už v cieľovom priečinku existuje generovaný názov súboru, DBCC CLONEDATABASE zlyhá.

  • Vnútorná snímka databázyDBCC CLONEDATABASE používa internú databázovú snímku zdrojovej databázy pre konzistentnosť transakčnej konzistencie, ktorá je potrebná na vykonanie kópie. Zabráni to zablokovaniu a súbežnosti pri spúšťaní týchto príkazov. Ak sa snímka nedá vytvoriť, príkaz DBCC CLONEDATABASE zlyhá. Zámky na úrovni databázy sa uchovávajú pri nasledujúcich krokoch v procese kopírovania:

    • Overenie zdrojovej databázy

    • Získanie S zámkom pre zdrojovú databázu

    • Vytvorenie snímky zdrojovej databázy

    • Vytvorenie databázy klonov (ide o prázdnu databázu, ktorá dedí z modelu)

    • Získanie X Lock pre databázu klonov

    • Kopírovanie metaúdajov do databázy klonov

    • Uvoľnenie všetkých zámkov DB

    Po dokončení príkazu sa vnútorná snímka vynechá. Dôveryhodné a DB_CHAINING možnosti sú v databáze klonovanej databázy vypnuté.

Podporované objekty

V cieľovej databáze bude klonovaná iba Nasledujúca schéma objektov. Šifrované objekty sa naklonia, ale v tomto vydaní SQL servera nie sú podporované v Clone. Všetky objekty, ktoré nie sú uvedené v nasledujúcej časti, nie sú podporované v klonovaných:

  • ROLA APLIKÁCIE

  • SKUPINA DOSTUPNOSTI

  • COLUMNSTORE INDEX

  • CDB

  • CDC

  • Sledovanie zmien (SQL Server 2016 SP2 CU10, SQL Server 2017 CU17, SQL Server 2019 CU1 a novšie verzie)

  • CLR (Počnúc SQL Server 2014 SP2 CU3, SQL Server 2016 Service Pack 1 a novšie verzie)

  • VLASTNOSTI DATABÁZY

  • PREDVOLENÉ

  • SÚBORY A FILEGROUPS

  • Úplný text (Počnúc SQL Server 2016 SP1 CU2)

  • FUNKCIE

  • INDEX

  • PRIHLÁSENIE

  • FUNKCIA ROZDELENIA

  • SCHÉMA ROZDELENIA

  • POSTUP Poznámka: Postupy T-SQL sú podporované vo všetkých vydaniach, ktoré začínajú SQL Server 2014 SP2. Procedúra CLR je podporovaná spustením SQL servera 2014 SP2 CU3. Natívne kompilovaný postup je podporovaný spustením SQL servera 2016 SP1.

  • Ukladací priestor DOTAZOV (iba v SQL Server 2016 Service Pack 1 a v novších verziách) Poznámka: Ukladací priestor dotazov sa skopíruje iba v prípade, že je zapnutý v zdrojovej databáze. Ak chcete skopírovať najnovšie dynamické štatistiky ako súčasť priestoru na ukladanie dotazov, spustite sp_query_store_flush_db na vyprázdnenie štatistík runtime do ukladacieho priestoru dotazov pred spustením príkazu DBCC CLONEDATABASE.

  • ROLY

  • PRAVIDLO

  • SCHÉMY

  • POSTUPNOSŤ

  • PRIESTOROVÝ INDEX

  • ŠTATISTIKY

  • SYNONYMUM

  • TABUĽKY

  • PAMÄŤ OPTIMALIZOVAná tabuľky (len v SQL Server 2016 SP1 a novšie verzie).

  • OBJEKTY FILESTREAM a objekty s TABUĽKAmi (Počnúc SQL Server 2014 SP2 CU3, SQL Server 2016 SP1 a novšie verzie).

  • SPÚŠŤ

  • Zadajte

  • INOVOVANÁ DATABÁZA DB

  • POUŽÍVATEĽA

  • Zobrazenie

  • INDEX XML

  • KOLEKCIA SCHÉM XML

 

Povolenia

Musíte mať členstvo v úlohe sysadmin fixed server.

Obmedzenia a hľadiská

DBCC CLONEDATABASE nepodporuje vytvorenie klonu, ak sú k dispozícii nejaké objekty používateľa (tabuľky, indexy, schémy, roly atď.), ktoré boli vytvorené v databáze modelu. Ak sa v databáze modelu nachádzajú objekty používateľa, klon databázy zlyhá s týmto chybovým hlásením:

MSG 2601, úroveň 14, štát 1, riadok 1nie je možné vložiť riadok duplicitného kľúča v objekte <systémová tabuľka> s jedinečným indexom názov indexu. Hodnota duplicitného kľúča je <hodnotu kľúča>   

Informácie týkajúce sa zabezpečenia údajov v klonovaných databázach nájdete v nasledujúcom blogu: informácie ozabezpečení údajov v klonovaných databázach.

Ak máte indexy stĺpcového obchodu, prečítajte si nasledujúci blog:úvahy pri vyladenie dotazov pomocou columnstore indexov v databázach klonovna aktualizáciu štatistík indexu Columnstore pred spustením príkazu DBCC CLONEDATABASE .

Správy denníka chýb

Nasledujúce správy sa v denníku chýb zaznamenávajú počas procesu klonovania:

<Časová pečiatka> spid53 klonovania databázy pre ' sourcedb ' sa začala s cieľom ako ' sourcedb_clone '. <časová pečiatka> spid53 spustenie databázy "Sourcedb_clone". <Časová pečiatka> SPID53 nastavenie databázy možnosť dôveryhodného vypnutia pre databázu "Sourcedb_clone". <Časová pečiatka> spid53 nastavenie databázy DB_CHAINING na možnosť vypnutia pre databázu "sourcedb_clone". <časová pečiatka> spid53 spustenie databázy "sourcedb_clone". <Timestamp> spid53 databázy "sourcedb_clone" je klonovaná databáza. Klonovaná databáza by sa mala používať len na diagnostické účely a nie je podporovaná na použitie v produkčnom prostredí. <Časová pečiatka> spid53 databázy klonovanie pre ' sourcedb ' dokončila. Klonovaná databáza je ' sourcedb_clone '.

Vlastnosť databázy

Pridá sa nová vlastnosť databázy IsClone . DATABASEPROPERTYEX (' DBNAME '; ' IsClone ') vráti hodnotu 1 , ak je databáza vygenerovaná pomocou DBCC CLONEDATABASE.

Príklady

  1. Vytvorenie klonu databázy AdventureWorks, ktorá zahŕňa schému, štatistiku a ukladací priestor dotazov (SQL Server 2016 SP1 a novšie verzie)

    Transact-SQL -- Generate the clone of AdventureWorks database.    DBCC CLONEDATABASE (AdventureWorks, AdventureWorks_Clone);    GO 
  2. Vytvorenie klonu databázy AdventureWorks v programe SQL Server 2014 bez štatistík (SQL Server 2014 SP2 CU3 a novšie verzie)

    DBCC CLONEDATABASE (AdventureWorks, AdventureWorks_Clone) WITH NO_STATISTICS
  3. Vytvorenie klonu databázy AdventureWorks iba pre schému bez štatistík a ukladacieho priestoru dotazov (SQL Server 2016 SP1 a novšie verzie)

    DBCC CLONEDATABASE (AdventureWorks, AdventureWorks_Clone) WITH NO_STATISTICS,NO_QUERYSTORE

Odkazy

Oboznámte sa s terminológiou , ktorú spoločnosť Microsoft používa na popis aktualizácií softvéru.

Potrebujete ďalšiu pomoc?

Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pripojiť k Microsoft insiderov chcú

Považujete poskytnuté informácie za užitočné?

Ďakujem za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×