代码改变世界

Linux下Oracle 10.2.0.1升级到10.2.0.4总结

2014-03-12 17:26  潇湘隐者  阅读(10848)  评论(0编辑  收藏  举报

最近部署测试环境时,将测试环境ORACLE数据库从10.2.0.1升级到了10.2.0.4,顺便整理记录一下升级过程。

实验环境: 操作系统:Oracle Linux Server release 5.7 数据库:Oracle 10.2.0.1

下载解压补丁包

   1: [oracle@DB-Server tmp]$ unzip p6810189_10204_Linux-x86-64.zip 
   2:  
   3: [oracle@DB-Server Disk1]$ ls
   4: 10204_buglist.htm  install    patch_note.htm  response  runInstaller  stage

解压后生成Disk1目录,里面patch_note.htm 有详细的升级补丁的介绍,建议升级补丁前,应该好好看看patch_note.htm,里面介绍了Oracle Database、Oracle Real Application Clusters、Oracle Database Client、Oracle Database Vault等各类情况升级。

安装前任务

1:操作系统要求

如下所示,官方文档有system requirements,即必须满足操作系统要求才能打补丁,一般情况下很少有不满足条件。

System Requirements

The following are the system requirements for this patch set:

Operating System

Asianux 2.0

Asianux 3.0

Oracle Enterprise Linux 4.0/Oracle VM

Oracle Enterprise Linux 5.0/Oracle VM

Red Hat Enterprise Linux AS/ES 3.0

Red Hat Enterprise Linux AS/ES 4.0/Oracle VM

Red Hat Enterprise Linux AS/ES 5.0/Oracle VM

SUSE Linux Enterprise Server (SLES) 9

SUSE Linux Enterprise Server (SLES) 10

Oracle Database 10g (10.2.0.1) or later

2:检查设置环境变量

   1: [oracle@DB-Server ~]$ echo $ORACLE_HOME
   2: /u01/app/oracle/product/dbhome_1
   3: [oracle@DB-Server ~]$ echo $ORACLE_SID
   4: epps
   5: [oracle@DB-Server ~]$ 

3:查看安装补丁情况

   1: [oracle@DB-Server OPatch]$ ./opatch 
   2: Invoking OPatch 10.2.0.1.0
   3:  
   4: Oracle interim Patch Installer version 10.2.0.1.0
   5: Copyright (c) 2005, Oracle Corporation.  All rights reserved..
   6:  
   7:  
   8: Oracle Home       : /u01/app/oracle/product/dbhome_1
   9: Central Inventory : /u01/app/oracle/oraInventory
  10:    from           : /u01/app/oracle/product/dbhome_1/oraInst.loc
  11: OPatch version    : 10.2.0.1.0
  12: OUI version       : 10.2.0.1.0
  13: OUI location      : /u01/app/oracle/product/dbhome_1/oui
  14: Log file location : /u01/app/oracle/product/dbhome_1/cfgtoollogs/opatch/opatch-2014_Mar_11_15-22-45-CST_Tue.log
  15:  
  16:  
  17:  Usage: opatch [ -help ] [ -r[eport] ] [ command ]
  18:  
  19:             command := apply
  20:                        lsinventory
  21:                        query
  22:                        rollback
  23:                        version
  24:  
  25:  <global_arguments> := -help       Displays the help message for the command.
  26:                        -report     Print the actions without executing (deprecated).
  27:  
  28:  example:
  29:    'opatch -help'
  30:    'opatch apply -help'
  31:    'opatch lsinventory -help'
  32:    'opatch rollback -help'
  33:  
  34:  
  35: OPatch succeeded.
  36: [oracle@DB-Server OPatch]$ ./opatch lsinventory -all
  37: Invoking OPatch 10.2.0.1.0
  38:  
  39: Oracle interim Patch Installer version 10.2.0.1.0
  40: Copyright (c) 2005, Oracle Corporation.  All rights reserved..
  41:  
  42:  
  43: Oracle Home       : /u01/app/oracle/product/dbhome_1
  44: Central Inventory : /u01/app/oracle/oraInventory
  45:    from           : /u01/app/oracle/product/dbhome_1/oraInst.loc
  46: OPatch version    : 10.2.0.1.0
  47: OUI version       : 10.2.0.1.0
  48: OUI location      : /u01/app/oracle/product/dbhome_1/oui
  49: Log file location : /u01/app/oracle/product/dbhome_1/cfgtoollogs/opatch/opatch-2014_Mar_11_15-23-02-CST_Tue.log
  50:  
  51: Lsinventory Output file location : /u01/app/oracle/product/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory-2014_Mar_11_15-23-02-CST_Tue.txt
  52:  
  53: --------------------------------------------------------------------------------
  54: List of Oracle Homes:
  55:   Name          Location
  56:    OraDb10g_home1         /u01/app/oracle/product/dbhome_1
  57:  
  58: Installed Top-level Products (1): 
  59:  
  60: Oracle Database 10g                                                  10.2.0.1.0
  61: There are 1 products installed in this Oracle Home.
  62:  
  63:  
  64: There are no Interim patches installed in this Oracle Home.
  65:  
  66: --------------------------------------------------------------------------------
  67:  
  68: OPatch succeeded.

4:检查Oracle Time Zone Definitions

clip_image001

5:停止所有进程(Stop All Processes)

$ emctl stop dbconsole

$ isqlplusctl stop

$ lsnrctl stop

SQL> SHUTDOWN IMMEDIATE

   1: [oracle@DB-Server ~]$ emctl stop dbconsole
   2: TZ set to Asia/Chungking
   3: OC4J Configuration issue. /u01/app/oracle/product/dbhome_1/oc4j/j2ee/OC4J_DBConsole_DB-Server.localdomain_epps not found. 
   4: [oracle@DB-Server ~]$ isqlplusctl stop
   5: iSQL*Plus 10.2.0.1.0
   6: Copyright (c) 2003, 2005, Oracle.  All rights reserved.
   7: getnameinfo failed
   8: getnameinfo failed
   9: iSQL*Plus instance on port 5560 is not running ...
  10: [oracle@DB-Server ~]$ lsnrctl stop
  11:  
  12: LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 11-MAR-2014 15:33:20
  13:  
  14: Copyright (c) 1991, 2005, Oracle.  All rights reserved.
  15:  
  16: Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.10.11)(PORT=1521)))
  17: The command completed successfully
  18:  
  19: [oracle@DB-Server ~]$ sqlplus / as sysdba
  20:  
  21: SQL*Plus: Release 10.2.0.1.0 - Production on Tue Mar 11 15:34:02 2014
  22:  
  23: Copyright (c) 1982, 2005, Oracle.  All rights reserved.
  24:  
  25:  
  26: Connected to:
  27: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
  28: With the Partitioning, OLAP and Data Mining options
  29:  
  30: SQL> shutdown immediate;
  31: Database closed.
  32: Database dismounted.
  33: ORACLE instance shut down.

