同じインストール環境を他のマシン上で作成する方法2008年03月04日 18時57分33秒

IDS をインストール際に "-record"というオプションを指定することで、インストールの状態を記録することができるようになっています。例えば以下のよな指定方法です。

# ./ids_install -record responsfile.ini


そこで、他のマシン上でIDSをインストールする際にこのファイルを指定すれば、全く同じ状態のインストール環境を構築することが可能になります。また"-silent "や"-acceptlicense=yes"オプションを組み合わせることで、インストール時にインストールスクリプトからいちいち尋ねられることもなくなりますね。

# ./ids_install -silent -acceptlicense=yes -options responsfile.ini

Windows環境でISMを使ってonbarを動かす手順2008年02月28日 19時13分40秒

Windows環境でonbarを動作させるためのISMのセットアップ手順をまとめてみました。

1. Informixでログオンする。

2. 以下の2つの環境変数を定義する。

ISMDIR=C:\ISM\2.20
PATH に C:\ISM\2.20\bin を追加

3. ISM関連の3つのサービスを停止する。

- ISM Local Execution
- ISM Portmapper
- ISM Server

4. すべてのプログラム -> IBM Informix Dynamic Server -> サーバー名 を選び、DOS上のプロンプトから以下を実行。
   
ism_startup -init

5. onconfig ファイルの中の以下の2つのパラメータを変更。
   
  編集前
  ISM_DATA_POOL ISMData
  ISM_LOG_POOL ISMLogs
 
  編集後
  ISM_DATA_POOL ISMDiskData
  ISM_LOG_POOL ISMDiskLogs

6. %INFORMIXDIR%\bin\onbar.bat ファイルを以下のように変更。

  編集前
  %ISMDIR%\bin\ism_catalog -create_bootstrap -pool ISMData >NUL 2>NUL

  編集後
  %ISMDIR%\bin\ism_catalog -create_bootstrap -pool ISMDiskData >NUL 2>NUL


7. onconfig ファイルのLTAPEDEV をNUL 以外に指定する

  LTAPEDEV C:\dummy

8. %INFORMIXDIR%\etc\ism_versions.std ファイルを sm_versions ファイルにコピーする。


9. 以下を実行

ism_add -admin informix@xxxxx     # xxxxxはホスト名

set SM_DISKDEV1=c:\ism\devices\dbspaces
set SM_DISKDEV2=c:\ism\devices\logfiles

ism_add -device %SM_DISKDEV1% -type file
ism_add -device %SM_DISKDEV2% -type file
ism_op -label %SM_DISKDEV1% -pool ISMDiskData -volume ISMData
ism_op -label %SM_DISKDEV2% -pool ISMDiskLogs -volume ISMLogs
ism_op -mount %SM_DISKDEV1%
ism_op -mount %SM_DISKDEV2%


10. onbarを実行する。以下はインスタンス全体のバックアップを取得する例。

onbar -b -L 0

11. 実行結果は、onconfig ファイルのBAR_ACT_LOG パラメータで指定されたファイルに書き込まれます。

クエリー・プランのみ確認する方法2008年02月27日 19時11分07秒

set explain on; を実行するとクエリープランがファイルに書き込まれると思いますが、長い検索時間が必要なクエリーは実際には実行したくないですよね。

V10からは以下のような AVOID_EXECUTE オプションを指定すると、クエリーは実際に実行されずにクエリープランだけが出力されるようです。

set explain on avoid_execute;

UTF8のロケールを使用する時の注意2007年08月17日 14時54分55秒

最近のLinuxのディストリビューションでは、UTF8がデフォルトの日本語ロケールになっています。よって今後ますますInformixにおいてもUTF8のロケールを設定することが予想されますが、少し注意が必要です。

- ILSは必ずインストールする
- DB_LOCALE=ja_jp.utf8, CLIENT_LOCALE=ja_jp.utf8 以外にも、GL_USEGLU=1 環境変数の定義が必要。


例えば、DB_LOCALE=ja_jp.utf8, CLIENT_LOCALE=ja_jp.utf8 だけの定義では、dbaccessのメニューは以下のように化けてしまいます。

$ env | grep LOCALE
DB_LOCALE=ja_jp.utf8
CLIENT_LOCALE=ja_jp.utf8
$ dbaccess
DB-Access: Q/裹・ C/跚カ D/聽聽聽 T/陦 S/聽聽・ E/邨莠
SQL裹肛ィ隱肄ョ陦聽聽


ここで、GL_USEGLU=1 も設定するときれいに表示されますね。

$ setenv GL_USEGLU 1
$ dbaccess
DB-Access: Q/問合せ C/接続 D/データベース T/表 S/セッション E/終了
SQL問合せ言語を実行します。

dbexport/dbimportによる2Gの制限2007年04月04日 16時12分01秒

Online V5とかV7.31では、dbexport/dbimportで指定できる入出力媒体へのサイズは2Gまでとの制限がありました。つまり、もし2Gを超えるようなデーターベースをテープ媒体に書き込む場合は、最終的にテープは複数本になってしまいます。

V9.40やv10ではこのような制限は実際には無くなりましたが、サイズ指定のオプションである -s において2Gを超えるような指定をした場合は、以下のようにやはりエラーになります。

% onstat -

IBM Informix Dynamic Server Version 9.40.FC4 -- On-Line -- Up 00:04:31 -- 71680 Kbytes

% dbexport stores_demo -t `pwd`/tape_dev -b 20 -s 3145728
Tape size must be a positive integer between 0 and 2097151


もし、媒体に2Gを超えるようなデータを書き込みたい場合は、以下のように-sの指定において、制限なしの意味であるゼロを指定することで可能になります。

% dbexport stores_demo -t `pwd`/tape_dev -b 20 -s 0

Performing export on database stores_demo

Please mount the tape and press return to continue ...

truncate table 文2007年03月28日 18時19分52秒

oracleにはtruncate table 文というのがあり、テーブルの全データを素早く削除することができますが、InformixもV10からこのtruncate table 文をサポートしてます。

% onstat -

IBM Informix Dynamic Server Version 10.00.FC6 -- On-Line -- Up 00:11:25 -- 39936 Kbytes


% dbaccess testdb -

Database selected.

> select count(*) from test_tbl;


(count(*))

28

1 row(s) retrieved.

> truncate table test_tbl;

Table truncated.

> select count(*) from test_tbl;


(count(*))

0  <<-- ゼロ件になっているのが確認できます

1 row(s) retrieved.

バックアップの標準出力への出力について2007年03月02日 01時38分02秒

IDS V10から、ontapeによるバックアップが標準出力へ出力することが可能になっています。これっていろいろunixのコマンドと組み合わせることができるので便利ですね。

手順としては以下のようになります。

1) onconfigのTAPEDEVパラメータにSTDIOとセットします。

% onstat -c | grep TAPEDEV
TAPEDEV STDIO


2) ontapeを実行する時に -tオプションでSTDIOと指定します。この例では、一緒に暗号化してかつ圧縮しています。

% ontape -s -L 0 -t STDIO | crypt key123 | compress > /informix/archive/bak.Z
% ls /informix/archive/bak.Z
/informix/archive/bak.Z


3) 復元する時は、この逆なので以下のようになります。

% cat /informix/archive/bak.Z | uncompress -c | crypt key123 | ontape -r -t STDIO

最近のコメント

最近のトラックバック

このブログについて

IBM Informix データーベースに関するお話し

<< 2008/03 >>
01
02 03 04 05 06 07 08
09 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

メッセージ

RSS