KB3177838 - Korišćenje DBCC CLONEDATABASE za generisanje šeme i statistike samo kopije korisničke baze podataka u SQL Serveru

Rezime

Ova ispravka uvodi novu komandu upravljanja DBCC CLONEDATABASE (Transact-SQL) u SQL Server 2017 na Windows, servisni paket 4 za SQL Server 2012,Microsoft SQL Server 2014 servisni paket 2 i SQL Server 2016 SP1. Ova komanda kreira novu bazu podataka koja sadrži šemu svih objekata i statističkih podataka iz navedene izvorne baze podataka. 

Napomena U SQL Server 2014 okruženjima morate da instalirate kumulativnu ispravku 3 za SQL Server 2014 SP2 da biste dobili mogućnost kloniranja Filestream, FileTable i uobičajenih objekata za izvršavanje jezika (CLR) i kloniranje sa NO_STATISTICS opcija pomoću DBCC-a.

Osnovni podaci o servisnim paketima za SQL Server

 

Servisni paketi su kumulativni. Svaki novi servisni paket sadrži sve ispravke koje se naći u prethodnim servisnim paketima, zajedno sa svim novim ispravkama. Naša preporuka je da primenite najnoviji servisni paket i najnoviju kumulativnu ispravku za taj servisni paket. Ne morate da instalirate prethodni servisni paket pre nego što instalirate najnoviji servisni paket. Koristite tabelu 1 u sledećem članku da biste pronašli više informacija o najnovijem servisnom paketu i najnovijoj kumulativnoj ispravci.

Utvrđivanje nivoa verzije, izdanja i ažuriranja sistema SQL Server i njegovih komponenti

O DBCC CLONEDATABASE

Microsoft usluge korisničke podrške mogu da od vas zatraže da generišete klon baze podataka pomoću DBCC CLONEDATABASE da biste istražili problem sa performansama vezan za optimizator upita.Napomena Novokreirana baza podataka generisana iz DBCC CLONEDATABASE nije podržana da se koristi kao baza podataka proizvodnje i prvenstveno je namenjena za rešavanje problema i dijagnostičke svrhe. Preporučujemo da odvojite kloniranu bazu podataka nakon kreiranja baze podataka. Kloniranje izvorne baze podataka vrše sledeće operacije:

  • Kreira novu odredišnu bazu podataka koja koristi isti raspored datoteka kao izvor, ali sa podrazumevanim veličinama datoteka kao baza podataka modela.

  • Kreira interni snimak izvorne baze podataka.

  • Kopira sistemske metapodatke iz izvora u odredišnu bazu podataka.

  • Kopira svu šemu za sve objekte iz izvora u odredišnu bazu podataka.

  • Kopira statistiku za sve indekse iz izvora u odredišnu bazu podataka.

Sintaksa

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

Argumente

  • source_database_nameOvaj argument je ime baze podataka čija šema i statistika treba da se kopiraju.

  • target_database_nameOvaj argument je ime baze podataka u koju će šema i statistika iz izvorne baze podataka biti kopirane. Ovu bazu podataka će kreirati DBCC CLONEDATABASE i ne bi trebalo već da postoji.

  • NO_STATISTICSOvaj argument navodi da li je potrebno isključiti statistiku tabele/indeksa u klonu. Ako ova opcija nije navedena, statistika tabele/indeksa se automatski uključuje. Ova opcija je dostupna počevši od SQL Server 2014 SP2 CU3 i SQL Server 2016 servisnog paketa 1.

  • NO_QUERYSTOREOvaj argument određuje da li je potrebno isključiti skladište upita u klonu. Ako ova opcija nije navedena, podaci za skladištenje upita se kopiraju u klon ako su omogućeni u izvornoj bazi podataka. Ova opcija je dostupna počevši od SQL Server 2016 servisnog paketa 1.

Kada koristiti DBCC CLONEDATABASE?