备份数据库

因为是测试数据库,可以做备份或不做备份关系不大,生产环境则必须先做一个冷备或热备。

安装补丁包

Oracle提供了两种方式安装补丁包,即图形化安装或静默安装。即Installing the Oracle Database 10g Patch Set Interactively 和

Installing the Oracle Database 10g Patch Set Noninteractively 安装。

下面我们先用Installing the Oracle Database 10g Patch Set Interactively

Installing the Oracle Database 10g Patch Set Interactively

1.Log in as the oracle user.

2.If you are not installing the software on the local computer, then run the following command on remote machine:

Bourne, Bash, or Korn shell:

$ export DISPLAY=localhost:0.0

C shell:

% setenv DISPLAY local_host:0.0

In this example, local_host is the host name or IP address of the computer that you want to use to display Oracle Universal Installer.

Now to enable X applications, run the following command on the machine that you want to use to display Oracle Universal Installer:

$ xhost + [fully_qualified_remote_host_name]

注意上面事项,否则有可能出现下面错误信息

   1: [oracle@DB-Server Disk1]$ ./runInstaller 
   2:  
   3: Starting Oracle Universal Installer...
   4:  
   5: Checking installer requirements...
   6:  
   7: Checking operating system version: must be redhat-3, SuSE-9, SuSE-10, redhat-4, redhat-5, UnitedLinux-1.0, asian
   8:  
   9: ux-1, asianux-2 or asianux-3
  10:  
  11: Passed
  12:  
  13: All installer requirements met.
  14:  
  15: Preparing to launch Oracle Universal Installer from /tmp/OraInstall2014-03-11_03-39-25PM. Please wait ...[oracle
  16:  
  17: @DB-Server Disk1]$ Oracle Universal Installer, Version 10.2.0.4.0 Production
  18:  
  19: Copyright (C) 1999, 2008, Oracle. All rights reserved.
  20:  
  21: Xlib: connection to ":0.0" refused by server
  22:  
  23: Xlib: No protocol specified
  24:  
  25: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
  26:  
  27: :0.0
  28:  
  29: :0.0
  30:  
  31: OUI-10025:Unable to start an interactive install session because of the following error:Can't connect to X11 win
  32:  
  33: dow server using ':0.0' as the value of the DISPLAY variable. The DISPLAY environment variable should be set to 
  34:  
  35: <hostname or IP address>:<screen>, where the <screen> is usually '0.0'.
  36:  
  37: OUI-10026:Depending on the Unix Shell, you can use one of the following commands as examples to set the DISPLAY 
  38:  
  39: environment variable:
  40:  
  41: - For csh: % setenv DISPLAY 192.168.1.128:0.0
  42:  
  43: - For sh, ksh and bash: $ DISPLAY=192.168.1.128:0.0; export DISPLAY
  44:  
  45: Use the following command to see what shell is being used:
  46:  
  47: echo $SHELL
  48:  
  49: Use the following command to view the current DISPLAY environment variable setting:
  50:  
  51: echo $DISPLAY
  52:  
  53: - Make sure that client users are authorized to connect to the X Server.
  54:  
  55: OUI-10027:To enable client users to access the X Server, open an xterm, dtterm or xconsole as the user that star
  56:  
  57: ted the session and type the following command:
  58:  
  59: % xhost +
  60:  
  61: To test that the DISPLAY environment variable is set correctly, run a X11 based program that comes with the nati
  62:  
  63: ve operating system such as 'xclock':
  64:  
  65: % <full path to xclock... see below>
  66:  
  67: If you are not able to run xclock successfully, please refer to your PC-X Server or OS vendor for further assistance.
  68:  
  69: Typical path for 'xclock': '/usr/X11R6/bin/xclock'
  70:  
  71: [oracle@DB-Server ~]$ 
  72:  

