同じインストール環境を他のマシン上で作成する方法 ― 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
# ./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 パラメータで指定されたファイルに書き込まれます。
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;
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問合せ言語を実行します。
- 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 ...
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.
% 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
手順としては以下のようになります。
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
最近のコメント