Bagaimana saya bisa membuat cadangan database SQL Server menggunakan Windows Server Backup?

11

Rupanya Windows Server Backup memiliki beberapa dukungan untuk backup database SQL Server:

Kemampuan untuk memulihkan aplikasi. Windows Server Backup menggunakan fungsionalitas VSS yang dibangun ke dalam aplikasi seperti Microsoft® SQL Server® untuk melindungi data aplikasi. [Sumber: TechNet ]

Selain itu, orang-orang melaporkan bahwa Pencadangan Server Windows tampaknya memicu semacam operasi pencadangan di SQL Server .

Namun, saya gagal menemukan dokumentasi (resmi) tentang bagaimana tepatnya mem -backup database SQL Server menggunakan Windows Server Backup.

  • Apakah saya hanya perlu membuat cadangan .mdf? The .mdfdan .ldf?
  • Online atau hanya offline?
  • Apa prosedur resmi untuk memulihkan database SQL Server yang didukung seperti ini?
  • Apakah ada sesuatu yang istimewa untuk dipertimbangkan ketika melakukan backup inkremental / diferensial?
  • Di mana semua ini didokumentasikan?

(Saya tahu bagaimana melakukan backup dengan Rencana Pemeliharaan SQL Server sqlmaint.exe,, T-SQL BACKUP, dan SQL Server Agent. Saya hanya tertarik pada alternatif yang ditawarkan oleh Windows Server Backup (tampaknya?).)

Heinzi
sumber
Apa versi Windows Server, dan apa versi SQL server?
pauska
@ pauska: Secara pribadi, saya akan tertarik dengan Windows Server 2012 R2 dan SQL Server 2012. (Saya sengaja membuat pertanyaan lebih umum untuk membuatnya lebih bermanfaat bagi orang lain.)
Heinzi
1
Saya memiliki Windows Server 2008 yang sedang melakukan pencadangan penuh. Sejauh yang saya tahu itu adalah menarik database dari SQL Server Express sebagai bagian dari cadangan lengkapnya, karena setiap database mengatakan bahwa itu terakhir kali dicadangkan pada saat pencadangan berjalan. Ini membingungkan saya, karena saya mencoba mencari tahu bagaimana saya berhasil membuat cadangan basis data ini, karena saya tidak dapat menemukan skrip yang melakukannya di mana saja. Saya pikir saya akan tetap menulis skrip untuk melakukannya, sehingga saya tahu itu berfungsi dan tahu persis apa yang saya miliki.
Dave Cousineau

Jawaban:

5

Windows Server Backup tidak dimaksudkan sebagai alat cadangan untuk SQL Server.

... Namun, desain membuatnya sangat cocok untuk organisasi kecil atau individu yang bukan profesional TI ...

Kutipan dari Windows Server Backup Panduan Langkah-demi-Langkah untuk Windows Server 2008 bagian: "Siapa yang harus menggunakan Windows Server Backup?"

Bagian yang Anda kutip pada dasarnya mengatakan, bahwa ketika Windows Server Backup masuk, itu akan memicu fitur VSS di Windows. SQL Server akan menyadari bahwa Volume Shadow Copy sedang terjadi dan dengan bantuan layanan SQL Server Writer, akan memastikan bahwa salinan file database (* .mdf, * .ndf, * .ldf) dapat dilakukan.

Tujuan dari layanan SQL Server Writer didefinisikan sebagai berikut:

Saat berjalan, Mesin Basis Data mengunci dan memiliki akses eksklusif ke file data. Ketika Layanan Penulis SQL tidak berjalan, program cadangan yang berjalan di Windows tidak memiliki akses ke file data, dan cadangan harus dilakukan menggunakan cadangan SQL Server.

Gunakan SQL Writer Service untuk mengizinkan program cadangan Windows untuk menyalin file data SQL Server saat SQL Server sedang berjalan.

Kutipan dari bagian Layanan Penulis SQL : "Tujuan"

