Rekam jepret database (SQL Server)
Berlaku untuk:SQL Server
Rekam jepret database adalah tampilan statis baca-saja dari database SQL Server (database sumber). Ini secara transaksional konsisten dengan database sumber pada pembuatan rekam jepret dan selalu berada di instans server yang sama dengan database sumbernya. Meskipun rekam jepret database menyediakan tampilan data baca-saja dalam status yang sama seperti saat rekam jepret dibuat, ukuran file rekam jepret tumbuh saat perubahan dilakukan pada database sumber.
Meskipun rekam jepret database dapat bermanfaat selama peningkatan skema utama dan memungkinkan untuk kembali ke keadaan sebelumnya, sangat penting untuk memahami bahwa rekam jepret tidak menggantikan kebutuhan untuk pencadangan reguler. Anda tidak dapat mencadangkan atau memulihkan rekam jepret database, yang berarti rekam jepret tersebut harus digunakan dengan strategi pencadangan yang kuat untuk memastikan perlindungan dan pemulihan data jika ada kehilangan atau kerusakan data.
Rekam jepret database dibuat dengan sintaksIS CREATE DATABASE T-SQL, menggunakan sintaks.AS SNAPSHOT OF
Beberapa rekam jepret dapat ada pada database sumber tertentu. Setiap rekam jepret database bertahan hingga pemilik database secara eksplisit menghilangkannya.
Catatan
Rekam jepret database tidak terkait dengan cadangan rekam jepret, cadangan rekam jepret Transact-SQL, isolasi rekam jepret transaksi, atau replikasi rekam jepret.
Gambaran Umum Fitur
Cuplikan database beroperasi pada tingkat halaman data. Sebelum halaman database sumber dimodifikasi untuk pertama kalinya, halaman asli disalin dari database sumber ke rekam jepret. Rekam jepret menyimpan halaman asli, mempertahankan rekaman data seperti yang ada saat rekam jepret dibuat. Proses yang sama diulang untuk setiap halaman yang dimodifikasi untuk pertama kalinya. Bagi pengguna, rekam jepret database tampaknya tidak pernah berubah karena operasi baca pada rekam jepret database selalu mengakses halaman data asli, terlepas dari di mana mereka berada.
Cuplikan menyimpan halaman asli yang disalin menggunakan satu atau beberapa file tidak padat . Awalnya, "sparse file" adalah file kosong yang tidak berisi data pengguna dan belum dialokasikan ruang disk untuk data pengguna. Ukuran file bertambah karena lebih banyak halaman diperbarui dalam database sumber. Gambar berikut mengilustrasikan efek dari dua pola pembaruan yang kontras pada ukuran rekam jepret. Pola pembaruan A mencerminkan lingkungan di mana hanya 30 persen halaman asli yang diperbarui selama masa pakai rekam jepret. Pola pembaruan B mencerminkan lingkungan di mana 80 persen halaman asli diperbarui selama masa pakai rekam jepret.
Manfaat
Rekam jepret dapat digunakan untuk tujuan pelaporan.
- Klien dapat mengkueri rekam jepret database, yang membantu menulis laporan berdasarkan data saat rekam jepret dibuat.
Mempertahankan data historis untuk pembuatan laporan.
- Rekam jepret dapat memperluas akses pengguna ke data dari titik waktu tertentu. Misalnya, Anda dapat membuat rekam jepret database untuk pelaporan nanti pada akhir periode tertentu (seperti kuartal keuangan). Anda kemudian dapat menjalankan laporan akhir periode pada rekam jepret. Jika ruang disk mengizinkan, Anda juga dapat mempertahankan rekam jepret akhir periode tanpa batas waktu, memungkinkan kueri terhadap hasil dari periode ini, misalnya, untuk menyelidiki performa organisasi.
Menggunakan database cermin yang Anda pertahankan untuk tujuan ketersediaan untuk mengalihkan tugas pelaporan.
- Menggunakan rekam jepret database dengan pencerminan database memungkinkan Anda membuat data di server cermin dapat diakses untuk pelaporan. Selain itu, menjalankan kueri pada database cermin dapat membebaskan sumber daya untuk database utama. Untuk informasi selengkapnya, lihat Pencerminan Database dan Rekam Jepret Database (SQL Server).
Melindungi data dari kesalahan administratif.
Jika kesalahan pengguna terjadi dalam database sumber, Anda dapat mengembalikannya ke statusnya saat rekam jepret database dibuat. Kehilangan data terbatas pada pembaruan database sejak pembuatan rekam jepret.
Misalnya, sebelum melakukan pembaruan besar, seperti pembaruan massal atau perubahan skema, buat rekam jepret database pada database untuk melindungi data. Jika Anda membuat kesalahan, Anda dapat menggunakan rekam jepret untuk memulihkan dengan mengembalikan database ke rekam jepret. Mengembalikan lebih cepat daripada memulihkan dari cadangan; namun, Anda tidak dapat melanjutkan pemulihan setelahnya.
Penting
Mengembalikan tidak berfungsi dalam database offline atau rusak. Oleh karena itu, pencadangan reguler dan pengujian rencana pemulihan Anda diperlukan untuk melindungi database.
Catatan
Rekam jepret database bergantung pada database sumber. Oleh karena itu, menggunakan rekam jepret untuk mengembalikan database bukanlah pengganti strategi pencadangan dan pemulihan Anda. Melakukan semua pencadangan terjadwal Anda tetap penting. Jika Anda harus memulihkan database sumber ke titik tempat Anda membuat rekam jepret database, terapkan kebijakan pencadangan yang memungkinkan Anda melakukannya.
Melindungi data dari kesalahan pengguna.
Dengan membuat rekam jepret database secara teratur, Anda dapat mengurangi dampak kesalahan pengguna utama, seperti tabel yang dihilangkan. Untuk tingkat perlindungan yang tinggi, Anda dapat membuat serangkaian rekam jepret database yang mencakup cukup waktu untuk mengenali dan merespons sebagian besar kesalahan pengguna. Misalnya, tergantung pada sumber daya disk Anda, Anda mungkin mempertahankan 6 hingga 12 rekam jepret bergulir yang mencakup interval 24 jam. Kemudian, setiap kali rekam jepret baru dibuat, rekam jepret paling awal dapat dihapus.
Untuk memulihkan dari kesalahan pengguna, Anda dapat mengembalikan database ke rekam jepret segera sebelum kesalahan. Mengembalikan berpotensi jauh lebih cepat daripada memulihkan dari cadangan; namun, Anda tidak dapat bergulir ke depan setelahnya.
Atau, Anda dapat secara manual membangun ulang tabel yang dihilangkan atau data lain yang hilang dari informasi dalam rekam jepret. Misalnya, Anda dapat menyalin data secara massal dari rekam jepret ke dalam database dan menggabungkan data secara manual kembali ke database.
Catatan
Alasan Anda untuk menggunakan rekam jepret database menentukan berapa banyak rekam jepret bersamaan yang Anda butuhkan pada database, seberapa sering membuat rekam jepret baru, dan berapa lama untuk menyimpannya.
Mengelola database pengujian.
- Dalam lingkungan pengujian, database dapat berguna untuk berisi data yang identik di awal setiap putaran pengujian saat berulang kali menjalankan protokol pengujian. Sebelum menjalankan putaran pertama, pengembang atau penguji aplikasi dapat membuat rekam jepret database pengujian. Setelah setiap eksekusi pengujian, database dapat dengan cepat dikembalikan ke keadaan sebelumnya dengan mengembalikan rekam jepret database.
Istilah dan definisi
Rekam jepret database di SQL Server melibatkan beberapa istilah dan definisi utama. Cuplikan database adalah tampilan baca-saja yang statis dari suatu database (disebut sebagai database sumber ) pada titik waktu tertentu. database sumber adalah database asli tempat rekam jepret didasarkan, dan harus tetap online dan dapat diakses agar rekam jepret dapat digunakan. Sparse files menyimpan halaman asli dari database sumber yang telah dimodifikasi sejak rekaman jepret dibuat. File-file ini awalnya kosong dan tumbuh saat perubahan terjadi dalam database sumber. Memahami istilah-istilah ini sangat penting untuk mengelola dan memanfaatkan rekam jepret database secara efektif di SQL Server.
Snapshot database
Tampilan statis database yang konsisten secara transaksional, baca-saja, (database sumber).
Database sumber
Untuk rekam jepret database, database tempat rekam jepret dibuat. Rekam jepret database bergantung pada database sumber. Rekam jepret database harus berada di instans server yang sama dengan database. Selain itu, jika database tersebut menjadi tidak tersedia karena alasan apa pun, rekam jepretnya menjadi tidak tersedia.
File jarang
Sistem file NTFS menyediakan file yang membutuhkan ruang disk jauh lebih sedikit daripada yang diperlukan. File jarang digunakan untuk menyimpan halaman yang disalin ke rekam jepret database. Ketika pertama kali dibuat, file jarang membutuhkan sedikit ruang disk. Saat data ditulis ke rekam jepret database, NTFS mengalokasikan ruang disk secara bertahap ke file jarang yang sesuai.
Prasyarat
Database sumber, yang dapat menggunakan model pemulihan apa pun, harus memenuhi prasyarat berikut:
Instans server harus berjalan pada edisi SQL Server yang mendukung rekam jepret database.
- Untuk informasi selengkapnya, lihat Fitur yang Didukung oleh Edisi SQL Server 2016.
Database sumber harus online kecuali itu adalah database duplikat dalam sesi duplikasi database.
Anda dapat membuat rekam jepret database dalam grup ketersediaan pada database utama atau sekunder apa pun. Peran replika harus PRIMER atau SEKUNDER, bukan dalam status PENYELESAIAN.
Kami menyarankan agar status sinkronisasi database adalah SYNCHRONIZING atau SYNCHRONIZED saat Anda membuat rekam jepret database. Namun, cuplikan database dapat dibuat ketika status TIDAK SINKRON.
- Untuk informasi selengkapnya, lihat Rekam Jepret Database dengan Grup Ketersediaan AlwaysOn (SQL Server).
Untuk membuat rekam jepret database pada database cermin, database harus dalam status pencerminan YANG DISINKRONKAN.
Database sumber tidak dapat dikonfigurasi sebagai database bersama yang dapat diskalakan.
Sebelum SQL Server 2019, database sumber tidak dapat berisi grup file MEMORY_OPTIMIZED_DATA. Dukungan untuk rekam jepret database dalam memori ditambahkan di SQL Server 2019.
Semua model pemulihan mendukung rekam jepret database.
Batasan pada database sumber
Selama rekam jepret database ada, batasan berikut ada pada database sumber rekam jepret:
Database tidak dapat dihilangkan, dilepas, atau dipulihkan.
Mencadangkan database sumber umumnya berhasil, tetapi tidak terpengaruh oleh cuplikan database.
Performa berkurang karena peningkatan I/O pada database sumber yang dihasilkan dari operasi salin-tulis ke rekam jepret setiap kali halaman diperbarui.
File tidak dapat dihilangkan dari database sumber atau rekam jepret apa pun.
Pembatasan pada Cuplikan Database
Rekam jepret database bergantung pada database sumber dan tidak melindungi dari kesalahan atau kerusakan disk. Oleh karena itu, meskipun dapat berguna untuk tujuan pelaporan atau selama perubahan skema, mereka harus melengkapi, bukan menggantikan, praktik pencadangan rutin. Jika Anda perlu memulihkan database sumber ke titik tempat Anda membuat rekam jepret database, terapkan kebijakan pencadangan yang memungkinkan Anda melakukannya.
Batasan berikut berlaku untuk rekam jepret database:
Rekam jepret database harus dibuat dan tetap berada di instans server yang sama dengan database sumber.
Rekam jepret database selalu berfungsi pada seluruh database.
Cuplikan basis data bergantung pada basis data sumber dan bukan merupakan penyimpanan berlebih. Mereka tidak melindungi dari kesalahan disk atau jenis kerusakan lainnya. Oleh karena itu, menggunakan rekam jepret untuk mengembalikan database bukanlah pengganti strategi pencadangan dan pemulihan Anda. Melakukan semua pencadangan terjadwal Anda tetap penting. Jika Anda harus memulihkan database sumber ke titik tempat Anda membuat rekam jepret database, terapkan kebijakan pencadangan yang memungkinkan Anda melakukannya.
Ketika halaman yang sedang diperbarui pada database sumber didorong ke cuplikan, jika cuplikan kehabisan ruang disk atau mengalami beberapa kesalahan lain, maka cuplikan tersebut dianggap bermasalah dan harus dihapus.
Rekam jepret bersifat baca-saja. Karena bersifat baca-saja, mereka tidak dapat ditingkatkan. Oleh karena itu, cuplikan database tidak diharapkan dapat digunakan setelah peningkatan.
Rekam jepret
model
database ,master
, dantempdb
dilarang.Anda tidak dapat mengubah spesifikasi file rekam jepret database apa pun.
Anda tidak dapat menghapus file dari cuplikan basis data.
Anda tidak dapat mencadangkan atau memulihkan rekam jepret database.
Anda tidak dapat melampirkan atau melepaskan rekam jepret database.
Anda tidak dapat membuat rekam jepret database pada sistem file FAT32 atau partisi RAW. Sistem file NTFS menyediakan file jarang yang digunakan oleh rekam jepret database.
Pengindeksan teks lengkap tidak didukung pada rekam jepret database. Katalog teks lengkap tidak disebarluaskan dari database sumber.
Rekam jepret database mewarisi batasan keamanan database sumbernya pada saat pembuatan rekam jepret. Karena rekam jepret bersifat baca-saja, izin yang diwariskan tidak dapat diubah, dan perubahan izin yang dibuat pada sumber tidak akan tercermin dalam rekam jepret yang ada.
Rekam jepret selalu mencerminkan status grup file pada saat pembuatan rekam jepret: grup file online tetap online, dan grup file offline tetap offline. Untuk informasi selengkapnya, lihat "Rekam Jepret Database dengan Grup File Offline" nanti di artikel ini.
Jika database sumber menjadi RECOVERY_PENDING, rekam jepretnya mungkin menjadi tidak dapat diakses. Namun, setelah masalah pada database sumber diselesaikan, rekam jepretnya harus tersedia lagi.
Mengembalikan tidak didukung untuk file terkompresi NTFS baca-saja atau NTFS dalam database. Upaya untuk mengembalikan database yang berisi salah satu jenis grup file ini gagal.
Dalam konfigurasi pengiriman log, rekam jepret database hanya dapat dibuat pada database utama, bukan yang sekunder. Misalkan Anda beralih peran antara instans server primer dan sekunder. Dalam hal ini, Anda harus menghilangkan semua rekam jepret database sebelum menyiapkan database utama sebagai database sekunder.
Rekam jepret database tidak dapat dikonfigurasi sebagai database bersama yang dapat diskalakan.
Rekam jepret database tidak mendukung grup file FILESTREAM. Jika grup file FILESTREAM ada di database sumber, grup file ditandai sebagai offline dalam rekam jepret databasenya, dan rekam jepret tidak dapat digunakan untuk mengembalikan database.
Catatan
Pernyataan SELECT yang dijalankan pada rekam jepret database tidak boleh menentukan kolom FILESTREAM; jika tidak, pesan kesalahan berikut akan dikembalikan: Could not continue scan with NOLOCK due to data movement.
- Ketika statistik pada rekam jepret baca-saja hilang atau basi, Mesin Database membuat dan mempertahankan statistik sementara di
tempdb
. Lihat Statistik untuk informasi selengkapnya.
Ruang penyimpanan disk
Rekam jepret database menggunakan ruang disk. Jika rekam jepret database kehabisan ruang disk, rekam jepret tersebut ditandai sebagai tersangka dan harus dihilangkan. (Namun, database sumber tidak terpengaruh; tindakan di atasnya berlanjut secara normal.)
Namun, rekam jepret sangat hemat ruang dibandingkan dengan salinan lengkap database. Rekam jepret hanya memerlukan penyimpanan yang cukup untuk halaman yang berubah selama masa pakainya. Umumnya, rekam jepret disimpan untuk waktu yang terbatas, sehingga ukurannya tidak menjadi perhatian yang signifikan.
Namun, semakin lama Anda menyimpan rekam jepret, semakin besar kemungkinan untuk menggunakan ruang yang tersedia. Ukuran maksimum di mana sparse file dapat bertambah adalah ukuran file database sumber yang sesuai pada saat pembuatan snapshot. Rekam jepret database harus dihapus (dihilangkan) jika kehabisan ruang disk.
Catatan
Kecuali untuk ruang file, rekam jepret database mengonsumsi kira-kira sebanyak sumber daya sebagai database.
Kelompok berkas offline
Grup file offline dalam database sumber memengaruhi rekam jepret database saat Anda mencoba melakukan salah satu hal berikut ini:
Buat rekam jepret.
- Ketika database sumber memiliki satu atau beberapa grup file offline, pembuatan rekam jepret berhasil dengan grup file offline. File sparse tidak dibuat untuk grup file offline.
Membuat grup file offline
- Anda dapat mengambil file secara offline di database sumber. Namun, grup file tetap online dalam rekam jepret database jika online saat rekam jepret dibuat. Jika data yang dikueri telah berubah sejak pembuatan rekam jepret, halaman data asli dapat diakses dalam rekam jepret. Namun, kueri yang menggunakan rekam jepret untuk mengakses data yang tidak dimodifikasi dalam grup file kemungkinan akan gagal dengan kesalahan input/output (I/O).
Bawa grup file online
- Anda tidak dapat membawa grup file online dalam database yang memiliki rekam jepret database apa pun. Jika sebuah grup file dalam keadaan offline pada saat pembuatan cuplikan atau dibuat offline saat cuplikan database ada, maka cuplikan database tersebut tetap berada dalam keadaan offline. Ini karena membawa file kembali online melibatkan pemulihan, yang tidak mungkin dilakukan jika cuplikan basis data berada di basis data.
Mengembalikan database sumber ke rekam jepret
- Mengembalikan database sumber ke rekam jepret database mengharuskan semua grup file online kecuali yang offline saat rekam jepret dibuat.
Konten terkait
- Pencerminan Database dan Rekam Jepret Database (SQL Server)
- CREATE DATABASE - Rekam Jepret Database
- Membuat Rekam Jepret Database (Transact-SQL)
- Menampilkan Rekam Jepret Database (SQL Server)
- Menampilkan Ukuran File Jarang Rekam Jepret Database (Transact-SQL)
- Mengembalikan Database ke Rekam Jepret Database
- Menghilangkan Rekam Jepret Database (Transact-SQL)