zoukankan      html  css  js  c++  java
  • Oracle11.2.0.1升级到11.2.0.3

      Oracle数据库升级也并非简单的事,这篇博客,博主对Oracle那点事做了较详细的介绍:

      http://blog.itpub.net/9599/viewspace-473003/

    我还属于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,   这个是我们的示例文件安装包。
        第七个表示deinstall(它是卸载Oracle的工具).

      <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

    -------谨记:快就是慢,慢就是快
  • 相关阅读:
    2.DI依赖注入
    1.Spring框架入门案例
    5.通过参数注解多个接口参数的用法
    4.update更新和delete删除用法
    3.insert添加用法
    git基础操作
    2.mongodb可视化工具
    12.Scrapy与mongodb交互和设置中间键
    WPF 学习系列汇总
    WPF 4.0 DatePicker 快速录入
  • 原文地址:https://www.cnblogs.com/wn1m/p/5704400.html
Copyright © 2011-2022 走看看