Symfoware

Symfowareについての考察blog

Symfowareのデータベースを削除する一番簡単な方法

久しぶりにSymfowareネタ。

テストで作成したデータベースを削除したくなったのですが、
どうやれば一番簡単に作業できるか考えたのでメモしておきます。





rdbprtでスキーマとデータベーススペースの情報取得



テーブルを消すのは、スキーマ削除のコマンドにcascadeオプションを付けて、
スキーマに関連するテーブルを同時に削除してしまうのが一番簡単。

データベースに存在するスキーマとデータベーススペース名を取得するため、
まず、

DB<改行>


とだけ記載したファイルを用意します。今回は「db.txt」という名前で保存しました。

05_001_20110729135357.png


rdbprt -m DEF -d [データベース名] -f [入力ファイル] > [出力ファイル]


というコマンドを実行して、データベースの情報を出力します。



C:\>rdbprt -m DEF -d DB1 -f db.txt > result.txt
qdg12074i:rdbprtが正常終了しました 復帰コード 00




出力された「result.txt」を開くと、最初の方に
「Schema information」と「Database space information」という項目があると思います。
ここがこのデータベースに存在するスキーマ名とデータベーススペース名になります。

05_002_20110729135357.png


これで「DB1」というデータベースには「SC001」というスキーマと
「DBSP_SAMPLE」というデータベーススペースが存在することがわかりました。






削除用のコマンドファイル作成と削除実行



データベースに存在するスキーマ名とデータベーススペース名が分かったので、
削除するためのコマンドを記載したファイルを作成します。


ファイルの内容は以下の通り。


drop schema [スキーマ名] cascade;
drop DBSPACE [データベーススペース名];
drop database [データベース名];




今回の例だと以下のようになります。


drop schema SC001 cascade;
drop DBSPACE DBSP_SAMPLE;
drop database DB1;



なお、スキーマやデータベーススペースが複数存在する場合には、
以下のように、その数分記載します。


drop schema SC001 cascade;
drop schema SC002 cascade;
drop schema SC003 cascade;

drop DBSPACE DBSP_SAMPLE_1;
drop DBSPACE DBSP_SAMPLE_2;

drop database DB1;




今回は作成したファイルを「drop.txt」という名前で保存しました。

rdbddlexを使用して、drop.txtの内容を実行します。
コマンドの形式は以下の通り。


rdbddlex -d [データベース名] [実行するコマンドを記載したファイル名]





実際に実行すると、こんな表示になると思います。


C:\>rdbddlex -d DB1 drop.txt
qdg12228i:スキーマ削除文の実行が正常終了しました
qdg12228i:データベーススペース削除文の実行が正常終了しました
qdg12228i:データベース削除文の実行が正常終了しました
qdg02200i:rdbddlexが正常終了しました 復帰コード 00








削除の確認




rdbprt -m DB


を実行してデータベースの一覧を表示すると、削除できたか確認できると思います。


C:\>rdbprt -m DB
Database name list
No.     Database name
1         DB2
2         DB3
3         RDBII_DICTIONARY
qdg12074i:rdbprtが正常終了しました 復帰コード 00





関連記事

テーマ:データベース - ジャンル:コンピュータ

  1. 2011/07/29(金) 17:53:18|
  2. 運用
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
次のページ