Apakah mungkin untuk membuat cadangan dan memulihkan bagian dari database di sql-server?

19

Kami memiliki database sql-server 2005 yang kami transfer secara berkala dari situs klien kami ke kami. Ini membutuhkan waktu lama karena kami tidak memiliki koneksi langsung dan harus mentransfer file melalui aplikasi transfer file berbasis web mereka. Basis data saat ini sekitar 10GB namun kami tidak memerlukan semua data - sebagian besar dalam tabel audit dan tabel yang menyimpan nilai terhitung yang dapat dihasilkan kembali.

Saya telah melihat cara membuat filegroup untuk menampung tabel audit dan berharap saya bisa membuat cadangan dan memulihkan filegroup utama. Saya dapat membuat cadangan baik-baik saja tetapi ketika memulihkan saya mendapatkan kesalahan mengatakan bahwa saya tidak mengembalikannya ke database yang sama. Apakah mungkin untuk memulihkan bagian dari database ke server lain menggunakan filegroup? Apakah ada cara yang lebih baik untuk melakukan ini?

Adam Butler
sumber
1
Anda bisa mendapat manfaat dari membaca pertanyaan ini: Pencadangan sekecil mungkin ... dengan SQL Server , dan terutama jawaban Brent.
Marian
Karena ini tidak terlihat mungkin tanpa banyak Hackery, saya percaya kita mungkin melihat memindahkan semua tabel log audit ke database yang terpisah
Adam Butler
Apakah ini tidak memerlukan perubahan kode dalam aplikasi? Itu agak berlebihan untuk diminta klien.
Shawn Melton

Jawaban:

15

Sejujurnya, ini paling mudah:

  • backup / pulihkan salinan secara lokal
  • hapus data yang tidak diinginkan dari salinan (dengan DELETE atau TRUNCATE TABLE, bukan DROP ...)
  • kirimkan salinannya

Saya tidak akan repot dengan filegroup karena kompleksitas tambahan yang Anda catat ...

gbn
sumber
1
Saya sarankan mengubah database yang baru dipulihkan ini ke model pemulihan sederhana. msdn.microsoft.com/en-CA/library/ms189272.aspx
datagod
7

Cara Anda berbicara hanya membutuhkan grup file utama, sepertinya bagi saya Anda hanya menginginkan struktur basis data dan jumlah data yang sangat kecil. Saya akan menyarankan jika Anda hanya ingin pembaruan struktur database (objek, tabel, dll) cukup skrip database dengan semua objek. Ini dapat dilakukan dengan cepat dan mudah dengan PowerShell.

Maka data yang sebenarnya Anda butuhkan, yang tidak dapat dibuat ulang, cukup ekspor yang keluar (skrip PowerShell juga bisa melakukan ini). Saya yakin file ekspor kemudian dapat dikompresi menjadi ukuran kecil dan kemudian ditransfer melalui koneksi ke situs Anda.

Tentu saja seperti ini, saran @gbn dapat dituliskan sehingga terserah Anda untuk menentukan opsi mana yang membutuhkan waktu paling sedikit.

Shawn Melton
sumber
2

Ini dimungkinkan menggunakan sedikit demi sedikit pemulihan . Objek dan filegroup basis data sumber harus diatur sedemikian rupa sehingga mendukung hal ini. RESTORE membutuhkan kata kunci spesifik tambahan.

Meskipun konsep ini mungkin memerlukan sedikit waktu untuk membiasakan diri, jumlah skrip untuk diterapkan tidak lebih dari itu untuk solusi lain yang disarankan.

Michael Green
sumber
-1

Klik kanan dan buat skrip, lalu ubah nama database menjadi target (USE db).

Dijelaskan di sini

Jude
sumber
Apakah ada yang salah?
Yudas