SQL Server 2005 saya tidak mengembalikan cadangan karena koneksi aktif. Bagaimana saya bisa memaksanya?
sql-server
sql-server-2005
backup
restore
disconnect
Jader Dias
sumber
sumber
Jawaban:
SQL Server Management Studio 2005
Ketika Anda mengklik kanan pada database dan klik
Tasks
lalu klikDetach Database
, itu memunculkan dialog dengan koneksi aktif.Dengan mengklik tautan di bawah "Pesan" Anda dapat mematikan koneksi yang aktif.
Anda kemudian dapat mematikan koneksi tersebut tanpa melepaskan basis data.
Informasi lebih lanjut di sini .
SQL Server Management Studio 2008
Antarmuka telah berubah untuk SQL Server Management studio 2008, berikut adalah langkah-langkahnya (via: Tim Leung )
sumber
Anda ingin mengatur db ke mode satu pengguna, lakukan pengembalian, lalu atur kembali ke multiuser:
Referensi: Pinal Dave ( http://blog.SQLAuthority.com )
Referensi resmi: https://msdn.microsoft.com/en-us/library/ms345598.aspx
sumber
ROLLBACK IMMEDIATE
atauROLLBACK AFTER 60
. Satu-satunya cara untuk menyimpan data itu adalah dengan melakukan backup lain setelah rollback. Tetapi Anda sedang memulihkan dari cadangan yang berbeda. Jadi, apa gunanya menunggu? Apakah saya melewatkan sesuatu?Kode ini berfungsi untuk saya, itu membunuh semua koneksi yang ada dari database. Yang harus Anda lakukan adalah mengubah baris Set @dbname = 'databaseName' sehingga memiliki nama database Anda.
setelah ini saya bisa mengembalikannya
sumber
Coba ini:
sumber
Restart server SQL akan memutuskan pengguna. Cara termudah yang saya temukan - bagus juga jika Anda ingin menjadikan server offline.
Tetapi untuk beberapa alasan yang sangat aneh, opsi 'Ambil Offline' tidak dapat diandalkan dan dapat membuat hang atau membingungkan konsol manajemen. Mulai ulang lalu ambil karya offline
Terkadang ini adalah opsi - jika misalnya Anda telah menghentikan server web yang merupakan sumber koneksi.
sumber
Saya mengalami masalah ini saat mengotomatiskan proses pemulihan di SQL Server 2008. Pendekatan saya (berhasil) adalah campuran dari dua jawaban yang diberikan.
Pertama, saya menjalankan semua koneksi dari basis data tersebut, dan membunuh mereka.
Kemudian, saya mengatur basis data ke mode single_user
Lalu, saya menjalankan pemulihan ...
Bunuh koneksi lagi
Dan atur database kembali ke multi_user.
Dengan cara ini, saya memastikan bahwa tidak ada koneksi yang menahan database sebelum mengatur ke mode tunggal, karena yang pertama akan membeku jika ada.
sumber
Tidak ada yang berfungsi untuk saya, tidak bisa menghapus atau memutuskan pengguna saat ini. Juga tidak dapat melihat koneksi aktif ke DB. Restart SQL Server (Klik kanan dan pilih Restart) memungkinkan saya untuk melakukannya.
sumber
Untuk menambah saran yang sudah diberikan, jika Anda memiliki aplikasi web yang berjalan melalui IIS yang menggunakan DB, Anda mungkin juga harus menghentikan (tidak mendaur ulang) kumpulan aplikasi untuk aplikasi saat Anda memulihkan, kemudian memulai kembali. Menghentikan kumpulan aplikasi mematikan koneksi http aktif dan tidak mengizinkan lagi, yang sebaliknya dapat memicu proses yang terhubung ke dan dengan demikian mengunci basis data. Ini adalah masalah yang diketahui misalnya dengan Sistem Manajemen Konten Umbraco saat memulihkan basis datanya
sumber
Tidak satu pun di atas bekerja untuk saya. Basis data saya tidak menunjukkan koneksi aktif menggunakan Activity Monitor atau sp_who. Saya akhirnya harus:
Bukan solusi yang paling elegan tetapi berfungsi dan tidak perlu me-restart SQL Server (bukan pilihan bagi saya, karena server DB meng-host banyak database lain)
sumber
Saya lebih suka melakukan ini,
ubah database yang ditetapkan offline dengan rollback segera
dan kemudian pulihkan database Anda. setelah itu,
mengubah database yang ditetapkan online dengan rollback segera
sumber