Bagikan melalui


Cuplikan Database (SQL Server)

Rekam jepret database adalah tampilan statis baca-saja dari database SQL Server ( database sumber). Cuplikan database konsisten secara transaksional dengan database sumber pada saat pembuatan cuplikan. Rekam jepret database selalu berada di instans server yang sama dengan database sumbernya. Saat database sumber diperbarui, rekam jepret database diperbarui. Oleh karena itu, semakin lama rekam jepret database ada, semakin besar kemungkinan untuk menggunakan ruang disk yang tersedia.

Beberapa rekam jepret dapat ada pada database sumber tertentu. Setiap rekam jepret database bertahan sampai secara eksplisit dihilangkan oleh pemilik database.

Nota

Rekam jepret database tidak terkait dengan cadangan rekam jepret, isolasi rekam jepret transaksi, atau replikasi rekam jepret.

Dalam Topik ini:

Gambaran Umum Fitur

Cuplikan database beroperasi di 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 sedang 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.

Untuk menyimpan halaman asli yang disalin, cuplikan menggunakan satu atau beberapa file sparse. Pada awalnya, file jarang terpakai adalah file yang pada dasarnya kosong, tidak berisi data pengguna, dan belum dialokasikan ruang disk untuk data pengguna. Karena semakin banyak halaman yang diperbarui dalam database sumber, ukuran file bertambah. 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.

Pola pembaruan alternatif dan ukuran rekam jepret

Manfaat Rekam Jepret Database

  • Rekam jepret dapat digunakan untuk tujuan pelaporan.

    Klien dapat mengkueri rekam jepret database, yang membuatnya berguna untuk menulis laporan berdasarkan data pada saat pembuatan rekam jepret.

  • 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 di akhir periode waktu tertentu (seperti kuartal keuangan) untuk pelaporan nanti. 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 replikasi yang Anda pertahankan untuk tujuan ketersediaan untuk mengurangi beban 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 pencerminan dapat membebaskan sumber daya pada database utama. Untuk informasi selengkapnya, lihat Pencerminan Database dan Rekam Jepret Database (SQL Server).

  • Melindungi data dari kesalahan administratif.

  • Jika terjadi kesalahan pengguna pada database sumber, Anda dapat mengembalikan database sumber ke status saat rekam jepret database tertentu 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 melindungi data. Jika Anda membuat kesalahan, Anda dapat menggunakan rekam jepret untuk memulihkan dengan mengembalikan database ke rekam jepret. Mengembalikan berpotensi jauh lebih cepat untuk tujuan ini daripada memulihkan dari cadangan; namun, Anda tidak dapat bergulir ke depan setelahnya.

    Penting

    Mengembalikan tidak berfungsi dalam database offline atau rusak. Oleh karena itu, mengambil cadangan reguler dan menguji rencana pemulihan Anda diperlukan untuk melindungi database.

    Nota

    Rekam jepret database bergantung pada database sumber. Oleh karena itu, menggunakan rekam jepret database 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 waktu di mana 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, Anda dapat mempertahankan 6 hingga 12 rekam jepret bergulir yang mencakup interval 24 jam, tergantung pada sumber daya disk Anda. 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. Pemulihan kembali berpotensi jauh lebih cepat untuk tujuan ini daripada memulihkan dari cadangan; namun, Anda tidak dapat melanjutkan ke depan setelah ini.

    • Atau, Anda mungkin 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.

    Nota

    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, ini dapat berguna ketika berulang kali menjalankan protokol pengujian untuk database agar berisi data yang identik di awal setiap putaran pengujian. Sebelum menjalankan putaran pertama, pengembang aplikasi atau penguji dapat membuat rekam jepret database pada 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
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, semua rekam jepret databasenya juga menjadi tidak tersedia.

file jarang
File yang disediakan oleh sistem file NTFS 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 untuk dan Batasan pada Rekam Jepret Database

Di bagian ini:

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 2014.

  • Database sumber harus online, kecuali database adalah database cermin dalam sesi pencerminan database.

  • Anda dapat membuat rekam jepret database pada database utama atau sekunder apa pun dalam grup ketersediaan. 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, rekam jepret database dapat dibuat ketika status sinkronisasi database TIDAK DISINKRONKAN.

    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.

