Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1466127
  • 博文数量: 139
  • 博客积分: 10005
  • 博客等级: 中将
  • 技术积分: 4740
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-01 14:39
文章分类

全部博文(139)

文章存档

2010年(63)

2009年(27)

2008年(49)

我的朋友

分类: DB2/Informix

2008-04-13 22:28:17

新的数据库产品的发布,伴随着许多新的功能和新的支持,如果新版本的数据库能解决困扰企业平时头痛的技术问题,升级是最好的选择了。Ids10.0在安全性,服务器可用性,性能方面,SQL,备份和恢复,应用程序开发等方面都有所增强。下面简单介绍一下ids9.4升级到ids10.0步骤。


[关键字]

数据库,Informix,ids10.0,ids9.4,升级,

1,1, 验证数据库空间大小。确保rootdbs10%的可用数据空间,plogdbs,llogdbs3000个可用页,每个数据空间每个数据库有2000可用数据空间。

2,2,确保没有用户需要使用数据库,关闭数据库。

3,3,修改informix用户下面的etc/sqlhosts文件,把需要升级的数据库服务器名称(DBSERVERNAME)所对应的服务器名(servicename)修改为暂时没有用的端口。或者修改/etc/services文件中对应服务器名的端口号。两者的目的是一样的,就是重起数据库后更改服务的端口,防止其他用户连接到数据库。

4,4, 重起数据库,此时数据库的服务端口已改,做数据库的全备。(备份大于一切呀,在升级的过程中很肯定会出现问题的)

5,5, 执行onmode -yuk关闭数据库

6,6,把老的Informix文件改名。例如:mv Informix Informix.old

7, 7,检查/etc/nsswitch.conf文件。确保hosts那一行只有files字段,没有dns字段。不知道是不是Informix10.0的安全性提高的的缘故,如果nsswitch.conf文件中hosts那一行中有dns字段的话,会先通过dns查找informix目录下的etc/sqlhosts文件中对应的主机名,如果dns查询不到,初始化informix会失败。

8,8,新建一个Informix的文件夹,把文件夹用户,属组改为Informix,并把老文件夹中的环境变量等信息复制到新文件中。

Mkdir Informix ; chown Informix:Informix Informix ; cp Informix.old/.* Informix

9, 安装10.0版本的informix.

10,设置Informix/etc目录下面的sqlhosts文件,sm_versions文件,$ONCONFIG文件和老配置文件一样。设置$ONCONFIG文件的时候,可以先把TAPEDEV,LTAPEDEV选项置为空,防止转换期间日志过多。

11,执行oninit –v 开始数据库升级。升级的过程和平时启动差不多,不过通过日志文件可以具体看出系统都在执行那些步骤。

日志信息:

Event alarms enabled. ALARMPROG = '/home/informix/etc/alarmprogram.sh'

Booting Language from module <>

Loading Module

Booting Language from module <>

Loading Module

DR: DRAUTO is 0 (Off)

IBM Informix Dynamic Server Version 10.00.UC4

Conversion from version 9.40 Started

Conversion control block initialization

Succeeded

Initialization of Conversion Session

Conversion waiting for physical recovery to complete

Initialization of Conversion Session Succeeded

Conversion Disabling Client Connections

IBM Informix Dynamic Server Initialized -- Shared Memory Initialized.

Physical Recovery Started at Page (2:99695).

Physical Recovery Complete: 0 Pages Examined, 0 Pages Restored.

Logical Recovery Started.

10 recovery worker threads will be started.

Converting Partition Header Page 1:14.

Converting Partition Header from version 9.40

Succeeded

Converting Partition Header Page 1:15.

Converting Partition Header from version 9.40

Succeeded

。。。。。。中间省略

Converting Partition Header from version 9.40

Succeeded

Logical Recovery has reached the transaction cleanup phase.

Logical Recovery Complete.

0 Committed, 0 Rolled Back, 0 Open, 0 Bad Locks

。。。。。。

日志显示继续转换参数等信息,从这里可以看出informix9.4informix10.0之间的参数都有那些改变等等:

Onconfig parameter JVPJAVAVM modified from hpi:server:verify:java:net:zip:jpeg to jsig:hpi:jvm:java:net:zip:jpeg.

Onconfig parameter JVPJAVALIB modified from /lib/i386/ to /bin.

