Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menggunakan DBCC CLOENDATABASE untuk menghasilkan skema dan statistik hanya salinan database pengguna di SQL Server 2014 SP2

DBCC CLONEDATABASE adalah perintah DBCC baru yang diperkenalkan di SQL Server 2014 SP 2 yang digunakan untuk membuat tiruan dari basis data pengguna tertentu yang membantu dalam memecahkan masalah kinerja yang terkait dengan pengoptimal kueri.

Ketika mengkloning database dibuat menggunakan DBCC CLONEDATABASE, itu akan membuat skema dan statistik hanya salinan dari database yang ditentukan dan tidak berisi salinan data.

Membuat klon semudah melewati sumber nama database dan mengkloning nama database ke perintah DBCC.
DBCC CLOENDATABASE ('SansSQL', 'SansSQL_Clone') 

Keluaran dari Perintah DBCC

Setelah kloning selesai, database kloning akan berada dalam mode Hanya-Baca.

PILIH nama, database_id, is_read_only FROM sys.databases MANA nama di ('SansSQL ', 'SansSQL_Clone') 

Jadi apa yang sebenarnya terjadi ketika kita mengeluarkan perintah DBCC CLOENDATABASE pada database?
Ini akan dimulai dengan beberapa validasi sebelum klon dibuat, Validasi berikut dilakukan oleh DBCC CLOENDATABASE. Perintah gagal jika salah satu validasi gagal.
  • Database sumber harus berupa database pengguna. Kloning database sistem (master, model, msdb, tempdb, database distribusi, dll.) tidak diizinkan.
  • Basis data sumber harus online atau dapat dibaca.
  • Basis data yang menggunakan nama yang sama dengan basis data kloning tidak boleh ada.
  • Perintah tidak ada dalam transaksi pengguna.
Jika semua validasi berhasil, DBCC CLOENDATABASE akan melakukan operasi berikut:
  • Membuat file data primer dan file log
  • Menambahkan ruang data sekunder
  • Menambahkan file sekunder
File database tujuan akan mewarisi pengaturan ukuran dan pertumbuhan dari database model dan nama file database tujuan akan mengikuti konvensi source_file_name _underscore_random_number.
PILIH database_id, file_id, type_desc, name, physical_name FROM sys.master_files WHERE DB_NAME(database_id) in ('SansSQL', 'SansSQL_Clone') 


Kemudian DBCC CLOENDATABASE akan melakukan Internal Database Snapshot dengan langkah-langkah berikut
  • Validasi basis data sumber
  • Dapatkan kunci S untuk database sumber
  • Buat snapshot dari database sumber
  • Buat database klon (ini adalah database kosong yang diturunkan dari model)
  • Dapatkan kunci X untuk basis data kloning
  • Salin metadata ke database kloning
  • Lepaskan semua kunci DB
Menggunakan perintah di bawah ini, kita dapat memeriksa apakah database adalah tiruan atau database normal.
SELECT DATABASEPROPERTYEX('SansSQL','isClone') AS SansSQL_DB_CloneStatus ,DATABASEPROPERTYEX('SansSQL_Clone','isClone') AS SansSQL_CloneDB_CloneStatus 

Referensi:https://support.microsoft.com/en-in/kb/3177838

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server dan Kerentanan Spectre/Meltdown

  2. batasan unik bersyarat

  3. Temukan Nilai Non-Numerik dalam Kolom di SQL Server

  4. Apakah ada cara untuk menyematkan laporan dan dasbor bi daya di aplikasi desktop vb.net atau C# dengan database sql server 2008?

  5. SQL Pilih Ulang Tahun Mendatang