DBCC CLONEDATABASE bi trebalo da se koristi za kreiranje šeme i statistike samo kopije baze podataka proizvodnje da bi se istražili problemi sa performansama upita. Imajte na umu sledeća ograničenja i podržane objekte:

  • OgraničenjaSledeće provere valjanosti vrši DBCC CLONEDATABASE. Komanda ne uspe ako neka provera valjanosti ne uspe.

    • Izvorna baza podataka mora biti korisnička baza podataka. Kloniranje sistemskih baza podataka (master, model, msdb, tempdb, distributivna baza podataka itd.) nije dozvoljeno.

    • Izvorna baza podataka mora biti na mreži ili čitljiva.

    • Baza podataka koja koristi isto ime kao baza podataka kloniranja ne sme već da postoji.

    • Komanda nije u korisničkoj transakciji.

    Ako sve provere valjanosti uspeju, DBCC CLONEDATABASE će pokrenuti sledeće operacije:

    • Kreiranje primarne datoteke sa podacima i datoteke evidencije

    • Dodavanje pomoćnih prostora podataka

    • Dodavanje sekundarnih datoteka

    Napomena Sve datoteke u ciljnoj bazi podataka će naslediti veličinu i postavke rasta iz baze podataka modela. Konvencija o imenu datoteke: Imena datoteka za odredišnu bazu podataka pratiće konvenciju source_file_name _underscore_random brojeva. Ako generisano ime datoteke već postoji u odredišnoj fascikli, DBCC CLONEDATABASE neće uspeti.

  • Snimak interne bazepodataka DBCC CLONEDATABASE koristi snimak interne baze podataka izvorne baze podataka za doslednost transakcije koja je potrebna za izvršavanje kopije. Ovo sprečava blokiranje i uporedne probleme prilikom izvršavanja ovih komandi. Ako nije moguće kreirati snimak, DBCC CLONEDATABASE neće uspeti. Zaključavanja nivoa baze podataka se održavaju tokom sledećih koraka procesa kopiranja:

    • Provera valjanosti izvorne baze podataka

    • Get S lock za izvornu bazu podataka

    • Kreiranje snimka izvorne baze podataka

    • Kreiranje baze podataka kloniranja (ovo je prazna baza podataka koja nasleđuje od modela)

    • Nabavite X bravu za bazu podataka klonova

    • Kopiranje metapodataka u bazu podataka kloniranja

    • Oslobodite sve DB brave

    Čim komanda završi sa radom, unutrašnji snimak je ispušten. Pouzdane iDB_CHAINING su isključene u kloniranoj bazi podataka.

Podržani objekti

U odredišnoj bazi podataka biće klonirana samo šema sledećih objekata. Šifrovani objekti se kloniraju, ali nisu podržani u kloniranju u ovom izdanju sistema SQL Server. Svi objekti koji nisu navedeni u sledećem odeljku nisu podržani u kloniranom:

  • ULOGA APLIKACIJE

  • RASPOLOŽIVA GRUPA

  • INDEKS KOLONA

  • CDB

  • Cdc

  • Praćenje promena (SQL Server 2016 SP2 CU10, SQL Server 2017 CU17, SQL Server 2019 CU1 i novije verzije)

  • CLR (pokretanje verzija sa uslugom SQL Server 2014 SP2 CU3, SQL Server 2016 servisni paket 1 i novije verzije)

  • SVOJSTVA BAZE PODATAKA

  • Podrazumevani

  • DATOTEKE I GRUPE DATOTEKA

  • Ceo tekst (pokretanje SQL Server 2016 SP1 CU2)

  • Funkciju

  • Indeks

  • Prijavljivanje

  • FUNKCIJA PARTICIJE

  • ŠEMA PARTICIJA

  • Procedura Napomena T-SQL procedure su podržane u svim izdanjima koja počinju sa SQL Server 2014 SP2. CLR procedure su podržane pokretanjem SQL Server 2014 SP2 CU3. Na izvorno sastavljene procedure podržano je pokretanje SISTEMA SQL Server 2016 SP1.

  • QUERY STORE (samo u SQL Server 2016 servisnom paketu 1 i novijoj verziji) Napomena Skladište upita se kopira samo ako je omogućeno u izvornoj bazi podataka. Da biste kopirali najnoviju statistiku izvršavanja kao deo skladišta upita, izvršite sp_query_store_flush_db biste utrošili statistiku izvršavanja u skladište upita pre nego što izvršite DBCC CLONEDATABASE.

  • Ulogu

  • Pravilo

  • Šeme

  • Sekvence

  • PROSTORNI INDEKS

  • Statistika

  • Sinonim

  • Tabele

  • TABELE OPTIMIZOVANE ZA MEMORIJU (samo u SQL Server 2016 SP1 i novijim verzijama).

  • FILESTREAM I FILETABLE OBJECTS (Starting SQL Server 2014 SP2 CU3, SQL Server 2016 SP1 and later versions).

  • Okidaи

  • Tip

  • NADOGRAĐENI DB

  • Korisnika

  • Prikaz

  • XML INDEKS

  • KOLEKCIJA XML ŠEMA

 

