2017-09-25 2 views

Répondre

-1

d'abord, je ne pense pas qu'il y ait aucune façon de nature db2 de le faire. Mais je fais habituellement la chose suivante. Au début, la façon de voir toutes les bases de données sur votre instance est l'une des suivantes:

  1. liste db2 répertoire db
  2. liste db2 bases de données actives actives

dépend de votre besoin (tous les blocs de données ou tout simplement le BDs actif)
Je suis sûr qu'il ya plus de BDs listes que vous pouvez obtenir (au guide de l'utilisateur DB2)

la façon dont je laisse tomber habituellement tous mes blocs de données est à l'aide script shell. 1. créer de nouveaux script en utilisant 'vi db2_drop_all.sh' ou d'une autre manière que vous voulez. 2. coller le code:

#!/bin/bash -x 

for db_name in $(db2 list db directory | grep Database | \ 
       grep name | cut -d= -f2); do 
     db2 drop db $db_name || true 
done 
exit 0 

3. Enregistrer les modifications
4. et il suffit d'exécuter le script (après vous avez changé à votre instance bien sûr) sh db2_drop_all.sh
Notez que dans l'étape 2, vous pouvez modifier la liste des DBs comme vous le souhaitez. (par exemple à db2 list active databases)

J'espère que cela vous a aidé. :)

+1

Gardez à l'esprit que 'list db directory' listera les bases de données locales et distantes, donc ce script peut produire des erreurs si vous avez des bases de données distantes cataloguées sur votre système. Idéalement, votre script ne trouvera que les bases de données qui ont 'Directory entry type = Indirect' –

+1

De plus,' list active databases' ne montre pas nécessairement les bases de données, si elles sont inactives. – mustaccio

+0

Tout va bien. :) Je lui ai juste donné une idée de la façon de le faire avec un simple script bash. Ce script m'a aidé quelques fois avant. – nisanarz

0

En tenant compte de la réponse précédente, cet ensemble de lignes fait de même sans créer de script.

db2 list db directory | tail -n +6 | sed 'N;N;N;N;N;N;N;N;N;N;N;s/\n/ /g' | awk '$28 = /Indirect/ {print "db2 drop database "$7}' | source /dev/stdin 

Ceci filtre les bases de données locales et exécute la sortie générée.

(fonctionne uniquement en anglais)

+0

Excellente suggestion. :) – nisanarz