Saya perlu mentransfer database (secara keseluruhan) ke server lain, untuk membuat database duplikat untuk mengatur lingkungan pengujian lain.
Saya punya dua pilihan:
- Buat cadangan penuh di server sumber / pulihkan di server tujuan;
- Lepaskan di server sumber / lampirkan di server tujuan.
Apa pro dan kontra dari dua solusi sesuai dengan persyaratan saya?
Saya menggunakan SQL Server 2008 Enterprise.
sql-server
sql-server-2008
backup
restore
Paul White 9
sumber
sumber
Jika Anda memutuskan untuk mencadangkan / mengembalikan, gunakan opsi WITH COPY_ONLY selama pencadangan untuk memastikan bahwa rantai cadangan rencana pemeliharaan yang ada tidak rusak.
File .bak kompres dengan baik, jadi jika Anda memutuskan untuk membuat cadangan, mengompres cadangan sebelum memindahkannya mungkin menghemat waktu transfer.
sumber
Saya akan melakukan backup / restore karena meninggalkan database asli dalam keadaan operasional.
Terutama jika Anda melakukan konversi 'produksi untuk menguji', penting agar basis data produksi tetap online.
Backup / restore juga merupakan pilihan yang lebih aman : Apa yang terjadi jika file menjadi rusak di suatu tempat antara awal detach, copy, attach, dll? Setidaknya jika Anda melakukan pencadangan dan file menjadi rusak, Anda dapat memulai kembali. Jika itu terjadi dengan detach, database Anda hilang.
Juga, bagi saya (meskipun lebih merupakan perasaan daripada yang lain), backup / restore adalah "pekerjaan sehari-hari" sedangkan detach / attach adalah sesuatu yang Anda lakukan dalam keadaan luar biasa. Jangan tanya saya dari mana saya mendapat ide ini ;-)
sumber
Saya selalu mengalami masalah dengan bagian "restore" dari backup / restore. Saya tidak bisa mengutip secara spesifik karena saya akhirnya menyerah dan telah mengirim / menyalin / melampirkan sejak itu.
Satu-satunya hal tentang detach adalah bahwa Anda HARUS HARUS memastikan Anda memastikan bahwa DBMS juga tidak akan menghapus database. Pernahkah ini terjadi, dan itu bukan pemandangan yang indah.
sumber
Saya merekomendasikan a
copy_only
cadangan menggunakan metode ini dari shell DOS (sehingga Anda tidak mengganggu log transaksi) :Lari dari
C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup
direktori:Di mana
backup.bat
berisi (line break ditambahkan untuk dibaca) :sumber