目次に戻る データベースのデータをファイルにする

あるマシンのデータベースにあるデータを別のマシンに移したい場合、一度ローカルのファイルにデータを出力し、そのファイルを元に別のマシンのデータベースにデータを書き込みます。
また、データをファイルとして保存しておくことで、データベースのバックアップにもなります。

データベースよりデータを読み込み、ファイルに出力するコマンドとして、EXPORTがあります。
EXPORTコマンドは、読み込んできたデータを別のデータベースに移行するための、NOMADプロシージャも出力します。


データベースのデータをファイルにする
例えば、リモートのORACLEデータベース(サーバー名がCCCC、ユーザーIDがAAAA、パスワードがBBBB)で「BOOKSHOP」というものがあるとします。このデータベースをアクティブにします。
REMOTE ORA ORACLE USRERID AAAA PASSWORD BBBB SERVICENAME CCCC ;
DATABASE BOOKSHOP * REMOTE ORA ;
このアクティブになった「BOOKSHOP」のデータをEXPORTコマンドを使ってファイルにします。
リモートのデータベースだけでなく、ローカルのNDBでも同じようにEXPORTできます。
EXPORT BOOKSHOP ;
EXPORTを実行すると、以下のようなファイルが、NOMADの作業領域(DSM.INIの[DSMCGI]セクションのbnCurPathで指定されたNOMADカレントディレクトリ)に作成されます。
BOOKSHOP.SCH (データベース名.SCH) データベースのスキーマファイル
BOOKSHOP.NOM (データベース名.NOM) EXPORTしたデータを他のデータベースに移行するためのプログラム(NOMADプロシージャ)
BOOKSHOP.EXL (データベース名.EXL) 出力したファイルに関する情報
XXXX.DAT (マスター名.DAT) データベースに含まれるテーブルごとのデータを格納するファイル。
1つのファイルに1つのテーブルの情報が格納されるため、データベースに複数のテーブルがある場合は、複数のファイルが「マスター名.DAT」として出力される。

出力されるファイルのなかで、「データベース名.EXL」のファイルは使いませんので削除してかまいません。
残りの、SCH・NOM・DATの拡張子のファイルを保管しておくことで、データベースのバックアップになります。


EXPORTしたファイルをデータベースに移行する
EXPORTした時に生成されるファイル「データベース名.SCH」・「データベース名.NOM」・「マスター名.DAT」を使って、リモートのデータベースにデータを移行します。
「データベース名.NOM」ファイルは、EXPORTしたデータを他のデータベースに移行するためのNOMADプログラムが記述されています。これをそのまま実行すると、ローカルのNOMADデータベース(NDB)にデータベースが作成され、「マスター名.DAT」を元にテーブルのデータも作成したNDBに格納されます。

この「データベース名.NOM」のファイルを「リモートのデータベースを作成する」ように書き換えることで、指定のサーバーの指定のデータベースにデータを転送することができるようになります。

「データベース名.NOM」のソースの中で、以下のようにスキーマを作成しデータベースを起動する部分があります。
SCHEMA BOOKSHOP ;DA BOOKSHOP ;
これを、以下のように置き換えることで、サーバー名がCCCC、ユーザーIDがAAAA、パスワードがBBBのリモートのORACLEデータベースに、スキーマ作成・データベース作成することになります。
REMOTE ORA ORACLE USERID AAAA PASSWORD BBBB SERVICENAME CCCC ;
SCHEMA BOOKSHOP REMOTE ORA ;
DA BOOKSHOP * REMOTE ORA ;
このファイルを保存して、プロシージャを実行することにより、指定の場所にデータベースが作成されます。