oracle从11.2.0.1升级到11.2.0.4

由于oracle的官方网站不提供没有link权限的人下载升级包,因此只能另外想办法。

一种办法:下载11.2.0.4,然后使用导出导入,将11.2.0.1的数据导入到11.2.0.4中。

后来,我想能不能使用11.2.0.4的安装完成的包,使用11.2.0.1的数据和控制文件,还有就是使用原来的spfile文件,以下是相关步骤,在此记录一下:

1、将11.2.0.4安装完成的包,解压到11.2.0.1的机器上

2、停止11.2.0.1的数据库。

3、将11.2.0.1的库改目录,将11.2.0.4改为原库的目录,然后将spfile拷到dbs目录下。

4、sqlplus "/ as sysdba"进入,使用create pfile from spfile;重新生成pfile,修改pfile中的参数:*.compatible='11.2.0.4.0',改为11.2.0.4.0

5、再次进入库中,使用create spfile from pfile;重新生成spfile;

6、将新11.2.0.4的库文件中移走,将11.2.0.1的库文件拷入原目录中,将sid目录下的control01.ctl拷到flash_recovery_area/orcl目录中的control02.ctl。

7、一开始以为这样就能直接用新的版本启动数据库,不过,是我想多了,实际上还要很多步骤,直接启动会报错,要求你使用upgrade来启动数据,baidu查了一下,原来还是要加载一下升级脚本,具体步骤为:

sqlplus "/ as sysdba"

startup mount;

alter database open upgrade;

然后加载:@$ORACLE_HOME/rdbms/admin/catupgrd.sql;

以为这样就可以了,但是还是报错,报:ORA-01722的错,再查baidu

https://www.linuxidc.com/Linux/2014-06/102741.htm

原来需要关:Oracle Database Vault,但这个文档说的也不很清楚,还好有oracle的原止:

https://docs.oracle.com/cd/B28359_01/server.111/b31222/dvdisabl.htm#DVADM70986

具体操作,把oracle相关进程都关闭

emctl stop dbconsole

lsnrctl stop

然后:

cd $ORACLE_HOME/rdbms/lib

make -f ins_rdbms.mk dv_off

cd $ORACLE_HOME/bin

relink all

修改之后,再将登陆,查看:

SELECT * FROM V$OPTION WHERE PARAMETER= 'Oracle Database Vault';

看到是false,说明可以升级了

执行:@$ORACLE_HOME/rdbms/admin/catupgrd.sql;

这个过程很长,需要半个小时。

升级完成,感觉应该把Oracle Database Vault改为true,方法在oracle文档中有说明:

cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk dv_on lbac_on cd $ORACLE_HOME/bin relink all

到此11.2.0.1成功升级为11.2.0.4

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值