首页 > 学技术 > 技术网文 > Informix > 正文

[原创] 关于Informix的多重驻留


来源 chinaunix.net 酷勤网整理

关于Informix的多重驻留
一、什么是多重驻留?
多重驻留(Multiple Residency)是指在同一台主机上运行多个OnLine实例,每个OnLine实例都拥有和管理自己的进程、共享内存和磁盘空间。多重驻留并不是指将OnLine软件安装到多个不同的目录。OnLine5.0、Online7.x与IDS都支持多重驻留,而且这几个不同版本的数据库存服务器可以驻留在相同的主机中。
由于在一个OnLine数据库服务器中可以建立多个数据库,用户通常不必使用多重驻留就可以满足多方面的数据管理要求。但有时为了满足特殊的要求,会发现使用多重驻留能带来许多方便。比如,OnLine的建档(archive)和逻辑日志份是针对整个数据库服务器的(在OnLine7.1中也可以只对某个dbspace建档),而不是针对于数据库的,为了将某些数据库分离出来管理使用,就可以考虑使用多重驻留。
总之,使用多重驻留可以有如下优点:
1、生产环境和开发环境分开;
2、隔离非常重要的数据库;
3、在单个主机上测试分布数据事务。
多重驻留之所以能独立运行并且不相互干扰,是由于这些不同的OnLine实例使用各自不同的共享内存区域和磁盘空间等资源。OnLine管理员必须为每个OnLine实例指定不同的配置文件(通过定议TBCONFIG或ONCONFIG环境变量),并且在配置文件中为下面的参数指定互不重复的值:
1、RVERNUM
通过设置不同的SERVERNUM,OnLine计算出不同的共享内存关键字值,并从UNIX操作系统申请到不同的共享内存段。OnLine进程和客户应用也会根据该值附加或找到所需要的共享内存。
2、ROOTPATH和ROOTOFFSET
    上面两个参数相结合唯一确定了root dbspace初始chunk,使得不同的OnLine使用不同的磁盘空间。(如果使用相同的ROOTPATH,注意根据前一个ROOTSIZE的值计算准确第二个OnLine的ROOTOFFSET的值)
3、ERVERNAME和DBSERVERALLASES(OnLine7)
    这两个参数使多个数据库服务器能根据名字相互连接。在OnLine5.0中,只提供一个DBSERVERNAME参数,如果没有安装INFORMIX-STAR连接产品,该参数没有实际作用。
4、MSGPATH
    该参数使不同OnLine实例的运行状态跟踪住处区分开来。
5、IRRORPATH和MIRROROFFSET
    如果对root dbspaces使用镜象,上面两个参数定义的磁盘空间在两个服务器上必须不能重复使用。
二、多重驻留的使用:
使用用多重驻留的方法是在配置好一个数据库服务器之后在对另一个数据库服务器进行配置。配置另一个服务器的步骤与以前相同,需要注意的是它们使用各自的配置文件,一些环境变量和配置参数必须指定不同的值。下面以OnLine7.1为例说明配置另一个OnLine的步骤:
1、Informix用户注册,拷贝一个新的ONCONFIG文件,并设置环境变量,设置新的ONCONFIG和INFORMIXSERVER环境变量。使ONCONFIG环境变量指向新的ONCONFIG配置文件。新的ONCONFIG文件名最好能反映该服务器的用途和序号(SERVERNUM),如onconfig.dev14,指示该数据库服务器用于开发环境并且使用的SERVER为14。
2、使用编辑和onmonitor个性新的onconfig配置文件,下面参数的值应与其他OnLine配置文件中的值不同:SERVERNUM、ROOTPATH及ROOTOFFSET、DBSERVERNAME、MSGPATH;如果使用镜象,还有MIRRORPATH和MIRROFFSET。
3、分配磁盘空间,检查分配给OnLIne的原始磁盘设备或UNIX文件的路径、属主和权限等是否满足要求。
4、修改连接文件,在$INFORMIXDIR/etc/sqlhosts中啬新的dbservername项,必要时还要在/etc/services等文件中啬相应的网络服务信息。
5、初始化磁盘空间(使用oninit –i命令),一定要注意用不同的环境变量。
6、如果使用onarchive备份工具,配置onarchive,onarchive使用onconfig.arc作为配置文件,并使用oper_deflt.arc作为操作员命令缺省文件。用户可以设置ARC_CONFIG和ARC_DEFAULT环境变量来指定新的文件名以替代上述两文件。
7、其他工作,为了使用方便,OnLine可以请操作系统管理员将启动和关闭各个OnLine的命令放到开/关机自动执行的脚本中。在启动或关闭多个OnLine时除了已经设置的INFORMIXDIR和PATH环境变量外,应该注意改变ONCONFIG和INFORMIXSERVER变量的设置。
当多个OnLine实例正常运行后,如果新的OnLine实例是缺省的数据库服务器,用户的INFORMIXSERVER环境变量应重新设为新的dbservername。在客户应用中使用SQL语句CONNECT或DATABASE也可以直接与指定的服务器连接。



 shmdhcxy 回复于:2006-01-06 18:29:35

这么好的帖子,没人回应实在让人心寒。
多驻留,其实实用性不是很大。


 IFMXDBA 回复于:2006-01-07 09:16:28

very good article. If you could make some examples in detail, it will be wonderful and makes it even more helpful.


 ccbkejc 回复于:2006-01-11 17:21:14

写的真是不错。
请问楼主一个问题,我在一台机器上运行两个online实例,SERVERNUM值分别为0和1。我每次执行oninit启动时都必须先启动SERVERNUM值为0的实例,然后再启动SERVERNUM值为1的实例,而反过来SERVERNUM值为1的实例可以启动,而SERVERNUM值为0的实例就不能启动,这是为什么?是哪里设置不对吗?还有就是当两个实例都处于online状态时,如果对其中一个实例执行onmode -ky停下来以后,再执行oninit就不能启动,必须将两个实例都停下来后,将机器重启后才能再次启动?


 zzjijun 回复于:2006-01-12 15:00:20

顶呀!


 pengch999 回复于:2006-09-28 18:36:09

多好的貼子,多向大夢學習!!!


 sunqim 回复于:2006-10-08 13:00:13

我现在需要做一个安装程序(称为子程序),它将作为另外一个程序(称为主程序)的component, OS是redhat linux,该机器已经安装了Informix并且已经有了主程序自己的online instance, 现在主程序要求子程序在安装时必须创建自己的online instance, 因为是安装程序,不能有人干预,像配置文件不能手工去配置, 只能用命令做完创建online instance的工作,我想请问是否可以做到? 如果可以,请指教需要哪些步骤? 多谢了。


 lysvictory 回复于:2006-10-20 10:09:44

多重驻留还是有用,我这里将生产库和历史库进行分离,就可以这样用


 lea_wang 回复于:2006-10-20 14:16:38

BZ顶




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=80349
转载请注明作者名及原文出处



收藏本页到: