• 小patch(psu)的打法 -- 实例


     
    从patch中的readme来。 bug:10214450
     
     
    测试数据:
     
    SQL> create table t (t timestamp);

    Table created.

    SQL>
    SQL>
    SQL>
    SQL>    
    SQL>
    SQL> insert into t values (sysdate);

    1 row created.

    SQL> /

    1 row created.

    SQL> select * from t;

    T
    ---------------------------------------------------------------------------
    04-DEC-11 10.01.23.000000 AM
    04-DEC-11 10.01.24.000000 AM

    SQL> commit;

    Commit complete.

    SQL> 
     
     
    SQL> select * from t;   

    T
    ---------------------------------------------------------------------------
    04-DEC-11 10.01.23.000000 AM
    04-DEC-11 10.01.24.000000 AM
    04-DEC-11 10.02.44.000000 AM
    04-DEC-11 10.02.45.000000 AM
    04-DEC-11 10.02.46.000000 AM
    04-DEC-11 10.02.46.000000 AM
    04-DEC-11 10.02.46.000000 AM
    04-DEC-11 10.02.47.000000 AM
    04-DEC-11 10.02.47.000000 AM
    04-DEC-11 10.02.47.000000 AM
    04-DEC-11 10.02.47.000000 AM

    T
    ---------------------------------------------------------------------------
    04-DEC-11 10.02.48.000000 AM

    12 rows selected.
     
     
     
     

     
    =========================================================================
    Interim Patch for Base Bug: 10214450
    =========================================================================

    Date: Wed Nov 24 10:33:30 2010
    -------------------------------------------------------------------------
    Platform Patch for          : Linux-x86-64
    Product Patched             : ORACLE DATABASE
    Product Version #           : 10.2.0.4.0
    RAC Rolling Installable     : YES


    Bugs Fixed by this patch:
    -------------------------
      10214450: FIX FOR BUG 5476091 MAY CAUSE BUG 9929820

    Patch Preinstall Steps
    ----------------------


    1. For non-recommended patches, you must have the exact symptoms
       described in the service request (SR).

    ==》 OK

    2. Confirm the version of Perl installed and configured for the ORACLE_HOME.

    Oracle requires that all customers have at least Perl 5.00503 installed
    and configured for patching activities inside the ORACLE_HOME.  Follow
    these steps to check the Perl version for the ORACLE_HOME being patched:

      - source the ORACLE_HOME environment
      - execute "perl -v"
      - verify that the returned version of Perl is 5.00503 or higher

    If the Perl configured for the ORACLE_HOME is not at 5.00503 or
    higher, follow the directions in this My Oracle Support note to update to
    a more recent version
    :

    Note 189489.1 - Oracle Data Server Interim Patch Installation
    https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=189489.1
     
     
    ==》 
    [oracle@rac1 db1]$ echo $ORACLE_HOME
    /opt/oracle/product/10.2.0/db1
    [oracle@rac1 db1]$
    [oracle@rac1 db1]$ perl -v

    This is perl, v5.8.8 built for x86_64-linux-thread-multi

    Copyright 1987-2006, Larry Wall

    Perl may be copied only under the terms of either the Artistic License or the
    GNU General Public License, which may be found in the Perl 5 source kit.

    Complete documentation for Perl, including FAQ lists, should be found on
    this system using "man perl" or "perldoc perl".  If you have access to the
    Internet, point your browser at http://www.perl.org/, the Perl Home Page.

    [oracle@rac1 db1]$ which perl
    /usr/bin/perl


    3.  Verify the OUI Inventory.

    OPatch needs access to a valid OUI inventory to apply patches.
    Validate the OUI inventory with the following command:

      opatch lsinventory

    If the command errors out, contact Oracle Support and work to validate
    and verify the inventory setup before proceeding.
     
    ==》
    [oracle@rac1 OPatch]$ pwd
    /opt/oracle/product/10.2.0/db1/OPatch
    [oracle@rac1 OPatch]$ ./opatch
    Invoking OPatch 10.2.0.4.2

    Oracle Interim Patch Installer version 10.2.0.4.2
    Copyright (c) 2007, Oracle Corporation.  All rights reserved.

    Syntax Error... No command specified.

    Usage: opatch [ -help ] [ -r[eport] ] [ command ]

                command := apply
                           lsinventory
                           napply
                           nrollback
                           rollback
                           query
                           version
                           prereq
                           util

    <global_arguments> := -help       Displays the help message for the command.
                           -report     Print the actions without executing.

    example:
       'opatch -help'
       'opatch apply -help'
       'opatch lsinventory -help'
       'opatch napply -help'
       'opatch nrollback -help'
       'opatch rollback -help'
       'opatch prereq -help'
       'opatch util -help'
      


    OPatch failed with error code 14
    [oracle@rac1 OPatch]$
     
    [oracle@rac1 OPatch]$ ./opatch lsinventory
    Invoking OPatch 10.2.0.4.2

    Oracle Interim Patch Installer version 10.2.0.4.2
    Copyright (c) 2007, Oracle Corporation.  All rights reserved.


    Oracle Home       : /opt/oracle/product/10.2.0/db1
    Central Inventory : /opt/oracle/oraInventory
       from           : /etc/oraInst.loc
    OPatch version    : 10.2.0.4.2
    OUI version       : 10.2.0.4.0
    OUI location      : /opt/oracle/product/10.2.0/db1/oui
    Log file location : /opt/oracle/product/10.2.0/db1/cfgtoollogs/opatch/opatch2011-12-04_09-36-22AM.log

    Lsinventory Output file location : /opt/oracle/product/10.2.0/db1/cfgtoollogs/opatch/lsinv/lsinventory2011-12-04_09-36-22AM.txt

    --------------------------------------------------------------------------------
    Installed Top-level Products (2):

    Oracle Database 10g                                                  10.2.0.1.0
    Oracle Database 10g Release 2 Patch Set 3                            10.2.0.4.0
    There are 2 products installed in this Oracle Home.


    There are no Interim patches installed in this Oracle Home.


    Rac system comprising of multiple nodes
      Local node = rac1
      Remote node = rac2


    --------------------------------------------------------------------------------

    OPatch succeeded.
    [oracle@rac1 OPatch]$
     
     
     
     
     
    4.  Review and download the latest version of OPatch.

    Oracle recommends that all customers be on the latest version of OPatch.
    Please review the following My Oracle Support note and follow the instructions
    to update to the latest version if needed:

    Note 224346.1 - Opatch - Where Can I Find the Latest Version of Opatch?
    https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=224346.1

    ==》 From step 3, the version is ok.
     

    5.  Confirm executables appear in your system PATH.

    The patching process will use the unzip and the opatch executables.  After
    sourcing the ORACLE_HOME environment, confirm both of these exist before
    continuing:

      - "which opatch"
      - "which unzip"

    If either of these executables do not show in the PATH, correct the problem
    before proceeding.

    ==》
     
    [oracle@rac1 OPatch]$ which opatch
    /usr/bin/which: no opatch in (/opt/oracle/product/10.2.0/db1/bin:/opt/oracle/product/crs//bin:/opt/oracle/product/10.2.0/db1/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin)
    [oracle@rac1 OPatch]$ which unzip
    /opt/oracle/product/10.2.0/db1/bin/unzip
    [oracle@rac1 OPatch]$ 
     
    on both nodes:
    add these lines to your .bash_profile
    export OPATCH=/opt/oracle/product/10.2.0/db1/OPatch
    export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:$OPATCH:$PATH
     
    Node1:
    [oracle@rac1 OPatch]$ . ~/.bash_profile
    [oracle@rac1 OPatch]$ which opatch
    /opt/oracle/product/10.2.0/db1/OPatch/opatch
    [oracle@rac1 OPatch]$ which unzip
    /opt/oracle/product/10.2.0/db1/bin/unzip
    [oracle@rac1 OPatch]$
     
     
    Node2:
    [oracle@rac2 ~]$ . ~/.bash_profile
    [oracle@rac2 ~]$ which unzip
    /opt/oracle/product/10.2.0/db1/bin/unzip
    [oracle@rac2 ~]$ which opatch
    /opt/oracle/product/10.2.0/db1/OPatch/opatch
     
     
     
    6.  Create a location for storing the unzipped patch.  
    This location will be referred to later in the document as <PATCH_TOP>.

    ==》
    [oracle@rac1 ~]$ mkdir patch
    [oracle@rac1 ~]$ pwd
    /home/oracle
    [oracle@rac1 ~]$ ls
    Desktop  p10214450_10204_Linux-x86-64.zip  patch
     

    7.  Unzip the patch zip file into the <PATCH_TOP>.

      unzip -d <PATCH_TOP> p10214450_10204_Linux-x86-64.zip

    ==》 
    [oracle@rac1 ~]$ unzip -d patch/ p10214450_10204_Linux-x86-64.zip 
    Archive:  p10214450_10204_Linux-x86-64.zip
       creating: patch/10214450/
       creating: patch/10214450/files/
       creating: patch/10214450/files/lib32/
       creating: patch/10214450/files/lib32/libgeneric10.a/
      inflating: patch/10214450/files/lib32/libgeneric10.a/kgx.o  
       creating: patch/10214450/files/lib/
       creating: patch/10214450/files/lib/libgeneric10.a/
      inflating: patch/10214450/files/lib/libgeneric10.a/kgx.o  
       creating: patch/10214450/files/lib/libserver10.a/
      inflating: patch/10214450/files/lib/libserver10.a/ksf.o  
       creating: patch/10214450/etc/
       creating: patch/10214450/etc/config/
      inflating: patch/10214450/etc/config/inventory.xml  
      inflating: patch/10214450/etc/config/actions.xml  
      inflating: patch/10214450/etc/config/deploy.xml  
       creating: patch/10214450/etc/xml/
      inflating: patch/10214450/etc/xml/GenericActions.xml  
      inflating: patch/10214450/etc/xml/ShiphomeDirectoryStructure.xml  
      inflating: patch/10214450/README.txt  

    [oracle@rac1 ~]$ ls -l patch/
    total 4
    drwxr-xr-x 4 oracle oinstall 4096 Nov 25  2010 10214450
    [oracle@rac1 ~]$
     
     
     
    8.  Shut down services running from the ORACLE_HOME.

    Before applying this patch, do a clean shut down of all services running from the ORACLE_HOME.

      (a) In a non-RAC environment:

      Shut down all services that are running from this ORACLE_HOME.
      Confirm the return status from each shutdown command to verify
      the shutdown is successful and there are no errors.

      (b) In a RAC environment:

      For each node in the RAC system, shut down the services for
      the specific machine that are running from the ORACLE_HOME.
      OPatch will be used on each node in the RAC system one at
      a time.  If this patch is not rolling RAC installable treat
      it as a non-RAC environment and shut down all services.

      As an example, in the case of a two node RAC system:
         1. Stop instances running on node 1.
    ==》
     
    [oracle@rac1 ~]$ crs_stat -t
    Name           Type           Target    State     Host        
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2        
    ora....c1.inst application    ONLINE    ONLINE    rac1        
    ora....c2.inst application    ONLINE    ONLINE    rac2        
    ora....SM1.asm application    ONLINE    ONLINE    rac1        
    ora....C1.lsnr application    ONLINE    ONLINE    rac1        
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1        
    ora.rac1.ons   application    ONLINE    ONLINE    rac1        
    ora.rac1.vip   application    ONLINE    ONLINE    rac1        
    ora....SM2.asm application    ONLINE    ONLINE    rac2        
    ora....C2.lsnr application    ONLINE    ONLINE    rac2        
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2        
    ora.rac2.ons   application    ONLINE    ONLINE    rac2        
    ora.rac2.vip   application    ONLINE    ONLINE    rac2     
     
     
    [oracle@rac1 ~]$ srvctl stop instance -d myrac -i myrac1 -o immediate
    [oracle@rac1 ~]$ crs_stat -t
    Name           Type           Target    State     Host        
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2        
    ora....c1.inst application    OFFLINE   OFFLINE               
    ora....c2.inst application    ONLINE    ONLINE    rac2        
    ora....SM1.asm application    ONLINE    ONLINE    rac1        
    ora....C1.lsnr application    ONLINE    ONLINE    rac1        
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1        
    ora.rac1.ons   application    ONLINE    ONLINE    rac1        
    ora.rac1.vip   application    ONLINE    ONLINE    rac1        
    ora....SM2.asm application    ONLINE    ONLINE    rac2        
    ora....C2.lsnr application    ONLINE    ONLINE    rac2        
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2        
    ora.rac2.ons   application    ONLINE    ONLINE    rac2        
    ora.rac2.vip   application    ONLINE    ONLINE    rac2  

     
    [oracle@rac1 ~]$ srvctl stop asm -n rac1
    [oracle@rac1 ~]$ crs_stat -t
    Name           Type           Target    State     Host        
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2        
    ora....c1.inst application    OFFLINE   OFFLINE               
    ora....c2.inst application    ONLINE    ONLINE    rac2        
    ora....SM1.asm application    OFFLINE   OFFLINE               
    ora....C1.lsnr application    ONLINE    ONLINE    rac1        
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1        
    ora.rac1.ons   application    ONLINE    ONLINE    rac1        
    ora.rac1.vip   application    ONLINE    ONLINE    rac1        
    ora....SM2.asm application    ONLINE    ONLINE    rac2        
    ora....C2.lsnr application    ONLINE    ONLINE    rac2        
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2        
    ora.rac2.ons   application    ONLINE    ONLINE    rac2        
    ora.rac2.vip   application    ONLINE    ONLINE    rac2        

     
    [oracle@rac1 ~]$ srvctl stop nodeapps -n rac1
    [oracle@rac1 ~]$ crs_stat -t
    Name           Type           Target    State     Host        
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2        
    ora....c1.inst application    OFFLINE   OFFLINE               
    ora....c2.inst application    ONLINE    ONLINE    rac2        
    ora....SM1.asm application    OFFLINE   OFFLINE               
    ora....C1.lsnr application    OFFLINE   OFFLINE               
    ora.rac1.gsd   application    OFFLINE   OFFLINE               
    ora.rac1.ons   application    OFFLINE   OFFLINE               
    ora.rac1.vip   application    OFFLINE   OFFLINE               
    ora....SM2.asm application    ONLINE    ONLINE    rac2        
    ora....C2.lsnr application    ONLINE    ONLINE    rac2        
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2        
    ora.rac2.ons   application    ONLINE    ONLINE    rac2        
    ora.rac2.vip   application    ONLINE    ONLINE    rac2        
    [oracle@rac1 ~]$ 
     
    ===> 自己加入的备份$ORACLE_HOME
    [oracle@rac1 10.2.0]$ pwd
    /opt/oracle/product/10.2.0
    [oracle@rac1 10.2.0]$ cp -r db1 db1_bak
    [oracle@rac1 10.2.0]$ 
    [oracle@rac1 10.2.0]$ 
    [oracle@rac1 10.2.0]$ du -sm db1*
    1886    db1
    1886    db1_bak
     
    =======================

         2. Run 'opatch apply <PATCH_TOP>/10214450' on node 1.
    ==》
    [oracle@rac1 ~]$ cd patch/
    [oracle@rac1 patch]$ ls
    10214450
    [oracle@rac1 patch]$ cd 10214450/
    [oracle@rac1 10214450]$ ls
    etc  files  README.txt
     
    [oracle@rac1 10214450]$ opatch apply /home/oracle/patch/10214450/
    Invoking OPatch 10.2.0.4.2

    Oracle Interim Patch Installer version 10.2.0.4.2
    Copyright (c) 2007, Oracle Corporation.  All rights reserved.


    Oracle Home       : /opt/oracle/product/10.2.0/db1
    Central Inventory : /opt/oracle/oraInventory
       from           : /etc/oraInst.loc
    OPatch version    : 10.2.0.4.2
    OUI version       : 10.2.0.4.0
    OUI location      : /opt/oracle/product/10.2.0/db1/oui
    Log file location : /opt/oracle/product/10.2.0/db1/cfgtoollogs/opatch/opatch2011-12-04_10-38-14AM.log

    ApplySession applying interim patch '10214450' to OH '/opt/oracle/product/10.2.0/db1'

    Running prerequisite checks...

    OPatch detected the node list and the local node from the inventory.  OPatch will patch the local system then propagate the patch to the remote nodes.


    This node is part of an Oracle Real Application Cluster.
    Remote nodes: 'rac2'
    Local node: 'rac1'

    Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
    (Oracle Home = '/opt/oracle/product/10.2.0/db1')



    Is the local system ready for patching? [y|n]
    y
    User Responded with: Y
    Backing up files and inventory (not for auto-rollback) for the Oracle Home
    Backing up files affected by the patch '10214450' for restore. This might take a while...
    Backing up files affected by the patch '10214450' for rollback. This might take a while...

    Patching component oracle.rdbms, 10.2.0.4.0...
    Updating archive file "/opt/oracle/product/10.2.0/db1/lib/libserver10.a"  with "lib/libserver10.a/ksf.o"

    Patching component oracle.rdbms.rsf, 10.2.0.4.0...
    Updating archive file "/opt/oracle/product/10.2.0/db1/lib/libgeneric10.a"  with "lib/libgeneric10.a/kgx.o"

    Patching component oracle.rsf.hybrid, 10.2.0.4.0...
    Updating archive file "/opt/oracle/product/10.2.0/db1/lib32/libgeneric10.a"  with "lib32/libgeneric10.a/kgx.o"
    Running make for target ikfod
    Running make for target ioracle
    Running make for target client_sharedlib
    ApplySession adding interim patch '10214450' to inventory

    Verifying the update...
    Inventory check OK: Patch ID 10214450 is registered in Oracle Home inventory with proper meta-data.
    Files check OK: Files from Patch ID 10214450 are present in Oracle Home.

    The local system has been patched.  You can restart Oracle instances on it.


    Patching in rolling mode.


    The node 'rac2' will be patched next.


    Please shutdown Oracle instances running out of this ORACLE_HOME on 'rac2'.
    (Oracle Home = '/opt/oracle/product/10.2.0/db1')

    Is the node ready for patching? [y|n]
     
     

         3. When the apply finishes, opatch asks for confirmation
            before going on to apply the patch to node 2.
    ==》 
    Seen from step 3 last lines.
    The node 'rac2' will be patched next.


    Please shutdown Oracle instances running out of this ORACLE_HOME on 'rac2'.
    (Oracle Home = '/opt/oracle/product/10.2.0/db1')

    Is the node ready for patching? [y|n]
     
     
     

         4. Start instances on node 1.
    ==》
    [oracle@rac1 ~]$ crs_stat -t
    Name           Type           Target    State     Host       
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2       
    ora....c1.inst application    OFFLINE   OFFLINE              
    ora....c2.inst application    ONLINE    ONLINE    rac2       
    ora....SM1.asm application    OFFLINE   OFFLINE              
    ora....C1.lsnr application    OFFLINE   OFFLINE              
    ora.rac1.gsd   application    OFFLINE   OFFLINE              
    ora.rac1.ons   application    OFFLINE   OFFLINE              
    ora.rac1.vip   application    OFFLINE   OFFLINE              
    ora....SM2.asm application    ONLINE    ONLINE    rac2       
    ora....C2.lsnr application    ONLINE    ONLINE    rac2       
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
    ora.rac2.ons   application    ONLINE    ONLINE    rac2       
    ora.rac2.vip   application    ONLINE    ONLINE    rac2       

    [oracle@rac1 ~]$ srvctl start nodeapps -n rac1
    [oracle@rac1 ~]$
    [oracle@rac1 ~]$ crs_stat -t
    Name           Type           Target    State     Host       
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2       
    ora....c1.inst application    OFFLINE   OFFLINE              
    ora....c2.inst application    ONLINE    ONLINE    rac2       
    ora....SM1.asm application    OFFLINE   OFFLINE              
    ora....C1.lsnr application    ONLINE    ONLINE    rac1       
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
    ora.rac1.ons   application    ONLINE    ONLINE    rac1       
    ora.rac1.vip   application    ONLINE    ONLINE    rac1       
    ora....SM2.asm application    ONLINE    ONLINE    rac2       
    ora....C2.lsnr application    ONLINE    ONLINE    rac2       
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
    ora.rac2.ons   application    ONLINE    ONLINE    rac2       
    ora.rac2.vip   application    ONLINE    ONLINE    rac2       

    [oracle@rac1 ~]$ srvctl start asm -n rac1
    [oracle@rac1 ~]$
    [oracle@rac1 ~]$
    [oracle@rac1 ~]$ crs_stat -t
    Name           Type           Target    State     Host       
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2       
    ora....c1.inst application    OFFLINE   OFFLINE              
    ora....c2.inst application    ONLINE    ONLINE    rac2       
    ora....SM1.asm application    ONLINE    ONLINE    rac1       
    ora....C1.lsnr application    ONLINE    ONLINE    rac1       
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
    ora.rac1.ons   application    ONLINE    ONLINE    rac1       
    ora.rac1.vip   application    ONLINE    ONLINE    rac1       
    ora....SM2.asm application    ONLINE    ONLINE    rac2       
    ora....C2.lsnr application    ONLINE    ONLINE    rac2       
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
    ora.rac2.ons   application    ONLINE    ONLINE    rac2       
    ora.rac2.vip   application    ONLINE    ONLINE    rac2
     
           
    [oracle@rac1 ~]$ srvctl start instance -d myrac -i myrac1
    [oracle@rac1 ~]$ crs_stat -t
    Name           Type           Target    State     Host       
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2       
    ora....c1.inst application    ONLINE    ONLINE    rac1       
    ora....c2.inst application    ONLINE    ONLINE    rac2       
    ora....SM1.asm application    ONLINE    ONLINE    rac1       
    ora....C1.lsnr application    ONLINE    ONLINE    rac1       
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
    ora.rac1.ons   application    ONLINE    ONLINE    rac1       
    ora.rac1.vip   application    ONLINE    ONLINE    rac1       
    ora....SM2.asm application    ONLINE    ONLINE    rac2       
    ora....C2.lsnr application    ONLINE    ONLINE    rac2       
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
    ora.rac2.ons   application    ONLINE    ONLINE    rac2       
    ora.rac2.vip   application    ONLINE    ONLINE    rac2       
    [oracle@rac1 ~]$ 

         5. Stop instances running on node 2.
    ==》
    [oracle@rac2 ~]$ crs_stat -t
    Name           Type           Target    State     Host       
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2       
    ora....c1.inst application    ONLINE    ONLINE    rac1       
    ora....c2.inst application    ONLINE    ONLINE    rac2       
    ora....SM1.asm application    ONLINE    ONLINE    rac1       
    ora....C1.lsnr application    ONLINE    ONLINE    rac1       
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
    ora.rac1.ons   application    ONLINE    ONLINE    rac1       
    ora.rac1.vip   application    ONLINE    ONLINE    rac1       
    ora....SM2.asm application    ONLINE    ONLINE    rac2       
    ora....C2.lsnr application    ONLINE    ONLINE    rac2       
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
    ora.rac2.ons   application    ONLINE    ONLINE    rac2       
    ora.rac2.vip   application    ONLINE    ONLINE    rac2       
    [oracle@rac2 ~]$
    [oracle@rac2 ~]$
    [oracle@rac2 ~]$
     srvctl stop instance -d myrac -i myrac2
    [oracle@rac2 ~]$ crs_stat -t
    Name           Type           Target    State     Host       
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2       
    ora....c1.inst application    ONLINE    ONLINE    rac1       
    ora....c2.inst application    OFFLINE   OFFLINE              
    ora....SM1.asm application    ONLINE    ONLINE    rac1       
    ora....C1.lsnr application    ONLINE    ONLINE    rac1       
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
    ora.rac1.ons   application    ONLINE    ONLINE    rac1       
    ora.rac1.vip   application    ONLINE    ONLINE    rac1       
    ora....SM2.asm application    ONLINE    ONLINE    rac2       
    ora....C2.lsnr application    ONLINE    ONLINE    rac2       
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
    ora.rac2.ons   application    ONLINE    ONLINE    rac2       
    ora.rac2.vip   application    ONLINE    ONLINE    rac2       
    [oracle@rac2 ~]$
     
     
    [oracle@rac2 ~]$ srvctl stop asm -n rac2
    [oracle@rac2 ~]$
    [oracle@rac2 ~]$ crs_stat -t
    Name           Type           Target    State     Host       
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2       
    ora....c1.inst application    ONLINE    ONLINE    rac1       
    ora....c2.inst application    OFFLINE   OFFLINE              
    ora....SM1.asm application    ONLINE    ONLINE    rac1       
    ora....C1.lsnr application    ONLINE    ONLINE    rac1       
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
    ora.rac1.ons   application    ONLINE    ONLINE    rac1       
    ora.rac1.vip   application    ONLINE    ONLINE    rac1       
    ora....SM2.asm application    OFFLINE   OFFLINE              
    ora....C2.lsnr application    ONLINE    ONLINE    rac2       
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
    ora.rac2.ons   application    ONLINE    ONLINE    rac2       
    ora.rac2.vip   application    ONLINE    ONLINE    rac2        
     

    [oracle@rac2 ~]$
     srvctl stop nodeapps -n rac2
    [oracle@rac2 ~]$ crs_stat -t
    Name           Type           Target    State     Host       
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2       
    ora....c1.inst application    ONLINE    ONLINE    rac1       
    ora....c2.inst application    OFFLINE   OFFLINE              
    ora....SM1.asm application    ONLINE    ONLINE    rac1       
    ora....C1.lsnr application    ONLINE    ONLINE    rac1       
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
    ora.rac1.ons   application    ONLINE    ONLINE    rac1       
    ora.rac1.vip   application    ONLINE    ONLINE    rac1       
    ora....SM2.asm application    OFFLINE   OFFLINE              
    ora....C2.lsnr application    OFFLINE   OFFLINE              
    ora.rac2.gsd   application    OFFLINE   OFFLINE              
    ora.rac2.ons   application    OFFLINE   OFFLINE              
    ora.rac2.vip   application    OFFLINE   OFFLINE               
     
    ==》自己的步骤,备份$ORACLE_HOME
     
    [oracle@rac2 10.2.0]$ cp -r db1 db1_bak
    [oracle@rac2 10.2.0]$ du -sm db1 db1_bak/
    1846    db1
    1846    db1_bak/
     
    =====================
     
     
     
         6. Ask opatch to continue to applying the patch to node 2.
    ==》
    The node 'rac2' will be patched next.


    Please shutdown Oracle instances running out of this ORACLE_HOME on 'rac2'.
    (Oracle Home = '/opt/oracle/product/10.2.0/db1')

    Is the node ready for patching? [y|n]
    y
    User Responded with: Y
    Updating nodes 'rac2'
       Apply-related files are:
         FP = "/opt/oracle/product/10.2.0/db1/.patch_storage/10214450_Nov_24_2010_10_44_52/rac/copy_files.txt"
         DP = "/opt/oracle/product/10.2.0/db1/.patch_storage/10214450_Nov_24_2010_10_44_52/rac/copy_dirs.txt"
         MP = "/opt/oracle/product/10.2.0/db1/.patch_storage/10214450_Nov_24_2010_10_44_52/rac/make_cmds.txt"
         RC = "/opt/oracle/product/10.2.0/db1/.patch_storage/10214450_Nov_24_2010_10_44_52/rac/remote_cmds.txt"

    Instantiating the file "/opt/oracle/product/10.2.0/db1/.patch_storage/10214450_Nov_24_2010_10_44_52/rac/copy_files.txt.instantiated" by replacing $ORACLE_HOME in "/opt/oracle/product/10.2.0/db1/.patch_storage/10214450_Nov_24_2010_10_44_52/rac/copy_files.txt" with actual path.
    Propagating files to remote nodes...
    Instantiating the file "/opt/oracle/product/10.2.0/db1/.patch_storage/10214450_Nov_24_2010_10_44_52/rac/copy_dirs.txt.instantiated" by replacing $ORACLE_HOME in "/opt/oracle/product/10.2.0/db1/.patch_storage/10214450_Nov_24_2010_10_44_52/rac/copy_dirs.txt" with actual path.
    Propagating directories to remote nodes...
    Instantiating the file "/opt/oracle/product/10.2.0/db1/.patch_storage/10214450_Nov_24_2010_10_44_52/rac/make_cmds.txt.instantiated" by replacing $ORACLE_HOME in "/opt/oracle/product/10.2.0/db1/.patch_storage/10214450_Nov_24_2010_10_44_52/rac/make_cmds.txt" with actual path.
    Running command on remote node 'rac2':
    cd /opt/oracle/product/10.2.0/db1/rdbms/lib; /usr/bin/make -f ins_rdbms.mk ikfod ORACLE_HOME=/opt/oracle/product/10.2.0/db1 || echo REMOTE_MAKE_FAILED::>&2

    Running command on remote node 'rac2':
    cd /opt/oracle/product/10.2.0/db1/rdbms/lib; /usr/bin/make -f ins_rdbms.mk ioracle ORACLE_HOME=/opt/oracle/product/10.2.0/db1 || echo REMOTE_MAKE_FAILED::>&2

    Running command on remote node 'rac2':
    cd /opt/oracle/product/10.2.0/db1/network/lib; /usr/bin/make -f ins_net_client.mk client_sharedlib ORACLE_HOME=/opt/oracle/product/10.2.0/db1 || echo REMOTE_MAKE_FAILED::>&2


    The node 'rac2' has been patched.  You can restart Oracle instances on it.

    There were relinks on remote nodes.  Remember to check the binary size and timestamp on the nodes 'rac2' .
    The following make commands were invoked on remote nodes:
    'cd /opt/oracle/product/10.2.0/db1/rdbms/lib; /usr/bin/make -f ins_rdbms.mk ikfod ORACLE_HOME=/opt/oracle/product/10.2.0/db1
    cd /opt/oracle/product/10.2.0/db1/rdbms/lib; /usr/bin/make -f ins_rdbms.mk ioracle ORACLE_HOME=/opt/oracle/product/10.2.0/db1
    cd /opt/oracle/product/10.2.0/db1/network/lib; /usr/bin/make -f ins_net_client.mk client_sharedlib ORACLE_HOME=/opt/oracle/product/10.2.0/db1
    '



    OPatch succeeded.
     
         7. Start instances on node 2.  
    ==》   
    [oracle@rac2 10.2.0]$ srvctl start nodeapps -n rac2
    [oracle@rac2 10.2.0]$ crs_stat -t
    Name           Type           Target    State     Host       
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2       
    ora....c1.inst application    ONLINE    ONLINE    rac1       
    ora....c2.inst application    OFFLINE   OFFLINE              
    ora....SM1.asm application    ONLINE    ONLINE    rac1       
    ora....C1.lsnr application    ONLINE    ONLINE    rac1       
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
    ora.rac1.ons   application    ONLINE    ONLINE    rac1       
    ora.rac1.vip   application    ONLINE    ONLINE    rac1       
    ora....SM2.asm application    OFFLINE   OFFLINE              
    ora....C2.lsnr application    ONLINE    ONLINE    rac2       
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
    ora.rac2.ons   application    ONLINE    ONLINE    rac2       
    ora.rac2.vip   application    ONLINE    ONLINE    rac2   
        
    [oracle@rac2 10.2.0]$ srvctl start asm -n rac2
    [oracle@rac2 10.2.0]$
    [oracle@rac2 10.2.0]$ srvctl start instance -d myrac -i myrac2
    [oracle@rac2 10.2.0]$
    [oracle@rac2 10.2.0]$
    [oracle@rac2 10.2.0]$ crs_stat -t
    Name           Type           Target    State     Host       
    ------------------------------------------------------------
    ora.myrac.db   application    ONLINE    ONLINE    rac2       
    ora....c1.inst application    ONLINE    ONLINE    rac1       
    ora....c2.inst application    ONLINE    ONLINE    rac2       
    ora....SM1.asm application    ONLINE    ONLINE    rac1       
    ora....C1.lsnr application    ONLINE    ONLINE    rac1       
    ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
    ora.rac1.ons   application    ONLINE    ONLINE    rac1       
    ora.rac1.vip   application    ONLINE    ONLINE    rac1       
    ora....SM2.asm application    ONLINE    ONLINE    rac2       
    ora....C2.lsnr application    ONLINE    ONLINE    rac2       
    ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
    ora.rac2.ons   application    ONLINE    ONLINE    rac2       
    ora.rac2.vip   application    ONLINE    ONLINE    rac2       
    [oracle@rac2 10.2.0]$ 
    检查两个节点的补丁情况:
    节点1:
    [oracle@rac1 10214450]$ opatch lsinv -all
    Invoking OPatch 10.2.0.4.2

    Oracle Interim Patch Installer version 10.2.0.4.2
    Copyright (c) 2007, Oracle Corporation.  All rights reserved.


    Oracle Home       : /opt/oracle/product/10.2.0/db1
    Central Inventory : /opt/oracle/oraInventory
       from           : /etc/oraInst.loc
    OPatch version    : 10.2.0.4.2
    OUI version       : 10.2.0.4.0
    OUI location      : /opt/oracle/product/10.2.0/db1/oui
    Log file location : /opt/oracle/product/10.2.0/db1/cfgtoollogs/opatch/opatch2011-12-04_11-33-35AM.log

    Lsinventory Output file location : /opt/oracle/product/10.2.0/db1/cfgtoollogs/opatch/lsinv/lsinventory2011-12-04_11-33-35AM.txt

    --------------------------------------------------------------------------------
    List of Oracle Homes:
      Name          Location
       OraCrs10g_home         /opt/oracle/product/crs
       OraDb10g_home1         /opt/oracle/product/10.2.0/db1

    Installed Top-level Products (2):

    Oracle Database 10g                                                  10.2.0.1.0
    Oracle Database 10g Release 2 Patch Set 3                            10.2.0.4.0
    There are 2 products installed in this Oracle Home.


    Interim patches (1) :

    Patch  10214450     : applied on Sun Dec 04 10:39:48 CST 2011
       Created on 24 Nov 2010, 10:44:52 hrs PST8PDT
       Bugs fixed:
         10214450



    Rac system comprising of multiple nodes
      Local node = rac1
      Remote node = rac2

    --------------------------------------------------------------------------------

    OPatch succeeded.
    [oracle@rac1 10214450]$ 
     
     
    节点2:
    [oracle@rac2 10.2.0]$ opatch lsinv -all
    Invoking OPatch 10.2.0.4.2

    Oracle Interim Patch Installer version 10.2.0.4.2
    Copyright (c) 2007, Oracle Corporation.  All rights reserved.


    Oracle Home       : /opt/oracle/product/10.2.0/db1
    Central Inventory : /opt/oracle/oraInventory
       from           : /etc/oraInst.loc
    OPatch version    : 10.2.0.4.2
    OUI version       : 10.2.0.4.0
    OUI location      : /opt/oracle/product/10.2.0/db1/oui
    Log file location : /opt/oracle/product/10.2.0/db1/cfgtoollogs/opatch/opatch2011-12-04_11-36-19AM.log

    Lsinventory Output file location : /opt/oracle/product/10.2.0/db1/cfgtoollogs/opatch/lsinv/lsinventory2011-12-04_11-36-19AM.txt

    --------------------------------------------------------------------------------
    List of Oracle Homes:
      Name          Location
       OraCrs10g_home         /opt/oracle/product/crs
       OraDb10g_home1         /opt/oracle/product/10.2.0/db1

    Installed Top-level Products (2):

    Oracle Database 10g                                                  10.2.0.1.0
    Oracle Database 10g Release 2 Patch Set 3                            10.2.0.4.0
    There are 2 products installed in this Oracle Home.


    Interim patches (1) :

    Patch  10214450     : applied on Sun Dec 04 10:39:48 CST 2011
       Created on 24 Nov 2010, 10:44:52 hrs PST8PDT
       Bugs fixed:
         10214450



    Rac system comprising of multiple nodes
      Local node = rac2
      Remote node = rac1

    --------------------------------------------------------------------------------

    OPatch succeeded.
     
     
     
     
    已使用上面的方法进行打补丁:

    Patch Installation Steps:
    -------------------------


    1.  Set your current directory to the directory where the patch is located.

      cd <PATCH_TOP>/10214450

    2.  Apply the patch.


    Use the following command to apply the patch to the ORACLE_HOME:

      opatch apply

    When OPatch starts, it will validate the patch and make sure there
    are no conflicts with the software already installed in the ORACLE_HOME.
    OPatch categorizes two types of conflicts:

      (a) Conflicts with a patch already applied to the ORACLE_HOME
      In this case, please stop the patch installation and contact
      Oracle Support Services.

      (b) Conflicts with subset patch already applied to the ORACLE_HOME
      In this case, please continue the install, as the new patch
      contains all the fixes from the existing patch in the ORACLE_HOME.
      The subset patch will automatically be rolled back prior to the
      installation of the new patch.

     

    Patch Post Install Instructions:
    --------------------------------



    Patch Deinstallation Instructions:
    ----------------------------------

    1. Make sure to follow the same pre-install steps when deinstalling
    a patch.  This includes verifying the inventory and shutting down
    any services running from the ORACLE_HOME / machine before rolling
    the patch back.

    2. Change to the directory where the patch was unzipped.
      cd <PATCH_TOP>/10214450

    3. Run OPatch to deinstall the patch.
    opatch rollback -id 10214450
  • 相关阅读:
    Java web错误汇总
    JSP自学笔记
    猜拳游戏三局两胜------java实现代码
    Exception异常处理
    XDocument简单入门
    使用oledb读取excel表
    ueditor 定制工具栏图标
    在mvc返回JSON时出错:序列化类型为“System.Data.Entity.DynamicProxies.Photos....这个会的对象时检测到循环引用 的解决办法
    在网页中浏览PDF文档
    Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
  • 原文地址:https://www.cnblogs.com/gw811/p/3676890.html
Copyright © 2020-2023  润新知