Nota

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.

    Nota

    Mem-backup database sumber berfungsi secara normal; hal ini tidak terpengaruh oleh snapshot 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 dari rekam jepret apa pun.

Batasan pada Rekam Jepret Database

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.

  • Rekam jepret database bergantung pada database sumber dan bukan penyimpanan redundan. Mereka tidak melindungi dari kesalahan disk atau jenis kerusakan lainnya. Oleh karena itu, menggunakan rekam jepret database 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 waktu di mana Anda membuat rekam jepret database, terapkan kebijakan pencadangan yang memungkinkan Anda melakukannya.

  • Ketika halaman yang diperbarui pada database sumber dimasukkan ke dalam cuplikan, jika cuplikan kehabisan ruang disk atau mengalami beberapa kesalahan lain, cuplikan tersebut menjadi tidak valid dan harus dihapus.

  • Rekam jepret bersifat baca-saja. Karena hanya dibaca, mereka tidak dapat ditingkatkan. Oleh karena itu, rekam jepret database tidak diharapkan layak setelah peningkatan.

  • Rekam jepret database model, master, dan tempdb dilarang.

  • Anda tidak dapat mengubah spesifikasi file rekam jepret database.

  • Anda tidak dapat menghapus file dari rekam jepret database.

  • 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. File jarang yang digunakan oleh rekam jepret database disediakan oleh sistem file NTFS.

  • Pengindeksan teks penuh 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 dilakukan 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 dalam topik ini.

  • Jika database sumber menjadi RECOVERY_PENDING, rekam jepret databasenya mungkin menjadi tidak dapat diakses. Namun, setelah masalah pada database sumber diselesaikan, rekam jepretnya akan tersedia lagi.

  • Pengembalian tidak dapat dilakukan untuk grup file yang hanya-baca dan untuk grup file yang terkompresi. 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 pada database sekunder. Jika Anda beralih peran antara instans server utama dan instans server sekunder, Anda harus menghilangkan semua rekam jepret database sebelum Anda dapat mengatur database utama sebagai database sekunder.

  • Rekam jepret database tidak dapat dikonfigurasi sebagai database bersama yang dapat diskalakan.

  • Grup file FILESTREAM tidak didukung oleh rekam jepret database. Jika grup file FILESTREAM ada di database sumber, grup file ditandai sebagai offline dalam rekam jepret databasenya, dan rekam jepret database tidak dapat digunakan untuk mengembalikan database.

    Nota

    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 cuplikan baca saja hilang atau basi, Mesin Basis Data membuat dan mempertahankan statistik sementara di tempdb. Untuk informasi selengkapnya, lihat Statistik.

Persyaratan Ruang 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.) Dibandingkan dengan salinan lengkap database, namun, rekam jepret sangat hemat ruang. 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 utama.

Namun, semakin lama Anda menyimpan rekam jepret, semakin besar kemungkinan untuk menggunakan ruang yang tersedia. Ukuran maksimum di mana file sparse dapat tumbuh adalah ukuran file database sumber yang sesuai pada saat pembuatan snapshot.

Jika rekam jepret database kehabisan ruang disk, rekam jepret harus dihapus (dihilangkan).

Nota

Kecuali untuk ruang file, rekam jepret database mengonsumsi kira-kira sebanyak sumber daya sebagai database.

Rekam Jepret Database dengan Grup File Offline

Grup file offline dalam database sumber memengaruhi rekam jepret database saat Anda mencoba melakukan salah satu hal berikut ini:

  • Membuat 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 akan 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 grup file offline pada saat pembuatan rekam jepret atau diambil offline saat rekam jepret database ada, grup file tetap offline. Ini karena mengembalikan file ke status online melibatkan pemulihan file tersebut, yang tidak dimungkinkan jika terdapat snapshot pada basis data.

  • Mengembalikan database sumber ke rekam jepret

    Mengembalikan database sumber ke rekam jepret database mengharuskan semua grup file online kecuali untuk grup file yang offline saat rekam jepret dibuat.

Tugas Terkait

Lihat Juga

Pencerminan Database dan Rekam Jepret Database (SQL Server)