[oracle@DB-Server Disk1]$ ./runInstaller

clip_image002

clip_image003

clip_image004

clip_image005

clip_image006

clip_image007

在root账号下执行/u01/app/oracle/product/dbhome_1/root.sh

clip_image008

clip_image009

安装后任务

升级数据库

可以使用手工升级数据库或使用DBUA界面安装数据库。下面我们选择使用手工升级数据库

clip_image010

1:Start the database in the UPGRADE mode

   1: [oracle@DB-Server ~]$ sqlplus / as sysdba
   2:  
   3: SQL*Plus: Release 10.2.0.4.0 - Production on Tue Mar 11 16:27:30 2014
   4:  
   5: Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
   6:  
   7: Connected to an idle instance.
   8:  
   9: SQL> startup upgrade
  10: ORACLE instance started.
  11:  
  12: Total System Global Area 2483027968 bytes
  13: Fixed Size                  2085968 bytes
  14: Variable Size             603982768 bytes
  15: Database Buffers         1862270976 bytes
  16: Redo Buffers               14688256 bytes
  17: Database mounted.
  18: Database opened.

2.Set the system to spool results to a log file for later analysis:

SQL> SPOOL upgrade_info.log

3.Run the Pre-Upgrade Information Tool:

   1: SQL> @?/rdbms/admin/utlu102i.sql
   2: Oracle Database 10.2 Upgrade Information Utility    03-11-2014 16:30:19
   3: .
   4: **********************************************************************
   5: Database:
   6: **********************************************************************
   7: --> name:       EPPS
   8: --> version:    10.2.0.1.0
   9: --> compatible: 10.2.0.1.0
  10: --> blocksize:  8192
  11: .
  12: **********************************************************************
  13: Tablespaces: [make adjustments in the current environment]
  14: **********************************************************************
  15: --> SYSTEM tablespace is adequate for the upgrade.
  16: .... minimum required size: 544 MB
  17: .... AUTOEXTEND additional space required: 4 MB
  18: --> UNDOTBS1 tablespace is adequate for the upgrade.
  19: .... minimum required size: 400 MB
  20: .... AUTOEXTEND additional space required: 270 MB
  21: --> SYSAUX tablespace is adequate for the upgrade.
  22: .... minimum required size: 410 MB
  23: --> TEMP tablespace is adequate for the upgrade.
  24: .... minimum required size: 58 MB
  25: --> EXAMPLE tablespace is adequate for the upgrade.
  26: .... minimum required size: 69 MB
  27: .
  28: **********************************************************************
  29: Update Parameters: [Update Oracle Database 10.2 init.ora or spfile]
  30: **********************************************************************
  31: -- No update parameter changes are required.
  32: .
  33: **********************************************************************
  34: Renamed Parameters: [Update Oracle Database 10.2 init.ora or spfile]
  35: **********************************************************************
  36: -- No renamed parameters found. No changes are required.
  37: .
  38: **********************************************************************
  39: Obsolete/Deprecated Parameters: [Update Oracle Database 10.2 init.ora or spfile]
  40: **********************************************************************
  41: -- No obsolete parameters found. No changes are required
  42: .
  43: **********************************************************************
  44: Components: [The following database components will be upgraded or installed]
  45: **********************************************************************
  46: --> Oracle Catalog Views         [upgrade]  VALID
  47: --> Oracle Packages and Types    [upgrade]  VALID
  48: --> JServer JAVA Virtual Machine [upgrade]  VALID
  49: --> Oracle XDK for Java          [upgrade]  VALID
  50: --> Oracle Java Packages         [upgrade]  VALID
  51: --> Oracle Text                  [upgrade]  VALID
  52: --> Oracle XML Database          [upgrade]  VALID
  53: --> Oracle Workspace Manager     [upgrade]  VALID
  54: --> Oracle Data Mining           [upgrade]  VALID
  55: --> OLAP Analytic Workspace      [upgrade]  VALID
  56: --> OLAP Catalog                 [upgrade]  VALID
  57: --> Oracle OLAP API              [upgrade]  VALID
  58: --> Oracle interMedia            [upgrade]  VALID
  59: --> Spatial                      [upgrade]  VALID
  60: --> Expression Filter            [upgrade]  VALID
  61: --> EM Repository                [upgrade]  VALID
  62: --> Rule Manager                 [upgrade]  VALID
  63: .
  64: **********************************************************************
  65: Miscellaneous Warnings
  66: **********************************************************************
  67: PL/SQL procedure successfully completed.

