db2像一次一样下降几个数据库

问题描述:

最近我开始使用db2,并创建了几个数据库。
要删除一个数据库我应该使用db2 drop db demoDB,有没有办法一次删除所有数据库?db2像一次一样下降几个数据库

感谢

+0

不 - 看起来工作太多了吗? :-) – MichaelTiefenbacher

第一,我不认为有任何DB2自然的方式来做到这一点。但我通常会做以下事情。在开始时,看到您的实例的所有数据库的方式为以下之一:

  1. DB2表db目录
  2. DB2列表中的活动活动数据库

取决于你的需要(所有数据块或者只是活动的DB)
我敢肯定有更多的DB列出你可以(在DB2用户指南)

我通常下降的方式我所有的数据块是通过使用shell脚本: 1.创建新脚本通过使用'vi db2_drop_all.sh'或其他你想要的方式。 2.粘贴代码:

#!/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.保存更改
4,只是运行该脚本(你切换到你的课程实例后)sh db2_drop_all.sh
注意,在步骤2中,您可以更改列表的数据库,如你所愿。 (例如到db2 list active databases

希望它对你有所帮助。 :)

+1

请记住,'list db directory'会列出本地和远程数据库,所以如果你的系统上有任何远程数据库编目,这个脚本可能会产生错误。理想情况下,您的脚本将只能找到具有“目录条目类型=间接”的数据库 –

+1

而且,“列表活动数据库”不一定显示任何数据库,如果它们恰好处于非活动状态。 – mustaccio

+0

你没事。 :)我只是给他一个线索如何用简单的bash脚本来做到这一点。这段剧本帮了我几个时间。 – nisanarz

考虑到以前的答案,这组行不做相同的脚本。

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 

这将过滤本地数据库并执行生成的输出。

(只适用于英文环境)

+0

很棒的建议。 :) – nisanarz