Saya sedang bekerja menyiapkan salinan pengembangan database produksi di SQL Server 2008 R2 SP1. Basis data langsung semakin sedikit digunakan oleh dua pengembang untuk permintaan hanya baca saat ini, tetapi basis data baru juga akan melakukan pembaruan.
Karena database adalah 2.1TB dan membutuhkan total 3 hari untuk memulihkan dan memperbarui ke versi terbaru yang kami butuhkan untuk pengujian, rencana awal saya adalah membuat satu set file cadangan baru dan kemudian memulihkan dari file-file itu. Ini akan memungkinkan saya untuk membuat salinan pengembangan database pada mesin dan contoh SQL yang sama, tanpa harus membuat offline database saat ini.
Namun, untuk menghemat beberapa hari itu, saya berpikir mungkin ide yang bagus untuk menyalin file database fisik dan melampirkan salinan database yang baru. Sayangnya ketika saya mencoba untuk menyalin saya mendapatkan kesalahan mengacu pada kunci yang menempatkan SQL Server pada file-file itu.
Karena saya tidak bisa membuat database offline untuk apa pun selain mentransfer file log (saya bisa menyelesaikan ini sebelum orang-orang masuk di pagi hari), apakah ada cara saya bisa menyalin file database langsung tanpa menempatkan database ke status offline? Atau haruskah saya menunggu sampai orang pulang untuk melakukan itu?
sumber
Tidak, Anda harus membuatnya offline untuk menyalin file. Jika database Anda dibagi menjadi file / filegroup yang lebih kecil, ini bisa membantu dalam membuat pemulihan cadangan lebih cepat setelah Anda melakukannya sekali (tergantung pada data apa yang berubah dan data apa yang diperlukan untuk salinan pengembangan).
sumber
Saya telah melihat jawaban lain dan mereka masuk akal. Namun, hanya untuk menjawab pertanyaan Anda, Anda tentu dapat menyalin file basis data tanpa menjadikan DB offline. Anda harus menggunakan pemrograman SMO untuk tujuan ini. Lihat ini: http://technet.microsoft.com/en-us/library/ms162175(v=sql.100).aspx
Harap dicatat bahwa tautan yang disediakan adalah untuk objek pemrograman SMO umum dan bukan jawaban spesifik untuk pertanyaan ini. Saya belum melakukannya tetapi saya akan segera mencoba ini dan akan membiarkan semua orang tahu (jika saya ingat), apa yang saya temukan.
sumber
Iya.
Yang harus Anda lakukan adalah mengatur basis data menjadi read-only:
Lari:
Salin file database - MDF, LDF, dll ke tujuan baru mereka
Setelah penyalinan selesai, Anda dapat melepaskan dan melampirkan kembali lokasi baru. Pastikan untuk mengatur ulang opsi hanya-baca dan Anda menggunakan akun pengguna yang sama saat memanipulasi file-file ini. Juga, Anda mungkin ingin menghapus file lama setelah pindah.
Metode lain
Setelah file berhasil disalin (langkah 2 di atas):
Anda dapat mengatur basis data ke:
Single_User
mode lalu:Lari:
D:\
menjadi lokasi baruPastikan file data di lokasi baru (
D:\
) memiliki akses penuh ke akun layanan yang menjalankan SQL Server.Mulai ulang layanan SQL
Lari:
Selesai!
sumber