Oracle 从10.2.0.1升级到10.2.0.5

    xiaoxiao2021-03-25  269

    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)