Je n'ai jamais réussi à le faire la première fois, mais maintenant je n'arrive plus du tout à le faire.
Il existe un pool de connexions quelque part utilisant la base de données, donc essayer de supprimer la base de données lorsqu'une application utilise la base de données devrait donner cette erreur. Le problème est qu'il n'y a pas de connexion à la base de données lorsque j'émets ces commandes:
db2 connect to mydatabase
db2 quiesce database immediate force connections
db2 connect reset
db2 drop database mydatabase
Cela donne toujours:
SQL1035N The database is currently in use. SQLSTATE=57019
l'exécution de cette commande ne montre aucune connexion / application
DB2 list applications
Je peux même désactiver la base de données, mais je ne peux toujours pas la supprimer.
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 =>
Quelqu'un a des indices? J'exécute les cmd-windows en tant qu'administrateur local (windows 2008) et c'est également l'administrateur de DB2. L'utilisateur connectionpool ne peut pas se connecter pendant l'état de repos.
DB2 connect reset
J'utilise simplement 'db2stop force', puis 'db2start', puis drop db. Cette méthode est meilleure que la commande quiesce qui est asynchrone par nature.
la source
Votre problème peut se produire en raison des différences entre
connect reset
etterminate
. Jetez un œil à cette discussion . Vous pouvez également consulter la documentation IBM. Donc, cela pourrait fonctionner pour vous si vous exécutez l'undb2 terminate instead
desdb2 connect reset
.la source
Le repos empêchera la chute de fonctionner. Nous avons été impliqués dans un grand effort de nettoyage et après avoir exécuté revoke / connect et mis au repos les bases de données, nous avons attendu quelques mois pour abandonner le test dbs. Notre commande drop ne fonctionnerait pas si nous ne supprimions pas la base de données puis la supprimions.
la source
Effectuez ces étapes à partir de la ligne de commande. Cela supprimera la base de données:
Forcer toutes les applications;
désactiver db;
drop db;
la source
Lorsqu'une base de données est mise au repos, elle se trouve toujours dans la chaîne de bases de données avec le gestionnaire de base de données, bien qu'elle soit marquée comme mise au repos. Lorsque vous essayez de le déposer, nous vérifierons s'il se trouve sur cette chaîne; si c'est le cas, alors il est toujours utilisé ==> Vous ne pouvez pas le supprimer.
Vous devez émettre une base de données de mise au repos ou émettre un db2stop et db2start, puis essayez de le supprimer. Ça devrait marcher.
la source
J'ai un problème similaire, mais peu importe comment je force l'arrêt de l'application, elle reviendra automatiquement.
Dans mon cas, c'est un service qui verrouille la base de données.
J'ai pu résoudre ce problème en mettant fin au service PID à partir du Gestionnaire des tâches Windows avec le PID trouvé dans la liste des applications DB2.
Pour trouver le PID, ouvrez DB2 Control Center, Toutes les bases de données, BASE DE DONNÉES (celle que vous essayez de supprimer), Liste des applications, Afficher la chaîne de verrouillage, Afficher les détails du verrou et faites défiler vers le bas pour trouver l'ID de processus client et terminez ce PID et réessayez.
J'espère que cela aidera les gens à l'avenir.
la source