Onconfig parameter JVPCLASSPATH modified from /home/informix/extend/krakatoa/krakatoa.jar:/home/informix/extend/krakatoa/jdbc.jar to /home/informix/extend/krakatoa/krakatoa.jar:/usr/informix/extend/krakatoa/jdbc.jar.

Onconfig parameter LOGSIZE modified from 4000 to 2000.

Onconfig parameter TAPEDEV modified from /dev/st0 to /dev/null.

Onconfig parameter TAPESIZE modified from 73728000 to 10240.

Onconfig parameter LTAPEDEV modified from /dev/st0 to /dev/null.

Onconfig parameter LTAPESIZE modified from 73728000 to 10240.

Onconfig parameter DUMPDIR modified from /tmp to /home/informix/tmp.

Onconfig parameter SHMVIRTSIZE modified from 64000 to 32000.

Onconfig parameter SHMADD modified from 8192 to 16000.

Onconfig parameter ALARMPROGRAM modified from /home/informix/etc/log_full.sh to /home/informix/etc/alarmprogram.sh.

中间还有很多有用的信息,有兴趣的可以自己查看日志。

日志的接近最后出后出现:

Conversion Completed Successfully

说明转换完成

一直到最后显示:

Maximum server connections 0

On-Line Mode

说明升级完成,此时数据库已经是10.0了,不过还有一下后续的工作需要继续。

升级中遇到的问题(先在这里写出来吧)

1, 第一个错误是kaio错误,升级时候的日志信息提示:

23:35:33 IBM Informix Dynamic Server Version 10.00.UC4

23:35:33 Assert Failed: initializing KAIO failed

23:35:33 IBM Informix Dynamic Server Version 10.00.UC4

23:35:33 Who: Session(1, informix@Test, 0, (nil))

Thread(11, kaio, 0, 1)

File: kaioapi.c Line: 246

23:35:33 Results: io_queue_init(32768) failed returning -22, errno = 0

23:35:33 stack trace for pid 5195 written to /home/informix/tmp/af.3f364c5

23:35:33 See Also: /home/informix/tmp/af.3f364c5, shmem.3f364c5.0

23:35:35 initializing KAIO failed

23:35:36 io_queue_init(32768) failed returning -22, errno = 0

23:35:36 Assert Failed: kaiothread() ERROR

23:35:36 IBM Informix Dynamic Server Version 10.00.UC4

23:35:36 Who: Session(1, informix@test, 0, (nil))

Thread(11, kaio, 0, 1)

File: kaio.c Line: 2063

23:35:36 stack trace for pid 5195 written to /home/informix/tmp/af.3f364c5

23:35:36 See Also: /home/informix/tmp/af.3f364c5

23:35:38 kaio.c, line 2063, thread 11, proc id 5195, kaiothread() ERROR.

23:35:38 PANIC: Attempting to bring system down

23:35:38 semctl: errno = 22

23:35:38 semctl: errno = 22

通过查看以日志,已经上网检查,发现是redhat as4u1 默认安装的时候没有kaioapi.c文件,简单的解决方法是在informix用户的环境变量中增加:export KAIOOFF=1

2, 转换出错,提示存放数据文件的raw文件权限不对,这个是10.0版本的安全性比较高造成的,在9.4版本中,只要是Informix用户和组的权限是读写的就可以了,不强求其它用户的权限。但是在10.0中,数据空间的权限必须是660,把文件修改为660就可以了。

3, Redhat as3u6的系统,转换完成后执行onmonitor,ontape等命令会出现“段错误”。

[informix@test etc]$ onmonitor

段错误

暂时发现应该是系统版本兼容性的原因,对内存的支持性不好,修改informix参数只能解决部分问题,这个问题暂时没有得到解决。

接着上面的转换继续:

12,更新统计信息。用dbaccess命令每个库运行update statistics语句。执行这个语句的时候大库的时候运行的时间很长,请耐心等待。

13,执行oncheck -me压缩扩展数据块减少分区头中使用的存储量。

14,检查数据库是否正常,然后停数据库,把上面提到的TAPEDEV,LTAPEDEV选项重新该过来,把sqlhosts文件中的服务器名(servicename)修改为系统正式的信息。

15,启动数据库,做一次全备。数据库升级完成。

阅读(1245) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~