查看已经安装的补丁情况:

   1: [oracle@DB-Server OPatch]$ ./opatch lsinventory -all
   2: Invoking OPatch 10.2.0.4.2
   3:  
   4: Oracle Interim Patch Installer version 10.2.0.4.2
   5: Copyright (c) 2007, Oracle Corporation.  All rights reserved.
   6:  
   7:  
   8: Oracle Home       : /u01/app/oracle/product/dbhome_1
   9: Central Inventory : /u01/app/oracle/oraInventory
  10:    from           : /etc/oraInst.loc
  11: OPatch version    : 10.2.0.4.2
  12: OUI version       : 10.2.0.4.0
  13: OUI location      : /u01/app/oracle/product/dbhome_1/oui
  14: Log file location : /u01/app/oracle/product/dbhome_1/cfgtoollogs/opatch/opatch2014-03-11_16-55-25PM.log
  15:  
  16: Lsinventory Output file location : /u01/app/oracle/product/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2014-03-11_16-55-25PM.txt
  17:  
  18: --------------------------------------------------------------------------------
  19: List of Oracle Homes:
  20:   Name          Location
  21:    OraDb10g_home1         /u01/app/oracle/product/dbhome_1
  22:  
  23: Installed Top-level Products (2): 
  24:  
  25: Oracle Database 10g                                                  10.2.0.1.0
  26: Oracle Database 10g Release 2 Patch Set 3                            10.2.0.4.0
  27: There are 2 products installed in this Oracle Home.
  28:  
  29:  
  30: There are no Interim patches installed in this Oracle Home.
  31:  
  32:  
  33: --------------------------------------------------------------------------------
  34:  
  35: OPatch succeeded.

