2014年06月27日

テナントへのDB作成・削除

Informix V12.10.xC4で採用された"Multitenancy"機能を使ってDBを作成するには、これまでのCREATE DATABASEではなくSQLADMIN APIを使用します。

また、DBを作成するときにDB_LOCALEを指定する方法もこれまでの環境変数によるやり方とは異なります。ログモードの指定方法も違いますね。

使用例はこんな感じです。
テナントへのDB作成には、Admin API の'tenant create'コマンドを使用します。この時にログモードや作成時DB_LOCALEを指定します。最初に、各テナント専用のDB領域を作るのもお作法のひとつですね。

すでに他のDBが存在する場所にtenant createしようとすると、こんなエラーが発生します。

(expression) DBSpace [tenantdbs4] is not empty.

以下の例では、tenant create の前に tenant drop コマンドを使っていますが、これは繰り返し実行のために入れたものなので、初回DB作成時には必要ありません。

dbaccess sysadmin - <<!
EXECUTE FUNCTION task("create dbspace", "tenantdbs3",
"/opt/IBM/informix/1210-64/yaemon/dbspaces/tenantdbs3.000", "60 M", 0 );
EXECUTE FUNCTION task("create dbspace", "tenantdbs4",
"/opt/IBM/informix/1210-64/yaemon/dbspaces/tenantdbs4.000", "60 M", 0 );
!


dbaccess sysadmin - <<!
EXECUTE FUNCTION task('tenant drop', 'jutf8');
EXECUTE FUNCTION task('tenant create', 'jutf8',
'{dbspace:"tenantdbs3", logmode:"buffered", locale:"ja_jp.utf8" }'
);
!
dbaccess sysadmin - <<!
EXECUTE FUNCTION task('tenant drop', 'jsjis');
EXECUTE FUNCTION task('tenant create', 'jsjis',
'{dbspace:"tenantdbs4", logmode:"buffered", locale:"ja_jp.sjis-s"}'
);
!



同じカテゴリー(ちょっと細かいテックネタ)の記事
DBACCESS_COLUMNS
DBACCESS_COLUMNS(2020-04-03 00:33)


※このブログではブログの持ち主が承認した後、コメントが反映される設定です。
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。