最近部署測試環境時,將測試環境ORACLE數據庫從10.2.0.1升級到了10.2.0.4,順便整理記錄一下升級過程。sql
實驗環境: 操做系統:Oracle Linux Server release 5.7 數據庫:Oracle 10.2.0.1shell
下載解壓補丁包數據庫
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等各種狀況升級。bash
安裝前任務session
1:操做系統要求oracle
以下所示,官方文檔有system requirements,即必須知足操做系統要求才能打補丁,通常狀況下不多有不知足條件。app
System Requirementsdom
The following are the system requirements for this patch set:測試
Operating Systemui
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
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
在root帳號下執行/u01/app/oracle/product/dbhome_1/root.sh
安裝後任務
升級數據庫
可使用手工升級數據庫或使用DBUA界面安裝數據庫。下面咱們選擇使用手工升級數據庫
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.
關閉數據庫,而後執行腳本:
SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF
@?/rdbms/admin/catupgrd.sql
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:
驗證
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: ...........