clip_image011

关闭数据库,然后执行脚本:

SQL> STARTUP UPGRADE

SQL> SPOOL patch.log

SQL> @?/rdbms/admin/catupgrd.sql

SQL> SPOOL OFF

@?/rdbms/admin/catupgrd.sql

clip_image012

   1: SQL> shutdown immediate;
   2:  
   3: Database closed.
   4:  
   5: Database dismounted.
   6:  
   7: ORACLE instance shut down.
   8:  
   9: SQL> startup
  10:  
  11: ORACLE instance started.
  12:  
  13: Total System Global Area 2483027968 bytes
  14:  
  15: Fixed Size 2085968 bytes
  16:  
  17: Variable Size 637537200 bytes
  18:  
  19: Database Buffers 1828716544 bytes
  20:  
  21: Redo Buffers 14688256 bytes
  22:  
  23: Database mounted.
  24:  
  25: Database opened.
  26:  
  27: SQL> @?/rdbms/admin/utlrp.sql
  28:  

验证

clip_image013

   1: SQL> COL COMP_NAME FOR A50
   2: SQL> COL VERSION FOR A12
   3: SQL> COL STATUS FOR A12
   4: SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;
   5:  
   6: COMP_NAME                                          VERSION      STATUS
   7: -------------------------------------------------- ------------ ------------
   8: Oracle Database Catalog Views                      10.2.0.4.0   VALID
   9: Oracle Database Packages and Types                 10.2.0.4.0   VALID
  10: Oracle Workspace Manager                           10.2.0.4.3   VALID
  11: JServer JAVA Virtual Machine                       10.2.0.4.0   VALID
  12: Oracle XDK                                         10.2.0.4.0   VALID
  13: Oracle Database Java Packages                      10.2.0.4.0   VALID
  14: Oracle Expression Filter                           10.2.0.4.0   VALID
  15: Oracle Data Mining                                 10.2.0.4.0   VALID
  16: Oracle Text                                        10.2.0.4.0   VALID
  17: Oracle XML Database                                10.2.0.4.0   VALID
  18: Oracle Rule Manager                                10.2.0.4.0   VALID
  19:  
  20: COMP_NAME                                          VERSION      STATUS
  21: -------------------------------------------------- ------------ ------------
  22: Oracle interMedia                                  10.2.0.4.0   VALID
  23: OLAP Analytic Workspace                            10.2.0.4.0   VALID
  24: Oracle OLAP API                                    10.2.0.4.0   VALID
  25: OLAP Catalog                                       10.2.0.4.0   VALID
  26: Spatial                                            10.2.0.4.0   VALID
  27: Oracle Enterprise Manager                          10.2.0.4.0   VALID
  28:  
  29: 17 rows selected.
  30:  

如果你需要升级emca,那么可以通过emca –upgrade db命令实现。如下所示

   1: [oracle@DB-Server ~]$ emca -upgrade db
   2:  
   3: STARTED EMCA at Mar 12, 2014 2:59:18 PM
   4: EM Configuration Assistant, Version 10.2.0.1.0 Production
   5: Copyright (c) 2003, 2005, Oracle.  All rights reserved.
   6:  
   7: Enter the following information:
   8: ORACLE_HOME for the database to be upgraded: /u01/app/oracle/product/dbhome_1
   9: Database SID: epps
  10: Listener port number: 15
  11: ...........