Bagaimana cadangan SQL berbeda dari cadangan server reguler malam hari IT?

9

Departemen TI kami mencadangkan seluruh server setiap malam (contoh SQL Server diinstal pada server ini), yang seharusnya mencadangkan server itu serta seluruh jaringan, jika terjadi kesalahan ...

Jadi manajer saya bertanya apa yang penting dari cadangan SQL Penuh, Diferensial, dan Log SQL saya, apa pun yang didukung oleh departemen TI? Untuk menghemat lebih banyak ruang di server kami daripada menyimpan file-file ini selama beberapa minggu dan menghapusnya, dia pikir TI hanya akan menyediakannya!

Saya tahu itu tidak benar, karena saya dapat memulihkan hingga 30 menit terakhir dengan cadangan log saya, IT mengembalikannya pada hari berikutnya, tetapi apakah ini satu-satunya perbedaan?

Karena saya menyimpan / mengirim file cadangan database saya ke server yang sama, TI akan mengembalikannya tetapi jika saya tidak memiliki pekerjaan cadangan ini dalam rencana pemeliharaan saya maka TI hanya dapat mengembalikan contoh SQL tanpa tabel, transaksi ... dll. Apakah saya mendapatkan ini dengan benar?
Nasihat apa pun akan sangat dihargai.

Mary
sumber

Jawaban:

8

Pencadangan basis data memberi Anda kemampuan pemulihan tepat waktu (asalkan Anda memiliki FULLmodel pemulihan). Bahkan jika orang-orang TI Anda mengambil cadangan setiap beberapa menit, yang sangat tidak mungkin, Anda masih memiliki celah.

Server cadangan tidak menggantikan cadangan database, mereka melengkapi mereka dengan "pengarsipan" file cadangan database jangka panjang (yaitu lebih dari sekadar hari ini).

Pada akhirnya Anda dan manajemen Anda harus memutuskan RPO Anda (sasaran titik pemulihan - seberapa banyak yang Anda butuhkan untuk dapat pulih dalam kerusakan). Dengan hanya cadangan server harian dan tanpa cadangan basis data, Anda bisa kehilangan pekerjaan sehari penuh dalam kasus terburuk.

Sunting : @Sting memiliki poin yang valid dalam salinan bayangan (mekanisme yang paling mungkin digunakan untuk membuat cadangan server) tidak sangat mungkin untuk mengambil salinan secara simultan semua file database Anda (termasuk file log), yang dapat menyebabkan ketidakkonsistenan saat Anda mengembalikan cadangan. Misalnya, jika salinan bayangan membaca log transaksi beberapa milidetik sebelum membaca file database, file database dapat berisi transaksi yang tidak dikomit, tetapi karena transaksi dilakukan milidetik kemudian, log tidak akan memiliki catatan tentang itu.

Daniel Hutmacher
sumber
Terima kasih Daniel, ya kita memiliki model pemulihan LENGKAP, ITU menjalankan backup server malam hari mereka pada jam 7 malam, saya menjalankan database saya cadangan LENGKAP pada jam 6 sore, saya juga memiliki cadangan Diferensial harian dan Pencadangan log setiap 30 menit selama jam kerja ... Jadi jika Saya mengerti Anda dengan benar, IT dapat memberikan saya pemulihan yang saya butuhkan dari file cadangan server 7: pm tapi saya juga akan memerlukan file cadangan DB 6pm karena mereka tidak saling menggantikan dan mereka berbeda?
Mary
2
Dengan cadangan basis data yang dikirimkan ke server lain, jika server Anda macet, Anda akan memiliki kapabilitas pemulihan point-in-time hingga cadangan log transaksi terakhir (tidak peduli kapan server itu sendiri didukung). Jika Anda hanya mengandalkan backup server saja, Anda harus kembali ke status database tadi malam jam 7 malam .
Daniel Hutmacher
1
Ini adalah jawaban terbaik yang saya kira. Sebagai sysadmin, saya menggunakan sistem cadangan server saya untuk menyelesaikan masalah seputar DR dari server basis data atau basis data sebagai bagian dari seluruh infrastruktur saya. Admin DB kami menggunakan cadangan SQL untuk menyelesaikan masalah seputar masalah dengan basis data dan ransaksi dengan cara yang lebih fokus. Itu bukan untuk mengatakan bahwa kedua jenis cadangan tidak dapat melakukan tugas ganda dan menyelesaikan masalah yang lain tetapi mereka memiliki fokus yang sedikit berbeda ...
Rob Moir
7

Ada kemungkinan bahwa pemulihan file mdf dan ldf dari salinan bayangan akan tidak konsisten secara transaksi. Itu berarti, bayangan ini mengembalikan tidak mematuhi properti ACID database.

https://msdn.microsoft.com/en-us/library/aa480356.aspx

Kemungkinannya adalah pemulihan akan berhasil, tetapi Anda akan bertanya-tanya apa yang sebenarnya Anda dapatkan. (Belum lagi, Anda akan ditugaskan untuk menguji untuk memastikan cadangan server / salinan bayangan bekerja dengan baik pada setiap dan setiap server) Selain itu, tidak ada cara untuk mengembalikan log transaksi ke titik waktu seperti Anda dapat menggunakan SQL Server T -SQL RESTORE LOG / STOPAT.

Hingga cadangan / pemulihan Windows Server mematuhi uji ACID SQL Server, industri kami tidak dapat mengambil risiko.

