zoukankan      html  css  js  c++  java
  • oracle 11.2.0.1.0 升级 11.2.0.4.0 并 patch 到11.2.0.4.7

    升级步骤:

    (1)    备份数据库

    (2)    运行patchset,升级oracle 软件

    (3)    准备新的ORACLE_HOME

    (4)    运行dbua 或者脚本升级实例

    (5)    检查升级后的版本信息和无效对象

    备份数据库

    升级数据库是一个十分危险的事情,在生产库上,升级之前最好做一个全库的备份,以便在升级失败时可以还原数据库。

    停掉所有与这个数据库相关的业务系统,如中间件。确定没有业务在运行。在数据库正常关闭后,还需要备份Oracle主目录,目的还是为了升级失败时,能够还原出数据库软件到升级前的版本。备份如下:tar -xcvf oracle11201_bak.tar.gz $ORACLE_BASE。

    我这里是测试环境,就不进行备份,如果是生产环境,切记要先备份,后操作。

    如果是In-Place Upgrade,同时备份一下整个ORACLE_HOME目录。 如果升级有问题,还可以还原回来。

    重点是如下目录:

    ORACLE_HOME/dbs

    ORACLE_HOME/network/admin

    ORACLE_HOME/hostname_dbname

    ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_hostname_dbname

    授权:

    chmod 777 p13390677_112040_Linux-x86-64_* p20996923_112040_Linux-x86-64.zip p6880880_112000_Linux-x86-64.zip 

    一、原始状态


    (点小图查看大图)
    点击图片看大图

    SQL>set linesize 150

    SQL>set pagesize 9999

    SQL> col comp_name format a40

    SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;


    (点小图查看大图)
    点击图片看大图
     

    关闭监听、关闭数据实例

    二、把所有补丁软件都拷贝到/tmp,补丁包一共7个,只需要前2个就成

    解压:unzip p13390677_112040_Linux-x86-64_1of7.zip -d /tmp && unzip p13390677_112040_Linux-x86-64_2of7.zip -d /tmp

    cd /tmp/database

    运行Patchset 的runInstaller


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图

    注意这里,我们选择第三个选项,skip software update,因为我们的patchset已经下载过了,如果选择第二个选项,会遇到如下错误,

    INS-20704 Thelocation provided is not in the expected directory structure

    Oracle 给的解决方式是用如下命令来执行:

    ./runInstaller –downloadUpdates

    但是这个命令需要收费的Metalink帐号。 MOS 的相关文档:

    How To Download The Latest Updates AndPatches Using 11.2.0.2 OUI [ID 1295074.1]

    Error: INS-20704 While Installing 11.2.0.2with "Use pre-downloaded software updates" Option [ID 1265270.1]


    (点小图查看大图)
    点击图片看大图

    这里要注意,我们之前讲过11gR2的Patchset 可以直接用来安装。在这个界面就可以选择操作类型,这个功能比较方便,从而也导致patchset 越来越大,我们这里选择upgrade an existing database。


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图

    注意这里的安装位置,我之前的安装目录是11.2.0,我新目录是11.2.0.4 即将oracle 安装到其他位置,这样可以减少宕机时间,也是oracle 推荐的方法。


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图

    执行到76%的时候弹出如下窗口:


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图

    下面就是一个配置监听的过程


    (点小图查看大图)
    点击图片看大图

    随后就是 会自动调用DBUA 来升级我们的实例(1---7步)


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图


    (点小图查看大图)
    点击图片看大图

    三、然后,再修改oracle用户的.bash_profile

    ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4/db_1

    然后source ~/.bash_profile

    四、查看 cat /etc/oratab   【内容应该是新目录】

     

    五、登录查看,升级后版本

    [oracle@DB200 ~]$ sqlplus / as sysdba

    SQL*Plus: Release 11.2.0.1.0 Production on Mon May 25 22:00:21 2015

    Copyright (c) 1982, 2009, Oracle.  All rights reserved.

    Connected to:

    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

    With the Partitioning, OLAP, Data Mining and Real Application Testing options

    六、11.2.0.4.0升级到11.2.0.4.7(打patch,关闭实例与监听)

    1、解压安装包
    自定义存放路径为/home/oracle/psu
    cd /home/oracle/psu
    mv p6880880_112000_04-SEP-2015_Linux-x86-64.zip p20760997_112030_15_Linux-x86-64.zip /home/oracle/psu
    unzip p6880880_112000_04-SEP-2015_Linux-x86-64.zip
    unzip p20760997_112030_15_Linux-x86-64.zip -d 112047

    2、检查psu补丁是否有冲突
    /home/oracle/psu/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /home/oracle/psu/112047/20996923

    3、信息收集
    --查看组件信息
    set linesize 500 pagesize 600
    col COMP_NAME for a30
    select COMP_ID,COMP_NAME,VERSION,STATUS from DBA_REGISTRY;
    --查看补丁情况
    set linesize 500 pagesize 600
    col ACTION_TIME for a30
    col COMMENTS for a30
    select ACTION_TIME, ACTION, COMMENTS from sys.DBA_REGISTRY_HISTORY;
    --查看无效对象
    select count(*) from dba_objects where status<>'VALID';


    4、停止数据库
    --停止数据库外部进程
    ps -ef|grep -v grep |grep LOCAL=NO|awk '{print $2}'|xargs kill -9
    --停库
    alter system checkpoint
    shutdown immediate
    --停监听
    lsnrctl stop

    --查看启停日志
    /home/oracle/diag/rdbms/sccp/sccp/trace/alert*.log

    5、备份
    使用root用户备份oracle_home (将#ORACLE_HOME上级目录整个备份)
    tar -zcvpf db_20151103.tar.gz db_1

    6、打PSU
    su - oracle
    cd /home/oracle/psu/112047/20996923/20760982 ---20760982为压缩包解压出的二级目录(不进入该目录apply会报错)
    /home/oracle/psu/OPatch/opatch apply

    ----如果补丁过程中出现以下错误
    OPatch报错 Prerequisite check "CheckActiveFilesAndExecutables" failed
    Following executables are active :
    /opt/oracle/product/10.2.0/bin/oracle
    ApplySession failed during prerequisite checks: Prerequisite check "CheckActiveFilesAndExecutables" failed.

    通过以下命令找到正在占用文件的进程,然后kill进程
    fuser /opt/oracle/product/10.2.0/bin/oracle

    7、检查数据库
    su – oracle
    $ORACLE_HOME/OPatch/opatch lsinv

    8、更新数据字典、编译失效对象
    su - oracle
    cd $ORACLE_HOME/rdbms/admin
    SQL> CONNECT / AS SYSDBA
    SQL> STARTUP
    SQL> @catbundle.sql psu apply
    SQL> @utlrp.sql


    9、重启数据库
    shutdown immediate
    startup

    10、检查数据库状态
    --查看组件信息
    set linesize 500 pagesize 600
    col COMP_NAME for a30
    select COMP_ID,COMP_NAME,VERSION,STATUS from DBA_REGISTRY;
    --查看补丁情况
    set linesize 500 pagesize 600
    col ACTION_TIME for a30
    col COMMENTS for a30
    select ACTION_TIME, ACTION, COMMENTS from sys.DBA_REGISTRY_HISTORY;
    --查看无效对象
    select count(*) from dba_objects where status<>'VALID';

    11、启动监听
    lsnrctl start
    ps -ef|grep -v grep |grep LOCAL=NO|wc -l
    SQL> CONNECT / AS SYSDBA
    SQL>alter system register;

    若监听启动失败
    cd $ORACLE_HOME/network/admin
    mv sqlnet.ora sqlnet.orabak
    lsnrctl start
    ps -ef|grep -v grep |grep LOCAL=NO|wc -l
    SQL> CONNECT / AS SYSDBA
    SQL>alter system regiter
    SQL>exit
    mv sqlnet.orabak sqlnet.ora

    七、实验中遇到的报错

    1、----如果补丁过程中出现以下错误
    OPatch报错 Prerequisite check "CheckActiveFilesAndExecutables" failed
    Following executables are active :
    /opt/oracle/product/10.2.0.4/bin/oracle
    ApplySession failed during prerequisite checks: Prerequisite check "CheckActiveFilesAndExecutables" failed.

    通过以下命令找到正在占用文件的进程,然后kill进程
    fuser /opt/oracle/product/10.2.0.4/bin/oracle

    2、INS-32025报错
    the chosen installation conflicted with software already installed in the given Oracle home.
    所选安装与指定 Oracle 主目录中已安装的软件冲突

    解决方法:
    vi /home/oracle/oraInventory/ContentsXML/inventory.xml


    [root@db 桌面]# more /home/oracle/oraInventory/ContentsXML/inventory.xml
    <?xml version="1.0" standalone="yes" ?>
    <!-- Copyright (c) 1999, 2013, Oracle and/or its affiliates.
    All rights reserved. -->
    <!-- Do not modify the contents of this file by hand. -->
    <INVENTORY>
    <VERSION_INFO>
    <SAVED_WITH>11.2.0.4.0</SAVED_WITH>
    <MINIMUM_VER>2.1.0.6.0</MINIMUM_VER>
    </VERSION_INFO>
    <HOME_LIST>
    <HOME NAME="OraDb11g_home1" LOC="/home/oracle/app/oracle/product/11.2.0/dbhome_1
    " TYPE="O" IDX="1"/>
    </HOME_LIST>
    <COMPOSITEHOME_LIST>
    </COMPOSITEHOME_LIST>
    </INVENTORY>
    [root@db 桌面]#


    删除其中的HOME_NAME信息
    <HOME NAME="OraDb11g_home1" LOC="/home/oracle/app/oracle/product/11.2.0/dbhome_1
    " TYPE="O" IDX="1"/>

    三、ORA-00845: MEMORY_TARGET not supported on this system报错解决
    在oracle 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小就会报错
    解决方案

    1.初始化参数MEMORY_TARGET或MEMORY_MAX_TARGET不能大于共享内存(/dev/shm),为了解决这个问题,可以增大/dev/shm

    如:

    # mount -t tmpfs shmfs -o size=7g /dev/shm

    2.为了确保操作系统重启之后能生效,需要修改/etc/fstab文件

    shmfs /dev/shm tmpfs size=7g 0

    3.如果/dev/shm没有挂载也会报上面的错,所认需要确保已经挂载

    oracle@aaaprod-db ~]$ df -h

    ……

    tmpfs 16G 8.9G 7.2G 56% /dev/shm

    ……

     

  • 相关阅读:
    Stimulsoft Reports筛选数据来绑定显示2个报表
    随便写点吧
    盒模型、文档流
    css选择器、权重
    css3转换
    html
    css新起点
    css里的那些事儿
    【谭老师讲堂】零基础如何学好Java——交流
    【谭老师讲堂】零基础如何学好Java——棒棒糖
  • 原文地址:https://www.cnblogs.com/chenjunjie/p/4962435.html
Copyright © 2011-2022 走看看