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

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

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

(0)

相关推荐

  • Oracle客户端版本及位数(Windows系统)查看方法

    一.查看oracle客户端版本:sqlplus -v 二.查看oracle客户端版本是32bit还是64bit 方法一: Step 1:运行sqlplus /nolog命令,如果你服务器安装了多个客户端版本,那么你应该进入对应安装目录的BIN目录后,运行该命令 C:\Users\Mr.Bruce>sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on 星期一 8月 8 16:06:05 2016 Copyright (c) 1982,

  • Oracle cloud control 12c的启动、关闭及获取安装信息的方法

    Oracle cloud control 12c整个安装比较复杂,光是安装路径的选择,登录密码,端口号等众多个配置不免让人眼花缭乱,目不暇接.本文描述的是安装完毕后如何获取安装时设定的各类端口号,URL以及如何启动.关闭cloud control等等,供大家参考. 有关cloud control的安装配置可以参考:Oracle Enterprise Manager Cloud Control 12c Release 3 Installation 1.当前的环境配置 复制代码 代码如下: [ora

  • Oracle 查询表信息获取表字段及字段注释

    获取表字段: select * from user_tab_columns where Table_Name='用户表' order by column_name 获取表注释: select * from user_tab_comments where Table_Name='用户表' order by Table_Name 获取字段注释: select * from user_col_comments where Table_Name='用户表' order by column_name /*

  • VMware中linux环境下oracle安装图文教程(二)ORACLE 10.2.05版本的升级补丁安装

    首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入Disk1.然后执行安装: $ ./runInstaller 执行脚本 # /u01/app/oracle/10.2.0/db_1/root.shRunning Oracle 10g root.sh script...The following environment variables are set as:    ORACLE_OWNER= oracle   

  • Oracle 11g自动诊断信息库(Automatic Diagnostic Repository,ADR)概述

    在Oracle 11g中引入了自动诊断信息库(ADR),它提供了一个统一而且一致的机制来存储.格式化并定位所有的数据库诊断信息(易于使用的文件结构).ADR关联各种组件(比如Oracle RAC.Oracle Clusterware.OCI.Net.进程等)的错误,并自动为严重的错误生成事故和提供事故管理功能.因此,ADR可以显著减少解决事故和问题的时间. 通常在使用传统的初始化参数的时候,比如BACKGROUND_DUMP_DEST.CORE_DUMP_ DEST和USER_DUMP_DEST

  • Oracle Faq(Oracle的版本)

    如需转载,请注明出处,谢谢!以8.1.7.4.0为例说明:8:版本号1:新特性版本号7:维护版本号4:普通的补丁设置号码0:特殊的平台补丁设置号码 另外有关Oracle是32bit/64bit的问题,说明如下:在windows/linux系统中由于操作系统是32bit的,所以oracle肯定是32bit的:在tru64中oracle肯定是64bit的:在hpux/aix/solaris中要看具体情况了,如果是64bit的在server上启动sqlplus时会显示64bit的字样,你也可以通过se

  • oracle 日期函数集合(集中版本)第1/2页

    在oracle数据库的开发中,常因为时间的问题大费周章,所以特地将ORACLE数据的日期函数收藏致此.乃供他日所查也. add_months(d,n) 日期d加n个月 last_day(d) 包含d的月?的最后一天的日期 new_time(d,a,b) a?区的日期和??d在b?区的日期和?? next_day(d,day) 比日期d?,由day指定的周几的日期 sysdate 当前的系?日期和?? greatest(d1,d2,...dn) ?出的日期列表中最后的日期 least(d1,k2,

  • Oracle中获取会话信息的两个函数分享

    1. USERENV(OPTION)  返回当前的会话信息.  OPTION='ISDBA'若当前是DBA角色,则为TRUE,否则FALSE.  OPTION='LANGUAGE'返回数据库的字符集.  OPTION='SESSIONID'为当前会话标识符.  OPTION='ENTRYID'返回可审计的会话标识符.  OPTION='LANG'返回会话语言名称的ISO简记.  OPTION='INSTANCE'返回当前的实例.      OPTION='terminal'返回当前计算机名  S

  • oracle获取当前用户表、字段等详细信息SQL

    做个笔记,仅供参考 SELECT d.TABLE_NAME tbName,//表名 COALESCE(t.COMMENTS, ' ') tbDesc, //表注释 a.COLUMN_NAME columnName, //字段名 a.DATA_TYPE columnType, //字段类型 a.DATA_LENGTH width, //字段长度 a.DATA_SCALE precision,//字段小数位 decode(a.NULLABLE,'Y','0','1') notNull,//是否允许空

  • Oracle数据库处理多媒体信息

    正在看的ORACLE教程是:Oracle数据库处理多媒体信息.引文: 长期以来,多媒体信息在计算机中都是以文件形式存放,由操作系统管理的,但是随着计算机网络,分布式计算的发展,对多媒体信息进行高效的管理,存取,查询已经成了一种迫切需求.而关系数据库却有着强大的数据管理能力.两方面结合,多媒体数据库由此应运而生.本文将就Oracle对多媒体信息进行处理的方式,工具,特色以及一些基本原理做一个综述. 但是我们不能不遗憾的看到,现有数据库对一些多媒体数据所特有的操作能力还是很有限的.针对多媒体数据库的

随机推荐