2014年06月27日
テナントへのDB作成・削除
Informix V12.10.xC4で採用された"Multitenancy"機能を使ってDBを作成するには、これまでのCREATE DATABASEではなくSQLADMIN APIを使用します。
また、DBを作成するときにDB_LOCALEを指定する方法もこれまでの環境変数によるやり方とは異なります。ログモードの指定方法も違いますね。
また、DBを作成するときにDB_LOCALEを指定する方法もこれまでの環境変数によるやり方とは異なります。ログモードの指定方法も違いますね。
使用例はこんな感じです。
テナントへのDB作成には、Admin API の'tenant create'コマンドを使用します。この時にログモードや作成時DB_LOCALEを指定します。最初に、各テナント専用のDB領域を作るのもお作法のひとつですね。
すでに他のDBが存在する場所にtenant createしようとすると、こんなエラーが発生します。
以下の例では、tenant create の前に tenant drop コマンドを使っていますが、これは繰り返し実行のために入れたものなので、初回DB作成時には必要ありません。
テナントへの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"}'
);
!
Posted by oninit at 08:15│Comments(0)
│ちょっと細かいテックネタ
※このブログではブログの持ち主が承認した後、コメントが反映される設定です。