* 相关的文件如下:
informixdir下面--
.bash_profile
etc/onconfig.xxx
etc/sqlhosts
/etc/services
/etc/hosts
* 数据库启动时(oninit)要启动一个默认的数据库服务。这个默认的数据库服务在onconfig.xxx中指定DBSERVERNAME。例如:
DBSERVERNAME reconsilation # Name of default database serve
* 然后会去etc/sqlhosts中寻找reconsilation。 sqlhost中内容如下:
reconsilation onipcshm yuyinka on_shm
reconsilation_net onsoctcp yuyinka sqlexec
(说明:其中的yuyinka是指/etc/hosts中定义的主机名)
* 可以看到reconsilation用共享内存方式连接。如果只是这样,本机之外通过网络是无法连接informix的。在onconfig.xxx中DBSERVERNAME下面
还有一项:
DBSERVERALIASES reconsilation_net # List of alternate dbservernames
是指DBSERVERNAME的别名,这样,寻找reconsilation时,同样可以去寻找reconsilation_net
这样sqlhosts中已经给出了reconsilation_net 对应服务sqlexec,就可以通过网络进行连接了。
别名可以指定多个,最多32个。中间用逗号隔开。
* /etc/services中指出了sqlexec的端口
sqlexec 9999/tcp
* 另外说明一点env中的INFORMIXSERVER要对应onconfig中的DBSERVERNAME,具体用处在哪不知道。
* 这样默认的数据库服务reconsilation就可以启动了。
* 用oninit启动后建立数据时,会呈现这样的名字:test@reconsilation test是指数据库名字,后面的reconsilation是指当前启动的informix实例的名字。
* 下面我想换一个默认的启动,只要把env中的ONCONFIG变量换成另外一个onconfig文件,(对应的DBSERVERNAME,DBSERVERALIASES 要更改),还要把env的INFORMIXSERVER改变一个值。
* 建立数据库时,选择的表空间,会是在onconfig中出现的设备文件,比如rootdbs, phydbs等
* 共享内存连接方式,只能是服务器在本机时使用。不能用于网络连接。所以etc/sqlhosts中的
reconsilation onipcshm yuyinka on_shm 最后面不用指定 /etc/services中对应的服务