Oracle 从10.2.0.1升级到10.2.0.5

    xiaoxiao2021-03-25  165

    1、环境介绍 我们已经在 RedHat  6.5上成功安装Oracle 10gR2,版本号为10.2.0.1。 [oracle@SimpleLinux ~]$ uname -r 2.6.32-431.el6.i686 SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod PL/SQL Release 10.2.0.1.0 - Production CORE    10.2.0.1.0      Production TNS for Linux: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 – Production 当前操作系统用户oracle关键环境变量如下: [oracle@SimpleLinux ~]$ env | grep ORA ORACLE_SID=ora11g ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 操作系统存储和内存资源相对充足。 [oracle@SimpleLinux ~]$ df -h Filesystem                          Size  Used Avail Use% Mounted on /dev/mapper/vg_simplelinux-LogVol00  29G  8.7G  19G  32% / tmpfs                                448M    0  448M  0% /dev/shm /dev/sda1                            485M  33M  427M  8% /boot [oracle@SimpleLinux ~]$ free -m total      used      free    shared    buffers    cached Mem:          894        332        561          0        20        241 -/+ buffers/cache:        70        824 Swap:        1999          0      1999 2、备份环境和补丁包准备 首先,我们需要将数据库、监听程序等相关对象进行关闭。根据不同的情况,ASM、DB Control也需要关闭。 [oracle@SimpleLinux ~]$ lsnrctl stop LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 13-MAY-2014 11:19:04 Copyright (c) 1991, 2005, Oracle.  All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))) The command completed successfully SQL> conn / as sysdba Connected. SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. 下面需要备份环境。注意:升级过程是有风险的,特别是在生产环境下。两个步骤是降低升级风险的重要策略:多次测试和数据备份。多次测试(在系统测试环境)可以帮助我们事先发现升级方案问题,准备应对策略,验证方案。数据备份可以最大程度减少我们数据损失风险。 具体备份方法针对各自情况不同,可以选择RMAN、冷备份、exp/expdp等。此处笔者选择直接将目录拷贝的完全方法。 [root@SimpleLinux upload]# mkdir /u02 [root@SimpleLinux upload]# cd /u01 [root@SimpleLinux u01]# cp -r * /u02 [root@SimpleLinux u01]# 正式进行动作前,要重新规划确定升级步骤。本次升级要实现两个补丁包,一个是10.2.0.5升级包,另一个是在10.2.0.5上运行的补丁包。在MOS上针对特定版本下载升级安装包,并且上传到服务器上。 [root@SimpleLinux ~]# cd /upload/ [root@SimpleLinux upload]# ls -l total 1082304 -rw-r--r-- 1 root root    4278863 May 13 11:27 p11724962_10205_LINUX.zip -rw-r--r-- 1 root root 1103992900 May 13 11:29 p8202632_10205_LINUX.zip –升级10.2.0.5包 注意:我们升级数据库是有两个大的步骤,Oracle软件升级和Oracle数据库升级。可以回想一下我们在安装数据库的时候,是先安装数据库软件(包括Grid、Clusterware),之后创建dbca数据库。升级也是一样,我们需要先把数据库软件更新为最新版本,之后清理已经存在的数据库对象,使之升级为最新版本。 3、Oracle软件升级 我们首先进行软件升级动作,解压安装包。 [root@SimpleLinux upload]# ls -l total 1082472 drwxr-xr-x 5 root root      4096 Jul 23  2010 Disk1 -rw-r--r-- 1 root root    4278863 May 13 11:27 p11724962_10205_LINUX.zip -rw-r--r-- 1 root root 1103992900 May 13 11:29 p8202632_10205_LINUX.zip -rwxrwxrwx 1 root root    165290 Jul 20  2010 README.html root中给oracle用户授权。 [root@SimpleLinux upload]# cd / [root@SimpleLinux /]# chown -p oracle:oinstall upload/ chown: invalid option -- 'p' Try `chown --help' for more information. [root@SimpleLinux /]# chown -R oracle:oinstall upload/ [root@SimpleLinux /]# 升级软件是在图形化界面中进行,所需要配置XWindows或者vnc界面工具。执行目录中的.runInstall脚本,就可以启动界面。如果环境变量配置正常,自动Path都会带入到界面中。 错误: [oracle@orcl Disk1]$ ./runInstaller Starting Oracle Universal Installer... Checking installer requirements... Checking operating system version: must be redhat-3, SuSE-9, SuSE-10, redhat-4, redhat-5, redhat-6, UnitedLinux-1.0, asianux-1, asianux-2, asianux-3, enterprise-4, enterprise-5 or SuSE-11 Failed <<<< 需要: [root@localhost ~]# vi /etc/redhat-release 将其内容修改为: Red Hat Enterprise Linux Server release 4.4 (Tikanga) 大部分操作,都是点击Next确认过程。 下面是验证操作系统环境信息,是否满足安装条件。 安装过程,界面和工作内容和一般安装 Oracle 没有过多差异。 最后需要以root用户手工执行脚本。 执行root.sh中,有一些覆盖的确认,建议覆盖。 [root@SimpleLinux ~]# cd /u01/app/oracle/product/10.2.0/db_1/ [root@SimpleLinux db_1]# ./root.sh Running Oracle 10g root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/10.2.0/db_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: y (篇幅原因,有省略……) Now product-specific root actions will be performed. 如果没有明确的报错信息,就说明Oracle软件部分的安装成功。 SQL> alter database open; ERROR at line 1: ORA-01092: ORACLE instance terminated. Disconnection forced 第一步,通过startup upgrade启动实例 SQL> startup upgrade; ORACLE instance started. Total System Global Area   322961408 bytes Fixed Size               2095992 bytes Variable Size                 100664456 bytes Database Buffers       213909504 bytes Redo Buffers                 6291456 bytes Database mounted. Database opened.   第二步,升级数据字典和实例等 SQL>@?/rdbms/admin/catupgrd.sql 整个过程需要15分钟至30分钟左右 升级完毕显示如下: Oracle Database 10.2 Upgrade Status Utility           09-11-2014 21:48:21 Component                                 Status        Version  HH:MM:SS Oracle Database Server                     VALID      10.2.0.5.0  00:15:41 JServer JAVA Virtual Machine               VALID      10.2.0.5.0  00:06:46 Oracle XDK                                 VALID      10.2.0.5.0  00:00:51 Oracle Database Java Packages             VALID      10.2.0.5.0  00:00:45 Oracle Text                               VALID      10.2.0.5.0  00:01:07 Oracle XML Database                       VALID      10.2.0.5.0  00:03:26 Oracle Workspace Manager                   VALID      10.2.0.5.0  00:01:21 Oracle Data Mining                         VALID      10.2.0.5.0  00:00:39 OLAP Analytic Workspace                    VALID      10.2.0.5.0  00:00:48 OLAP Catalog                               VALID      10.2.0.5.0  00:02:01 Oracle OLAP API                           VALID      10.2.0.5.0  00:02:01 Oracle interMedia                         VALID      10.2.0.5.0  00:06:35 Spatial                                   VALID      10.2.0.5.0  00:04:50 Oracle Expression Filter                   VALID      10.2.0.5.0  00:00:30 Oracle Enterprise Manager                 VALID      10.2.0.5.0  00:02:59 Oracle Rule Manager                       VALID      10.2.0.5.0  00:00:18 . Total Upgrade Time: 00:53:47 DOC>####################################################################### DOC>####################################################################### DOC> DOC>   The above PL/SQL lists the SERVER components in the upgraded DOC>   database, along with their current version and status. DOC> DOC>   Please review the status and version columns and look for DOC>   any errors in the spool log file.  If there are errors in the spool DOC>   file, or any components are not VALID or not the current version, DOC>   consult the Oracle Database Upgrade Guide for troubleshooting DOC>   recommendations. DOC> DOC>   Next shutdown immediate, restart for normal operation, and then DOC>   run utlrp.sql to recompile any invalid application objects. DOC> DOC>####################################################################### DOC>####################################################################### DOC>#   第三步,shutdown 实例。Startup实例 第四步,再次编译无效的应用对象 SQL> @?/rdbms/admin/utlrp.sql TIMESTAMP -------------------------------------------------------------------------------- COMP_TIMESTAMP UTLRP_BGN   2014-09-11 21:52:02 DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid DOC>   objects in the database. Recompilation time is proportional to the DOC>   number of invalid objects in the database, so this command may take DOC>   a long time to execute on a database with a large number of invalid DOC>   objects. DOC> DOC>   Use the following queries to track recompilation progress: DOC> DOC>   1. Query returning the number of invalid objects remaining. This DOC>       number should decrease with time. DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6); DOC> DOC>   2. Query returning the number of objects compiled so far. This number DOC>       should increase with time. DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED; DOC> DOC>   This script automatically chooses serial or parallel recompilation DOC>    based on the number of CPUs available (parameter cpu_count) multiplied DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu). DOC>   On RAC, this number is added across all RAC nodes. DOC> DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel DOC>   recompilation. Jobs are created without instance affinity so that they DOC>   can migrate across RAC nodes. Use the following queries to verify DOC>   whether UTL_RECOMP jobs are being created and run correctly: DOC> DOC>   1. Query showing jobs created by UTL_RECOMP DOC>         SELECT job_name FROM dba_scheduler_jobs DOC>             WHERE job_name like 'UTL_RECOMP_SLAVE_%'; DOC> DOC>   2. Query showing UTL_RECOMP jobs that are running DOC>         SELECT job_name FROM dba_scheduler_running_jobs DOC>             WHERE job_name like 'UTL_RECOMP_SLAVE_%'; DOC>#   TIMESTAMP -------------------------------------------------------------------------------- COMP_TIMESTAMP UTLRP_END   2014-09-11 21:53:40 DOC> The following query reports the number of objects that have compiled DOC> with errors (objects that compile with errors have status set to 3 in DOC> obj$). If the number is higher than expected, please examine the error DOC> messages reported with each object (using SHOW ERRORS) to see if they DOC> point to system misconfiguration or resource constraints that must be DOC> fixed before attempting to recompile these objects. DOC>#   OBJECTS WITH ERRORS -------------------                    0 DOC> The following query reports the number of errors caught during DOC> recompilation. If this number is non-zero, please query the error DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors DOC> are due to misconfiguration or resource constraints that must be DOC> fixed before objects can compile successfully. DOC>#   ERRORS DURING RECOMPILATION ---------------------------                            0 SQL>
    转载请注明原文地址: https://ju.6miu.com/read-1617.html

    最新回复(0)