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

    ……

     

  • 相关阅读:
    mac上python3安装HTMLTestRunner
    双目深度估计传统算法流程及OpenCV的编译注意事项
    深度学习梯度反向传播出现Nan值的原因归类
    1394. Find Lucky Integer in an Array
    1399. Count Largest Group
    1200. Minimum Absolute Difference
    999. Available Captures for Rook
    509. Fibonacci Number
    1160. Find Words That Can Be Formed by Characters
    1122. Relative Sort Array
  • 原文地址:https://www.cnblogs.com/chenjunjie/p/4962435.html
Copyright © 2011-2022 走看看