Oracle11.2.0.1如何升级到11.2.0.3 Oracle同版本升级

所属分类: 数据库 / oracle 阅读数: 421
收藏 0 赞 0 分享

Oracle数据库升级也并非简单的事,这篇文章对Oracle那点事做了较详细的介绍:Oracle数据库升级或数据迁移方法研究

我还属于Oracle的菜鸟,就不献丑介绍了。

下面我就简单总结下,Oracle同版本升级的经历: 
升级数据库:
1. 先检查数据库当前版本:SELECT * FROM v$version;

2. 使用RMAN或exp 进行全库备份
这一步非常非常重要,因升级到数据部分时,虚拟机没空间了,导致VM崩溃,升级失败.orcl库也挂了,不得不从另一台Oracle上创建了一个Orcl,然后,冷备迁移过来,才得以重新升级。】
如:RMAN全备
    export ORACLE_SID=orcl
  rman target /
  RMAN>backup full database plus archivelog //全备数据库,并且包括ArchiveLog。

3. 最后按下面步骤进行升级
<1> 先知道Oracle 7个更新文件的作用:
第一 和 二个包表示database ,  如果升级数据库,只需要这2个文件即可。
第三个包表示grid,  用来升级RAC 的CRS。如果升级RAC 要先用这个文件。
第四个表示客户端,
第五个表示gateways,
第六个表示 examples,   这个是我们的示例文件安装包。

<2> 升级Oracle数据库
首先将第一和二个zip压缩包上传,并在同一个目录下解压,因为,它两的目录结构基本一致,并且这两压缩包的内容需要合并后才能,执行runInstaller文件。所有要在同一个目录下解压,这样会直接合并。

<3> 运行runInstaller,若没有图像界面会可能就需要有应答文件了,这个就需要再查了,
我测试时,有图形界面,所以直接用图形界面来升级:
需要注意几个地方:
A. 这是第一个地方,这里需要点,“Skip software updates"跳到软件更新
B.这里是选项安装新Oracle软件的位置,这里不能写旧的位置。
另注: 磁盘空间一定要5~10G, Oracle11.2.0.1升级到11.2.0.3需要4.1G。
C. 第三点:需要注意: /etc/oratab这个文件。
因为,更新到最后是更新数据库,更新数据库时,必须要有一个数据库是运行的.才能执行,并且更新数据库时,它是通过oratab文件来让你选择通过那个运行的数据库来尝试更新数据库。

4. 数据库更新完后,需要做以下事情:
首先,升级完成后,需要将Oracle必须的环境变量修改为升级后的Oracle软件路径。
需要修改: ORACLE_HOME.
如我的环境: 
Oracle11.2.0.1时:
ORACLE_BASE=/home/oracle/ora
ORACLE_HOME=$ORACLE_BASE/product/11g/db_1
升级后,Oracle版本为:11.2.0.3,新的家目录为:
Oracle11.2.0.3: ORACLE_HOME=$ORACLE_BASE/product/11.2.0.3/db_1

<1> 先执行这个文件,用sysdba的权限:  

 SQL> SPOOL update.info
  SQL> $ORACLE_HOME/rdbms/admin/utlu112i.sql
  SQL> SPOOL OFF

  查看日志是否有错误。

<2> 关闭数据库,并更新启动。   

 SQL> shutdown immediate
  SQL> startup upgrade

  SQL> select * from v$version; #查看Oracle的版本。
   SQL> select status from v$instance;
  STATUS
  ------------
  OPEN MIGRATE

  #下面开始执行升级脚本。
   SQL> SPOOL update-info.log
  SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql 
  #下面是查看升级结果的; 这个不是很确定,因为参考博客的环境是,
  # 是9i 升 10g
  #SQL> @$ORACLE_HOME/rdbms/admin/utlu102s.sql
  SQL> SPOOL OFF


完成后,需要查看升级日志,是否有保错,若有,则重新执行升级SQL脚本。

 #升级完成后,需要重启DB.
  SQL> shutdown immediate
  SQL> startup 
   #下面是执行重新编译无效对象
   SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
  #查看是否还存在无效对象,若为0,则表示升级完成。否则重新执行编译。
   SQL> SELECT count(*) FROM dba_objects WHERE status='INVALID';

   SQL> select name from v$database; #确认数据库的SID是否正确。
   SQL> show user; #确认当前是否为sys用户。
   SQL> select tablespace_name, bytes from dba_data_files; #确认表空间大小是否正确.

  #下面这个步骤网文中没有,这是尚观视频中提到的,作用不明.
  #SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql

  #最后,重启数据库没有问题就是升级成功了。
   SQL> select status from v$instance;
  STATUS
  ------------
  OPEN  #注意,成功打开数据库后,这里将是OPEN,而非OPEN MIGRATE

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

VS2015连接Oracle数据库的详细步骤

这篇文章主要介绍了VS2015连接Oracle数据库的详细步骤,需要的朋友可以参考下
收藏 0 赞 0 分享

常用的Oracle doc命令(收藏)

这篇文章主要介绍了常用的Oracle doc命令(收藏)的相关资料,非常不错,具有参考借鉴价值,需要的朋友参考下吧
收藏 0 赞 0 分享

ORACLE SQL语句优化技术要点解析

这篇文章主要介绍了ORACLE SQL语句优化技术的相关内容,小编觉得挺不错的,在这里分享给大家,需要的朋友可以参考下。
收藏 0 赞 0 分享

ORACLE多条件统计查询的简单方法

这篇文章主要介绍了ORACLE多条件统计查询的简单方法,具有一定参考价值。这里给大家分享下,希望对大家有所帮助。
收藏 0 赞 0 分享

ORACLE批量导入图片到BLOB字段代码示例

这篇文章主要介绍了ORACLE批量导入图片到BLOB字段代码示例,此代码示例是文章作者的项目源码,具有一定参考价值,需要的朋友可以了解下。
收藏 0 赞 0 分享

PLSQL Developer登录的默认密码介绍

这篇文章主要介绍了PLSQL Developer登录的默认密码介绍,具有一定参考价值,需要的朋友可以了解下。
收藏 0 赞 0 分享

Oracle数据行拆分多行方法示例

oracle数据库使用过程中,怎样将一行或者多行数据分割成需要的多行数据,本文我们就来看看具体方法,需要的朋友可以参考。
收藏 0 赞 0 分享

Oracle表空间不足的两种解决办法

这篇文章主要介绍了Oracle表空间不足的两种解决办法,需要的朋友可以参考下
收藏 0 赞 0 分享

巧妙解决Oracle NClob读写问题(经验分享)

下面小编就为大家带来一篇巧妙解决Oracle NClob读写问题(经验分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

oracle执行update语句时卡住问题分析及解决办法

这篇文章主要介绍了oracle执行update语句时卡住问题分析及解决办法,涉及记录锁等相关知识,具有一定参考价值,需要的朋友可以了解。
收藏 0 赞 0 分享
查看更多