Jadi pada dasarnya itulah yang terjadi dengan Windows Server Backup.

Pencadangan yang dibuat dengan Pencadangan Windows Server saat SQL Server berjalan harus konsisten, tetapi transaksi yang belum ditulis ke disk belum ada di Salinan Bayangan Volume. Cuplikan database diambil saat sedang ONLINE.

Namun artikel MSDN Snapshot Backups menyatakan:

Hanya jenis cadangan berikut yang bisa menjadi cadangan snapshot:

  • Cadangan penuh
  • Cadangan sebagian
  • Cadangan file
  • Cadangan basis data diferensial. Ini didukung hanya ketika vendor menggunakan antarmuka VSS.

dan tambahan:

Kecuali seperti yang disebutkan sebelumnya dalam topik ini, backup snapshot secara fungsional setara dengan backup konvensional yang sesuai. Anda dapat menggunakan cadangan snapshot dalam memulihkan urutan dengan cadangan penuh non-snapshot, cadangan diferensial, dan cadangan log. Seperti cadangan lainnya, cadangan snapshot dilacak dalam database msdb, di mana cadangan snapshot diidentifikasi oleh backupset.is_snapshot = 1. Untuk informasi lebih lanjut tentang msdb, lihat Database msdb.

SQL Server tidak mendukung pemulihan online dari cadangan snapshot. Mengembalikan cadangan snapshot secara otomatis membuat database offline. Pemulihan sedikit demi sedikit dapat memasukkan cadangan snapshot, tetapi semua urutan pengembalian adalah pemulihan offline. Untuk informasi lebih lanjut tentang pemulihan sedikit demi sedikit, lihat Melakukan Pemulihan sedikit demi sedikit.

Untuk menjawab pertanyaan Anda:

  • Apakah saya hanya perlu mencadangkan .mdf? .Mdf dan .ldf?
  • Online atau hanya offline?
  • Apa prosedur resmi untuk memulihkan database SQL Server yang didukung seperti ini?
  • Apakah ada sesuatu yang istimewa untuk dipertimbangkan ketika melakukan backup inkremental / diferensial?
  • Di mana semua ini didokumentasikan?

Jawaban:

  1. Ya, Anda dapat melakukan salinan Windows Server Backup (VSS) dari file .mdf dan .ldf. Cadangan harus konsisten, tetapi database akan menjadi OFFLINE setelah pemulihan.
  2. Jika SQL Server dihentikan / database dilepaskan / database OFFLINE maka salinan VSS dari file .mdf dan .ldf adalah 100% konsisten.
  3. Saya tidak yakin tentang cara mengembalikan database (ke titik waktu) yang dilakukan dengan Windows Server Backup, karena database dipulihkan dalam keadaan OFFLINE. Basis data dalam status OFFLINE tidak dapat dipulihkan / dipulihkan lebih lanjut dan membawa hasil ONLINE database dalam basis data yang dianggap sepenuhnya pulih. Saya akan merekomendasikan terpisah SQL Server FULL, DIFF, dan TLOG Backups untuk memastikan Anda dapat melakukan pemulihan database ke titik-dalam-waktu.
  4. Log Transaksi bukan bagian dari snapshot yang dibuat dengan Cadangan Server Windows dan harus dilakukan sebagai tambahan. Snapshot diferensial didukung oleh vendor pihak ketiga sebagai bagian dari urutan pencadangan, tetapi Windows Server Backup tampaknya tidak dapat melakukan pencadangan diferensial. Dalam hal ini Anda juga harus melakukan cadangan diferensial tambahan. (lihat 3.)
  5. Referensi yang berbeda

Dijelaskan dalam implementasi kehidupan nyata

Di lingkungan kami, kami memiliki situasi serupa di mana VMware melakukan snapshot dan DBA sedang melakukan dump SQL Server dengan Commvault. Riwayat cadangan terlihat seperti ini:

