Dec
14
[原]Oracle 9i从9204升级到9206
Oracle 没有光盘版本的9.2.0.6,只能从9.2.0.4升级。下面就讲讲x86平台上的Oracle如何升级:
1、停止Oracle
升级前,先停止Oracle数据库,包括HTTPD服务器、lsnrctl和agentctl。
2、升级OUI
假设p3948480_9206_LINUX.zip已经放在/home/oracle目录,并且权限属于oracle:oinstall,则进行下面的操作:
Oracle的补丁需要验证,我们骗过它
先升级Oracle Universal Install(OUI)

下面必须选用原来安装了9204的路径,把OUIHOME1改为OUIHOME

下面不要选错了:




3、正式升级Oracle 9206 Patch
重新运行升级程序

同样的,选择9204的安装目录

这里就选择安装9206的Patch




上面提示,用管理员运行一个脚本
※可能会提示没有上面的那个文件,不用理会,继续即可,他会自己重做链接的。

正式安装成功后,启动Oracle进行测试一下。没有问题即表明升级完毕!
4、附录
1)如果已经安装过3238244等其他9204补丁的话,需要先卸载
这个我没有成功,出现问题了。如果哪位有经验的话,请提供给我。谢谢!
1、停止Oracle
升级前,先停止Oracle数据库,包括HTTPD服务器、lsnrctl和agentctl。
# su - oracle
$ sqlplus "/as sysdba"
> shutdown immediate
> quit
$ lsnrctl stop
$ agentctl stop
$ $ORACLE_HOME/Apache/Apache/bin/apachectl stop
$ sqlplus "/as sysdba"
> shutdown immediate
> quit
$ lsnrctl stop
$ agentctl stop
$ $ORACLE_HOME/Apache/Apache/bin/apachectl stop
2、升级OUI
假设p3948480_9206_LINUX.zip已经放在/home/oracle目录,并且权限属于oracle:oinstall,则进行下面的操作:
[oracle@oracle ~]$ unzip p3948480_9206_LINUX.zip
[oracle@oracle ~]$ cd Disk1/
[oracle@oracle ~]$ cd Disk1/
Oracle的补丁需要验证,我们骗过它
[root@oracle oranavi]# cd /usr/share/oranavi/
[root@oracle oranavi]# cp oraparam.ini /home/oracle/Disk1/install/
[root@oracle oranavi]# chmod 777 /home/oracle/Disk1/install/oraparam.ini
[root@oracle oranavi]# chown oracle.oinstall /home/oracle/Disk1/install/oraparam.ini
[root@oracle oranavi]# cp oraparam.ini /home/oracle/Disk1/install/
[root@oracle oranavi]# chmod 777 /home/oracle/Disk1/install/oraparam.ini
[root@oracle oranavi]# chown oracle.oinstall /home/oracle/Disk1/install/oraparam.ini
先升级Oracle Universal Install(OUI)
[oracle@oracle Disk1]$ cd /home/oracle/Disk1/
[oracle@oracle Disk1]$ ./runInstaller &
[oracle@oracle Disk1]$ ./runInstaller &

下面必须选用原来安装了9204的路径,把OUIHOME1改为OUIHOME

下面不要选错了:




3、正式升级Oracle 9206 Patch
重新运行升级程序
[oracle@oracle Disk1]$ cd /home/oracle/Disk1/
[oracle@oracle Disk1]$ ./runInstaller &
[oracle@oracle Disk1]$ ./runInstaller &

同样的,选择9204的安装目录

这里就选择安装9206的Patch




上面提示,用管理员运行一个脚本
[root@oracle ~]# /opt/oracle/product/9.2.0/root.sh
Running Oracle9 root.sh script...
The following environment variables are set as:
ORACLE_HOME= /opt/oracle/product/9.2.0
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
/bin/rm: 无法删除 /opt/oracle/product/9.2.0/rdbms/filemap 没有这个文件或目录
Running Oracle9 root.sh script...
The following environment variables are set as:
ORACLE_HOME= /opt/oracle/product/9.2.0
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
/bin/rm: 无法删除 /opt/oracle/product/9.2.0/rdbms/filemap 没有这个文件或目录
※可能会提示没有上面的那个文件,不用理会,继续即可,他会自己重做链接的。

正式安装成功后,启动Oracle进行测试一下。没有问题即表明升级完毕!
引用
[oracle@oracle ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 9.2.0.6.0 - Production on 星期三 12月 14 16:54:46 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 236000476 bytes
Fixed Size 451804 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> quit
从Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production中断开
[oracle@oracle ~]$ lsnrctl start
LSNRCTL for Linux: Version 9.2.0.6.0 - Production on 14-12月-2005 16:55:50
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
启动/opt/oracle/product/9.2.0/bin/tnslsnr:请稍候...
TNSLSNR for Linux: Version 9.2.0.6.0 - Production
系统参数文件为/opt/oracle/product/9.2.0/network/admin/listener.ora
写入/opt/oracle/product/9.2.0/network/log/listener.log的日志信息
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for Linux: Version 9.2.0.6.0 - Production
启动日期 14-12月-2005 16:55:51
正常运行时间 0 天 0 小时 0 分 0 秒
跟踪级别 off
安全性 OFF
SNMP OFF
监听器参数文件 /opt/oracle/product/9.2.0/network/admin/listener.ora
监听器日志文件 /opt/oracle/product/9.2.0/network/log/listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "test" 包含 1 个例程。
例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
SQL*Plus: Release 9.2.0.6.0 - Production on 星期三 12月 14 16:54:46 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 236000476 bytes
Fixed Size 451804 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> quit
从Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production中断开
[oracle@oracle ~]$ lsnrctl start
LSNRCTL for Linux: Version 9.2.0.6.0 - Production on 14-12月-2005 16:55:50
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
启动/opt/oracle/product/9.2.0/bin/tnslsnr:请稍候...
TNSLSNR for Linux: Version 9.2.0.6.0 - Production
系统参数文件为/opt/oracle/product/9.2.0/network/admin/listener.ora
写入/opt/oracle/product/9.2.0/network/log/listener.log的日志信息
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for Linux: Version 9.2.0.6.0 - Production
启动日期 14-12月-2005 16:55:51
正常运行时间 0 天 0 小时 0 分 0 秒
跟踪级别 off
安全性 OFF
SNMP OFF
监听器参数文件 /opt/oracle/product/9.2.0/network/admin/listener.ora
监听器日志文件 /opt/oracle/product/9.2.0/network/log/listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "test" 包含 1 个例程。
例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
4、附录
1)如果已经安装过3238244等其他9204补丁的话,需要先卸载
[oracle@oracle 3238244]$ export PATH=$PATH:/tmp/OPatch
[oracle@oracle 3238244]$ export PATH=$PATH:/sbin
[oracle@oracle 3238244]$ opatch rollback -id 3238244
[oracle@oracle 3238244]$ export PATH=$PATH:/sbin
[oracle@oracle 3238244]$ opatch rollback -id 3238244
这个我没有成功,出现问题了。如果哪位有经验的话,请提供给我。谢谢!