Kami memiliki file bak dari klien yang telah kami transfer ke kantor pengembang kami untuk penyelidikan masalah. Cadangan saat ini 25GB dan database yang dipulihkan sekitar ukuran yang sama namun perlu 100GB untuk dipulihkan. Saya percaya ini karena ada database yang diatur untuk memiliki ukuran log transaksi 75GB. Setelah memulihkan database, kita dapat mengecilkan file log tetapi apakah ada cara untuk melakukan ini di restore?
sql-server
sql-server-2005
backup
restore
Adam Butler
sumber
sumber
Jawaban:
Tidak ada cara untuk mengecilkan cadangan sebagai bagian dari proses pemulihan. Basis data yang dipulihkan harus persis seperti basis data sumber dengan satu-satunya pengecualian adalah Anda dapat mengubah huruf dan folder drive.
sumber
Ada peretasan do-not-do-do-this-in-a-live-environment yang dapat Anda gunakan di mana ruang terbatas, dengan mengembalikan file log ke folder terkompresi. Coba ini dengan mengompresi folder yang ada dan mengembalikannya akan menghasilkan kesalahan, jadi Anda harus menipu dengan tautan simbolik.
D:\LogCompressed\
Buat tautan simbolis ke folder terkompresi
mklink /D /J D:\Log\ D:\LogCompressed\
Kembalikan database Anda dengan menunjuk file ldf
D:\Log\
Kecilkan file log ke ukuran yang sesuai
Lepaskan database, pindahkan file log ke folder yang tidak terkompresi, lampirkan
Itu kotor, curang, JANGAN PERNAH MELAKUKANNYA LANGSUNG , tetapi berhasil. Uji cepat dari database yang baru dibuat dengan file log 32MB menunjukkannya sebagai menempati 330kb pada disk ketika dikompresi, mendekompres folder dan pada ukuran disk kembali ke 32MB.
sumber
Saya percaya bahwa alasan cadangan Anda adalah 25 GB dan basis data yang dipulihkan adalah 100 GB bukan karena log transaksi Anda. Yang saya duga adalah, file database Anda memiliki 100 GB ruang yang dialokasikan dan ada 25 GB data aktual dalam database.
Ada perbedaan antara ruang file database yang dialokasikan dan ruang data yang digunakan . Dalam hal ini, yang pertama adalah 100 GB dan yang terakhir adalah 25 GB.
sumber