Saya perlu membuat cadangan hingga 10-20 database SQL Server 2008 R2 dengan ukuran antara 10-50 GB, saat itu sedang online dan digunakan secara bersamaan oleh satu aplikasi perusahaan. Saya juga perlu mengembalikannya ke keadaan yang sebagian besar disinkronkan di semua basis data (saya mampu melakukan desync hingga beberapa detik di antara basis data). Tujuannya adalah untuk menangkap data produksi untuk lingkungan QA / DEV.
Saya sangat ingin tidak menuntut database berjalan dalam pemulihan penuh dan untuk datang dengan metode cadangan yang didedikasikan untuk menangkap data untuk lingkungan QA dan tetap independen dari proses cadangan utama yang tidak di bawah kendali saya.
Untuk pelanggan saya, akan dibutuhkan 1-2 jam untuk menangkap 20 backup penuh masing-masing ~ 30 GB. Ini membuat pengambilan cadangan lengkap secara berurutan tidak dapat diterima karena basis data akan terlalu tersinkronisasi ketika dijalankan dalam pemulihan sederhana.
Saya mencari ide yang lebih baik dari ini:
GAGASAN 1: snapshot SAN-level disk VM. xcopy MDF / LDF dari snapshot.
Setelah file yang disalin dilampirkan ke instance server yang berbeda, proses pemulihannya harus menghasilkan database konsisten yang snapshot cukup banyak secara bersamaan.
Googling sekitar meyakinkan saya ini adalah ide yang buruk, setidaknya karena saya mungkin mendapatkan desync vs master / msdb / etc.
IDEA 2: Buat cadangan & sinkronisasi-pengembalian yang kompleks di semua basis data
Ini mengharuskan saya menuntut basis data berjalan dalam pemulihan penuh, yang tidak saya inginkan. Mulai pencadangan paralel untuk semua basis data jauh sebelum batas waktu (T0). Setelah T0 tercapai, buat cadangan semua log (paling lama beberapa menit). Ambil segudang cadangan yang dihasilkan dan cobalah untuk mengembalikannya & gulung maju / mundur untuk mendapatkan keadaan yang agak konsisten di seluruh basis data, relatif terhadap T0.
Ini membutuhkan banyak perencanaan & skrip untuk menggunakannya secara andal sehingga saya akan berusaha keras untuk menghindarinya.
Apakah saya kehilangan beberapa solusi lain?
PS1: Saya akan senang bisa menggunakan snapshot db . Idenya adalah untuk memulai snapshot pada setiap db (yang seharusnya selesai dalam hitungan detik), kemudian sepenuhnya mencadangkan masing-masing secara berurutan selama menit / jam berikut. Kemudian kembalikan semuanya pada server yang berbeda dan kembalikan masing-masing ke snapshot. AFAIK skenario ini tidak dimungkinkan karena snapshot tidak dapat dicadangkan bersama dengan database. Mereka hanya dapat digulirkan kembali ke tempatnya, di server tempat mereka dibuat. Selain itu, mereka memerlukan Edisi Perusahaan yang tidak saya miliki untuk semua pelanggan.
PS2: Jika Anda tahu solusi pihak ke-3 yang mampu menghasilkan cadangan sinkronisasi lintas-db, harap sebutkan.