Setelah mengatakan semua ini, saya telah menghadiri beberapa pertemuan paling aneh. Jika Anda menyampaikan masalah tersebut kepada IT dan mereka tampaknya masih tidak peduli atau mereka bersedia mengambil risiko, itu menghilangkan beban besar dari bahu Anda. Apa pun yang terjadi, dokumentasikan risalah pertemuan tentang apa pun yang diputuskan setiap orang dan mengapa semua orang memutuskannya dan mengirimkannya kepada para peserta rapat.

Menyengat
sumber
5
Risiko ini bisa jauh lebih tinggi tergantung pada cara kerja perangkat lunak "cadangan sistem" dan apakah file data / log untuk database apa pun ada di drive yang berbeda. Salinan bayangan sangat bagus hingga tidak cocok.
Aaron Bertrand
Bukankah snapshot volume Windows seharusnya konsisten?
usr
@ Usr Saya tidak berpikir itu benar di seluruh volume.
Andy
3

Ini semua tergantung pada produk apa yang digunakan departemen TI Anda untuk cadangan tingkat server.

Misalnya, dalam lingkungan virtual, VMWare akan mengambil snapshot dari server. Jika SQL Server terlibat, VMWare memiliki opsi yang mengaktifkan sebagian besar Admin (atau bisa jadi secara default saya tidak tahu) yang akan membekukan IO untuk database selama snapshot. Sekarang sementara ini hanya membutuhkan waktu beberapa detik Anda memiliki potensi untuk itu menyebabkan masalah pada aplikasi Anda, dan bukan metode tepercaya untuk digunakan untuk memulihkan database.

Jika Anda menggunakan produk pihak ke-3 untuk melakukan backup tingkat server, kemungkinannya adalah ini hanya mengambil cadangan tingkat file dari database Anda. Dalam hal itu juga harus memiliki kemampuan untuk mengambil cadangan file yang dikunci, karena SQL Server memiliki file mdf dan ldf yang terlampir terkunci dari perspektif Windows. BackupExec dari Symantec misalnya menggunakan Advanced Open File Option untuk melakukan ini, sehingga pada dasarnya dapat mengambil gambar dari file yang terkunci itu. Hanya cara yang terdengar akan membuat sebagian besar DBA ngeri jika harus mengembalikan database dengan cadangan seperti itu, pikirkan tentang konsistensi database ketika mengambil cadangan itu. Tidak ada jaminan jika cadangan diaktifkan saat proses pemuatan data terjadi, bagian mana dari beban data yang diperoleh cadangan itu?

Cadangan asli SQL Server dapat dipercaya dengan hormat mereka diverifikasi sebagai cadangan yang baik. Anda tahu persis di negara mana mereka berada saat Anda mem-backup FULL, apakah Anda memiliki jadwal ini di sekitar pemuatan data dan semacamnya. Cadangan log untuk model pemulihan LENGKAP menjamin Anda dapat memulihkan basis data tersebut pada yang kedua.

Jika manajer Anda mati untuk menggunakan cadangan tingkat server saya akan sangat meneliti produk yang mereka gunakan. Saya akan mencari tahu apakah ada SQL Server "add-on" atau agen cadangan yang dapat dibeli untuk membuatnya melakukan backup VDI dari database.

Sesuatu yang juga perlu dipertimbangkan dan didiskusikan dengan manajer Anda adalah keterlibatan apa yang perlu Anda miliki dalam memverifikasi dan mengatasi masalah jika cadangan SQL Server gagal. Saya telah menggunakan Netbackup banyak pada pekerjaan sebelumnya dan memiliki klien beberapa tahun yang lalu ingin saya melalui pengujian penggunaan agen SQL Server Netbackup untuk lingkungan mereka. Ini termasuk DBA lain yang juga harus memberikan dukungan. Saya memberi tahu mereka di muka bahwa pemecahan masalah kegagalan cadangan untuk SQL Server mengharuskan Anda untuk mengetahui sedikit tentang Netbackup. Server master Netbackup umumnya dijalankan di server Unix, jadi Anda sekarang harus tahu beberapa Unix .... bisa menyenangkan tetapi lebih menyebalkan jika Anda sudah sibuk. Hanya sesuatu yang perlu dipertimbangkan dan bisa menjadi titik diskusi yang baik dengan manajer Anda, dan cari tahu siapa yang bertanggung jawab atas kegagalan pemecahan masalah.


sumber
0

Hanya ada kurang dari sejuta variabel dalam pertanyaan Anda. Anda perlu berbicara dengan departemen TI Anda tentang cadangan apa yang mereka ambil. Kemungkinan besar mereka memiliki atau dapat memiliki cadangan hingga menit yang tersedia. Berapa lama mereka memuat itu tergantung pada lebih banyak variabel.

Dalam skenario yang sempurna, departemen TI Anda menyimpan cadangan di satu atau beberapa server berbeda di lokasi berbeda. Anda mungkin menyimpan cadangan di server yang sama dengan basis data Anda. Jadi jika server mati atau bangunan Anda terbakar, departemen TI Anda mungkin dapat memulihkan file Anda, tetapi cadangan yang Anda ambil akan hilang bersama server.

TETAPI Anda dapat memulihkan cadangan Anda, dengan kecepatan Anda, kapan pun Anda mau, asalkan server Anda masih hidup.

Seperti yang dikatakan orang lain, itu tergantung pada apa kebutuhan Anda, toleransi Anda terhadap risiko, dan seberapa penting kendali waktu pemulihan. Jika Anda ingin pemulihan dari sesuatu yang Anda lakukan bodoh, cadangan Anda akan lebih cepat dan lebih baik. Jika Anda ingin pulih dari bencana di luar kendali Anda, cadangan IT (seharusnya) adalah pilihan yang lebih baik.

James Jenkins
sumber