Dozvole

Moraš da imaš članstvo u ulozi sysadmin fiksnog servera.

Ograničenja i razmatranja

DBCC CLONEDATABASE ne podržava kreiranje klona ako postoje neki korisnički objekti (tabele, indeksi, šeme, uloge i tako dalje) koji su kreirani u bazi podataka modela. Ako su korisnički objekti prisutni u bazi podataka modela, klon baze podataka neće uspeti sa sledećom porukom o grešci:

Msg 2601, Nivo 14, Država 1, Red 1 Nije mogućeumetnuti duplirani redključa u<sistemsku tabelu>sa jedinstvenim indeksom "ime indeksa". Vrednost duplikata ključa je<vrednost ključa>   

Više informacija vezanih za bezbednost podataka u kloniranim bazama podataka potražite na sledećem blogu:Razumevanje bezbednosti podataka u kloniranim bazama podataka.

Ako imate indekse skladišta kolona, pogledajte sledeći blog:Razmatranja kadapodesite upite sa indeksima columnstore u bazama podataka kloniranjada biste ažurirali statistiku indeksa stubičaste stranice pre nego što pokrenete komandu DBCC CLONEDATABASE.

Poruke evidencije grešaka

Sledeće poruke se evidentiraju u evidenciji grešaka tokom procesa kloniranja:

<Timestamp> spid53 kloniranje baze podataka za 'sourcedb' je počelo sa ciljem kao 'sourcedb_clone'.<Timestamp> spid53 Pokretanje baze podataka 'sourcedb_clone'.<Timestamp> spid53 Postavljanje opcije baze podataka TRUSTWORTHY to OFF za bazu podataka 'sourcedb_clone'..<Timestamp> spid53 Setting database option DB_CHAINING to OFF for database 'sourcedb_clone'.<Timestamp> spid53 Starting up database 'sourcedb_clone'.<Timestamp> spid53 Database 'sourcedb_clone' is a cloned database. Klonirana baza podataka bi trebalo da se koristi samo u dijagnostičke svrhe i nije podržana za upotrebu u proizvodnom okruženju.<Timestamp> spid53 kloniranje baze podataka za "sourcedb" je završeno. Klonirana baza podataka je 'sourcedb_clone'.

Svojstvo "Database" ("Baza

Dodaje se novo svojstvo baze podataka IsClone. DATABASEPROPERTYEX('dbname', 'IsClone') će vratiti 1 ako se baza podataka generiše pomoću DBCC CLONEDATABASE.

Primeri

  1. Kreiranje klona AdventureWorks baze podataka koja uključuje šemu, statistiku i skladištenje upita (SQL Server 2016 SP1 i novije verzije)

    Transact-SQL -- Generate the clone of AdventureWorks database.    DBCC CLONEDATABASE (AdventureWorks, AdventureWorks_Clone);    GO 
  2. Kreiranje klona baze podataka "AdventureWorks" samo za šemu u sql Server 2014 bez statistike (SQL Server 2014 SP2 CU3 i novije verzije)

    DBCC CLONEDATABASE (AdventureWorks, AdventureWorks_Clone) WITH NO_STATISTICS
  3. Kreiranje klona baze podataka "AdventureWorks" samo za šemu bez statistike i skladišta upita (SQL Server 2016 SP1 i novije verzije)

    DBCC CLONEDATABASE (AdventureWorks, AdventureWorks_Clone) WITH NO_STATISTICS,NO_QUERYSTORE

Reference

Saznajte više o terminologiji koju Microsoft koristi za opisivanje softverskih ispravki.

Potrebna vam je dodatna pomoć?

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Microsoft insajdere

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Izgleda da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×