Dari apa yang saya tahu, ada tiga cara yang mungkin untuk membuat cadangan database SQL Server Anda
- Cadangan penuh
- Cadangan diferensial
- Pengiriman Log
Apa pro dan kontra dari setiap strategi dan dalam situasi apa mereka harus dipekerjakan?
sumber
Dari apa yang saya tahu, ada tiga cara yang mungkin untuk membuat cadangan database SQL Server Anda
Apa pro dan kontra dari setiap strategi dan dalam situasi apa mereka harus dipekerjakan?
Pengiriman log bukan skenario cadangan. Ini adalah skenario semi tinggi yang tersedia.
Untuk cadangan ada cadangan log lengkap, diferensial, dan transaksi. Mereka semua harus digunakan bersama. SLA Anda menentukan cara Anda menggunakannya. Skenario paling umum adalah pencadangan penuh, misalnya pada tengah malam, pencadangan berbeda pada siang hari dan pencadangan log transaksi setiap 30 atau 15 menit.
Dan ingat: Anda tidak memiliki cadangan yang valid hingga Anda memulihkannya untuk menguji apakah tidak apa-apa.
Mungkin tidak ada konsep seperti strategi cadangan: Anda memiliki strategi pemulihan karena ini menentukan berapa lama sampai Anda kembali beroperasi *.
Semua strategi memerlukan cadangan penuh untuk mendasari pemulihan diferensial dan / atau pencatatan log berikutnya.
Dalam praktiknya, Anda dapat memiliki cadangan lengkap mulai 6 bulan yang lalu dengan cadangan log 15 menit: namun Anda harus menerapkan setiap cadangan log dari penuh terakhir.
Sebagai contoh acak, satu skenario bisa menjadi mingguan penuh, diferensial setiap hari, log 15 menit.
Interval pencadangan menentukan berapa banyak data yang akan hilang dalam kasus terburuk: Pencadangan log 15 menit memberi Anda kehilangan data antara 1 detik dan 14 menit 59 detik, rata-rata 7,5 menit. Apakah ini dapat diterima?
Pengiriman log adalah siaga hangat dengan kegagalan manual: ini bukan cadangan tetapi opsi ketersediaan tinggi.
Tidak ada satu strategi yang cocok untuk setiap situasi. Tetapi penting untuk memahami apa yang tersedia bagi Anda. Cadangan lengkap persis seperti apa itu: cadangan penuh basis data Anda, minus log transaksi. Cadangan diferensial adalah cadangan perubahan dalam file data sejak cadangan penuh terakhir. Pencadangan Log Transaksi akan mencadangkan semua transaksi yang disimpan dalam log transaksi sejak cadangan Log Transaksi terakhir. Pencadangan Log Transaksi akan memungkinkan Anda memulihkan ke titik waktu. Jika ini merupakan persyaratan, Anda harus mengatur mode pemulihan ke "Penuh" dan Anda harus mengambil cadangan Log Transaksi reguler tergantung pada seberapa banyak data yang Anda ingin kehilangan jika terjadi situasi pemulihan.
Saat berurusan dengan backup Log Transaksi, penting untuk memahami apa itu rantai log. Dalam kata-kata saya, rantai log adalah serangkaian cadangan yang harus dipulihkan untuk mengembalikan database Anda ke titik waktu tertentu. Untuk mulai memulihkan log transaksi, Anda harus mengembalikan cadangan penuh menggunakan opsi WITH NORECOVERY. Jika Anda juga melakukan cadangan diferensial, Anda akan ingin mengembalikan cadangan diferensial terbaru sebelum waktu yang ingin Anda pulihkan untuk menggunakan opsi WITH NORECOVERY yang sama. Pada titik ini, Anda harus mengembalikan cadangan Log Transaksi, secara berurutan, menggunakan opsi WITH NORECOVERY pada semua cadangan kecuali cadangan final. Untuk informasi lebih lanjut tentang pemulihan waktu, lihat tautan ini. http://msdn.microsoft.com/en-us/library/ms175093.aspx
Seperti disebutkan, Pengiriman Log bukan strategi cadangan, tetapi dapat mengurangi waktu pemulihan secara signifikan jika terjadi situasi pemulihan bencana. Satu hal yang perlu diwaspadai adalah bahwa setiap publikasi replikasi perlu dituliskan ke server Pengiriman Log dan diinisialisasi agar replikasi berfungsi seperti sebelum bencana. Dengan publikasi yang lebih besar, ini dapat menyebabkan peningkatan yang signifikan dalam waktu yang diperlukan untuk mengembalikan kembali ke tingkat produksi.
Semoga ini membantu,
Mat
Saya kedua Mladen Prajdic. Artikel ini akan membantu Anda memilih strategi pencadangan yang tepat tergantung pada Model Pemulihan basis data.
itu bukan strategi cadangan untuk SQL Server. Cadangan penuh dan diferensial adalah jenis cadangan yang dapat Anda lakukan untuk database SQL Server, sementara Pengiriman Log adalah strategi Ketersediaan Tinggi (dengan memindahkan cadangan log pada waktu yang dijadwalkan dari server ke yang lain dan memiliki 2 basis data dalam sinkronisasi hingga batas cadangan Anda).
Info bagus tentang Disaster Recovery (backup & restore :-)) dapat Anda temukan di MSDN: di sini dan di sini . Singkatnya, Anda harus memilih berapa banyak data yang dapat Anda pulihkan dari cadangan jika terjadi kegagalan. Contoh strategi cadangan yang masuk akal akan menjadi cadangan penuh setiap hari dan mencatat cadangan setiap jam (ini tergantung pada kebutuhan Anda), jadi dalam hal ini Anda dapat memulihkan basis data dari cadangan penuh + semua cadangan harian.
Referensi bagus lainnya tentang DR yang dapat Anda temukan di Simple_Talk .
Tentu saja, Anda tidak hanya perlu mengembalikan database Anda, ada pemulihan dalam konteks server dan aplikasi yang menjadi bagian dari database. Saya belum menggunakannya sendiri, tetapi Manajer Perlindungan Data terlihat melakukan pekerjaan yang lebih komprehensif, jika Anda membutuhkannya.
Cara terbaik adalah menggunakan ketiga jenis cadangan sekaligus. Tentu saja, Anda dapat mengabaikan cadangan diferensial dari cadangan log transaksi. Semuanya tergantung pada basis data Anda, seberapa cepat ia tumbuh, seberapa sering Anda membuat perubahan pada basis data Anda dan lainnya. Sebelum memilih paket cadangan, pertimbangkan berapa banyak data yang ingin Anda lepas? Berapa banyak waktu yang siap Anda habiskan untuk memulihkan database Anda?
Misalnya, Jika pertumbuhan basis data Anda cepat, Anda dapat menggunakan strategi pencadangan SQL Server berikut: pencadangan penuh - sekali sehari, pencadangan diferensial - setiap dua jam dan pencadangan log transaksi - setiap 20 menit. Dalam hal ini, jika kegagalan terjadi, Anda akan kehilangan tidak lebih dari 19 menit pekerjaan Anda. Contoh lain, jika pertumbuhan basis data Anda lambat, Anda dapat melakukan pencadangan penuh sekali sehari, pencadangan diferensial setiap enam jam, dan setiap jam membuat pencadangan log transaksi.
Satu tip lagi - untuk memastikan bahwa basis data Anda aman, dari waktu ke waktu pulihkan cadangan Anda di server uji.