手把手教学:linux下oracle升级至11.2.0.4

最近又给到一个oracle数据库升级的需求,其实以前是做过升级测试的,刚好现在遇到,要回去翻记录了,所以记录到这里,供自己查阅以及供需要的人了解。

注意:升级之前做好数据备份,条件允许情况下可以备份ORALCE_HOME目录以防万一!!!这样恢复快

1.准备所需要的文件:(这两个包是database的安装介质,升级也只需用到这两个包)

文件一:p13390677_112040_Linux-x86-64_1of7.zip

文件二:p13390677_112040_Linux-x86-64_2of7.zip

2.查看是否回收站里面有对象,有的话清空回收站,或者直接清空

SQL> purge DBA_RECYCLEBIN;

3.关闭数据库

SQL> shutdown immediate 

4.关闭侦听

[oracle@localhost ~]$ lsnrctl stop

5.创建指向 ORACER_HOME 目录 11.2.0.4 ,原本的 ORACLE_HOME 是指向 $ORACLE_BASE/product/11 的

[oracle@localhost ~]$ mkdir -p $ORACLE_BASE/product/11.2.0.4

6.修改环境变量,建议修改配置文件,并 source 生效,这里只需要修改到 ORACLE_HOME 就可以了,当然直接用命令:

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4 也可以

[oracle@localhost ~]$ vi /home/oracle/.bash_profile

export ORACLE_BASE=/home/u01/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4
export ORACLE_SID=orcl 
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

[oracle@localhost ~]$ source /home/oracle/.bash_profile

7.解压准备好的两个文件,会得到一个 database 目录,其实跟你安装 oracle 时一样,记得把权限给到 oracle 用户和组

[root@localhost ~]# tar -zxvf /opt/p13390677_112040_Linux-x86-64_1of7.zip
[root@localhost ~]# tar -zxvf /opt/p13390677_112040_Linux-x86-64_2of7.zip
[root@localhost ~]# chown -R oracle:oracle /opt/database

8.进入 database 执行 runInstaller,一开始我认为执行 ./runInstaller 就可以了,但是该执行会报错

DISPLAY not set. Please set the DISPLAY and try again.

为什么?那就设置下 DISPLAY,不过结果也是一样,用 root 运行也一样

[oracle@localhost database]$ DISPLAY=ip:0.0; export DISPLAY
[oracle@localhost database]$ xhost +
access control disabled, clients can connect from any host

那就老老实实去安装了,跟安装 oracle 的时候一样静默安装,不过这里要把信息补上

[oracle@localhost database]$ ./runInstaller -silent -debug -force -ignorePrereq DECLINE_SECURITY_UPDATES=true oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/home/oracle/oracle/oraInventory ORACLE_HOME=/home/u01/app/product/11.2.0.4 ORACLE_BASE=/home/u01/app oracle.install.db.InstallEdition=EE oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oracle

执行到 [OUISetupDriver.JobExecutorThread] [ 2018-05-12 23:59:36.276 CST ] [UnixSystem.getCSSConfigType:2463] configType=null 会出现假死状态,请继续等待!!!

出现以下字样表示升级成功。

As a root user, execute the following script(s):
/home/u01/app/product/11.2.0.4/root.sh

Successfully Setup Software.
切换到root用户执行脚本。

9.切换到 root 执行下脚本

# /home/u01/app/product/11.2.0.4/root.sh

10.修改/etc/oratab内容为最新位置:

#orcl:/home/u01/app/product/11.2.0:Y
orcl:/home/u01/app/product/11.2.0.4:Y

11.复制数据库文件到最新位置,并启动监听,使用 sqlplus 登录

$ cp /home/u01/app/product/11.2.0/dbs/* /home/u01/app/product/11.2.0.4/dbs/
$ lsnrctl start
$ sqlplus /nolog
SQL> conn / as sysdba

12.更新数据库文件

SQL> startup upgrade
SQL> @ $ORACLE_HOME/rdbms/admin/catupgrd.sql

13.更新时间比较长,更新完成后,启动数据库

$ sqlplus / as sysdba
SQL> startup
SQL> select * from v$version;

14.如果有配置了 oracle 自启动脚本,记得更改配置信息!!

下面列出升级过程中我遇到过的错误:

错误一:步骤 8 执行 runInstaller 脚本一定要等到提示(即:Successfully Setup Software),否则要重新执行

错误二:步骤 12 更新数据库文件报错,错误如下:

SQL>startup upgrade
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file “/home/u01/app/product/11.2.0.4/db_1/dbs/initorcl.ora”

解决方式如下:

a.查找pfile目录位置:find /home/u01/app/ -name pfile  该目录下可以找到文件:init.ora.492019214646(具体看实际情况)

[root@localhost ~]# find /home/u01/app/ -name pfile
/home/u01/app/admin/orcl/pfile

b.将其复制到:/home/u01/app/product/11.2.0.4/dbs/目录下并改名为:initorcl.ora

c.然后重新更新数据库数据(重复步骤 12)

你可能感兴趣的:(oracle,oracle,linux,数据库)