Saya tidak pernah mendapatkan ini bekerja pertama kali, tapi sekarang saya sepertinya tidak bisa melakukannya sama sekali.
Ada kumpulan koneksi di suatu tempat menggunakan database, jadi mencoba untuk menjatuhkan database ketika aplikasi menggunakan database harus memberikan kesalahan ini. Masalahnya adalah tidak ada koneksi ke database ketika saya mengeluarkan perintah ini:
db2 connect to mydatabase
db2 quiesce database immediate force connections
db2 connect reset
db2 drop database mydatabase
Ini selalu memberi:
SQL1035N The database is currently in use. SQLSTATE=57019
menjalankan perintah ini tidak menunjukkan koneksi / aplikasi
DB2 list applications
Saya bahkan dapat menonaktifkan basis data, tetapi masih tidak bisa menghapusnya.
db2 => deactivate database mydatabase
DB20000I The DEACTIVATE DATABASE command completed successfully.
db2 => drop database mydatabase
SQL1035N The database is currently in use. SQLSTATE=57019
db2 =>
Adakah yang punya petunjuk? Saya menjalankan cmd-windows sebagai administrator lokal (windows 2008) dan ini juga merupakan admin untuk DB2. Connectionpool-user tidak dapat terhubung selama kondisi diam.
DB2 connect reset
Saya hanya menggunakan 'db2stop force', lalu 'db2start', lalu drop db. Cara ini lebih baik daripada perintah diam yang asinkron secara alami.
sumber
Masalah Anda mungkin terjadi karena perbedaan
connect reset
danterminate
. Lihat diskusi ini . Anda juga dapat melihat dokumentasi IBM. Jadi itu mungkin bekerja untuk Anda jika Anda menjalankandb2 terminate instead
adb2 connect reset
.sumber
Quiesce akan mencegah drop bekerja. Kami terlibat dalam upaya pembersihan besar-besaran dan setelah menjalankan pencabutan / sambungkan dan quiescing basis data, kami menunggu beberapa bulan untuk menghentikan tes dbs. Perintah drop kami tidak akan berfungsi kecuali kami membatalkan db lalu menjatuhkannya.
sumber
Lakukan langkah-langkah ini dari baris perintah. Ini akan menjatuhkan db:
Paksa semua aplikasi;
nonaktifkan db;
drop db;
sumber
Ketika db diam, itu masih dalam rantai database dengan manajer db, meskipun ditandai sebagai diam. Ketika Anda mencoba menjatuhkannya, kami akan memeriksa untuk melihat apakah itu ada di rantai ini; jika demikian, maka masih digunakan ==> Anda tidak bisa menjatuhkannya.
Anda harus mengeluarkan unbiesce db atau mengeluarkan db2stop dan db2start dan kemudian mencoba untuk menjatuhkannya. Itu harus bekerja.
sumber
Saya memiliki masalah yang sama tetapi tidak peduli bagaimana saya memaksa aplikasi untuk berhenti, itu akan kembali secara otomatis.
Dalam kasus saya, ini adalah Layanan yang mengunci basis data.
Saya dapat menyelesaikan ini dengan menghentikan layanan PID dari Windows Task Manager dengan PID ditemukan di Daftar Aplikasi DB2.
Untuk menemukan PID, buka Pusat Kontrol DB2, Semua Basis Data, DATABASE (yang ingin Anda jatuhkan), Daftar Aplikasi, Tampilkan Rantai Kunci, Tampilkan Detail Kunci dan gulir ke bawah untuk menemukan ID Proses Klien dan akhiri PID ini dan coba lagi.
Semoga ini bisa membantu orang di masa depan.
sumber