DBNAME  TYPE BACKUPSET_NAME            IS_SNAPSHOT BACKUP_START_DATE        
------- ---- ------------------------- ----------- -----------------------  
DB_NAME  Full  NULL                    1           2016-12-10 18:23:59.000  
DB_NAME  Full  CommVault Galaxy Backup 0           2016-12-10 20:07:41.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-11 06:00:40.000  
DB_NAME  Full  NULL                    1           2016-12-11 18:24:00.000  
DB_NAME  Diff  CommVault Galaxy Backup 0           2016-12-11 20:03:38.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-12 06:02:29.000  
DB_NAME  Log   CommVault Galaxy Backup 0           2016-12-12 07:02:17.000  

Snapshot VMware akan membuat entri dalam tabel sejarah database MSDB dengan IS_SNAPSHOT = 1dan FULLuntuk setiap snapshot VMware yang dilakukan (setiap hari). Cadangan SQL Server asli (well Commvault menggunakan asli) dilakukan menggunakan cadangan FULL, DIFF, dan TLOG. Cadangan ini tidak ditandai sebagai IS_SNAPSHOT dan ada sebagai entri FULL (seminggu sekali) tambahan, DIFF (setiap hari) dan LOG (setiap jam) di tabel cadangan di database msdb.

Dengan pengaturan ini, kita dapat melakukan pemulihan ke snaphot date-time dan kemudian membawa database ONLINE, atau kita dapat melakukan pemulihan individu ke titik-waktu dengan menggunakan cadangan SQL Server "asli".

John alias hot2use
sumber
1

Kamu tidak bisa Atau setidaknya Anda seharusnya tidak. Sejauh menyangkut database SQL Server, cadangan asli adalah metode yang didukung.

Saya pikir Anda mungkin salah paham tentang apa yang dikatakan artikel TechNet. Komentar yang Anda kutip tidak menunjukkan bahwa Anda dapat menggunakan cadangan Windows Server untuk database SQL Server. Sebenarnya hanya menyoroti bahwa cadangan Windows Server menggunakan Volume Shadow Copy Service yang sama yang digunakan oleh SQL Server. Info lebih lanjut: TechNet: Layanan Penulis SQL

shiitake
sumber
Saya tahu bahwa saya tidak boleh - saya tidak akan mempercayakan data saya pada fitur yang kurang terdokumentasi. Namun, saya ingin tahu apakah mungkin, secara teoritis: SQL Server memang menyediakan penulis VSS, dan Windows Server Backup adalah pemohon VSS, jadi saya akan membiarkan pertanyaan terbuka untuk saat ini. Mungkin itu hanya masalah mencocokkan keduanya (ada, misalnya, instruksi online tentang cara melakukan ini untuk penulis Hyper-V VSS ).
Heinzi
1
Rupanya, Windows Server Backup tidak memicu beberapa jenis backup SQL server, lihat quesiton ini .
Heinzi
1

Sql backup tidak hanya menyalin data, tetapi juga memotong log. Anda dapat menemukan ratusan opsi di halaman manual yang akan membantu Anda, seperti mengompres file cadangan dengan cepat.

Saya ingat bahwa vss backup digunakan untuk menyalin Mesin Virtual yang dibekukan atau untuk snapshotting lun pada SAN untuk mencadangkan gambar statis, tetapi cadangannya akan "konsisten" seperti halnya gangguan daya dan tidak benar-benar konsisten.

Terkait

Massimiliano Piccinini
sumber
0

Saya pikir ini menggunakan jenis cadangan khusus yang disebut "Snapshot Backup".

Dari dokumentasi SQL Server 2008:

SQL Server snapshot cadangan juga digunakan oleh Microsoft Windows Server 2003 Volume Shadow Copy Service (VSS) dan oleh semua perangkat lunak cadangan dan perangkat lunak penyimpanan yang menggunakan kerangka kerja ini. Untuk informasi lebih lanjut, lihat Layanan Penulis SQL.

Itu semua sangat tidak jelas bagi saya. Terutama jika ini memotong log transaksi atau tidak.

StackzOfZtuff
sumber