oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19

Posted 飞哥大数据

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19相关的知识,希望对你有一定的参考价值。

引言

前面的几篇文章中,我们讲解的都是一些Oracle基本操作内容。今天我们来讲解一下Oracle的高级部分:Oracle升级。

为什么要升级

1、新特性

oracle很少升级,除非你要用什么新的功能。因为升级要停库,好多和库相关的组件可能全要升级。也会影响公司的业务,所以升级前一定要开会研究很长时间。

2、提升安全

联通一些大公司定期委托第三方公司做《系统安全防护评测》,扫描出一些漏洞时,会要求升级并打补丁(我怎么知道?因为我在联通当过DBA啊!!)

系统安全防护评测

很多兄弟应该没看过《系统安全防护评测》结果报告,此报告中有好多内容!!由于保密原因,我就截取《系统安全防护评测》中的一个oracle漏洞,给兄弟们看一下

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级

环境描述

1、操作系统

rhel-server-5.5-x86_64

2、现在已有Oracle版本

Oracle 10.2.0.1.0

3、升级之后Oracle版本

Oracle 10.2.0.5.19

准备工作

1、上传并解压补丁包

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_02

[oracle@db8 tmp]$ unzip p8202632_10205_Linux-x86-64.zip

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_03

2、查看安装补丁情况

[oracle@db8 ]$ cd $ORACLE_HOME/OPatch/

[oracle@db8 OPatch]$ ./opatch lsinventory

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_04

3、检查数据库的时区版本

SQL>select version from v$timezone_file;

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_05

4、关闭所有Oracle服务里程

关闭OEM

[oracle@db8 ~]$ emctl stop dbconsole

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_06

关闭isqlplus应用服务器

[oracle@db8 ~]$ isqlplusctl stop

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_07

关闭监听

[oracle@db8 ~]$ lsnrctl stop

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_08

关闭实例

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_09

5、进行数据备份

此处我使用的是冷备份,这样保险一些。热备份需要数据库正常运行,难免会有占用。

Oracle相关的全部配置都位于$ORACLE_BASE目录

[oracle@db8 ~]$ tar -zcvPf `date +%F`_oracle.tar.gz  $ORACLE_BASE

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_10

查看生成的备份文件

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_11

创建备份目录

[oracle@db8 ~]$ mkdir ora_backup

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_12

备份:日志文件、数据文件、控制文件

[oracle@db8 ~]$ cp $ORACLE_BASE/oradata/$ORACLE_SID/*  ora_backup/

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_13

备份:参数文件

[oracle@db8 ~]$ cp $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora ora_backup

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_14

6、确认显示终端  

换成oracle用户,登录图形化界面操作系统

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_15

升级Oracle

1、升级Oracle软件

解压安装介质

[oracle@db8 tmp]$ unzip p8202632_10205_Linux-x86-64.zip

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_16

解压后文件详情

[oracle@db8 tmp]$ cd Disk1/

[oracle@db8 Disk1]$ ll

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_17

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

oracle用户图形化安装

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_18

欢迎界面

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_19

从环境变量中自动识别oracle_home目录

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_20

不接收Oracle的安全更新(大部分兄弟都没有oracle帐号)

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_21

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_22

升级操作之前检查依赖条件

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_23

汇总信息

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_24

开始安装升级

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_25

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_26

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_27

换成root用户操作

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_28

换回oracle用户图形界面操作

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_29

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_30

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_31

手工升级oracle数据库

1、升级数据库字典

[oracle@db8 ~]$ sqlplus / as sysdba

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_32

SQL> STARTUP UPGRADE

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_33

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

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_34

中间内容较多,此处省略.................

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_35

由于catupgrd.sql重建过程中,可能造成一些对象失效,需要运行utlrp.sql,重新编译PL/SQL packages。

2、编译无译对象

SQL> SHUTDOWN IMMEDIATE 

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_36

SQL> STARTUP

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_37

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

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_38

3、升级后检查

SQL>set line 200  

SQL>col ACTION_TIME for a30    

SQL>col ACTION for a20    

SQL>col NAMESPACE for a10    

SQL>col VERSION for a10    

SQL>col BUNDLE_SERIES for a5    

SQL>col COMMENTS for a25    

SQL>select * from dba_registry_history; 

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_39

4、查看组件有效性

SQL> COL COMP_NAME FOR A50

SQL> COL VERSION FOR A12

SQL> COL STATUS FOR A12

SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_40

使用OPatch安装小补丁

1、关闭所有Oracle服务里程

关闭OEM

[oracle@db8 ~]$ emctl stop dbconsole

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_06

关闭isqlplus应用服务器

[oracle@db8 ~]$ isqlplusctl stop

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_07

关闭监听

[oracle@db8 ~]$ lsnrctl stop

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_08

关闭实例

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_09

2、使用OPatch安装小补丁

解压安装介质

[oracle@db8 tmp]$ unzip  p20299014_10205_Linux-x86-64.zip

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_45解压后文件详情

[oracle@db8 tmp]$ cd 20299014/

[oracle@db8 20299014]$ ll

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_46

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

运行opath apply应用补丁

[oracle@db8 ~]$ cd /tmp/20299014/

[oracle@db8 20299014]$ $ORACLE_HOME/OPatch/opatch apply

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_47

从报错指示中可以看出,OPatch现有的这个工具版本过低,要对它进行升级到10.2.0.5.0

3、升级OPatch工具

备份现有的OPatch目录

[oracle@db8 ~]$ mv $ORACLE_HOME/OPatch/ $ORACLE_HOME/OPatch.bak

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_48

解压高版本OPatch工具到ORACLE_HOME

[oracle@db8 ~]$ unzip /tmp/p6880880_102000_Linux-x86-64.zip -d $ORACLE_HOME/

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_49

检查OPatch工具版本

[oracle@db8 ~]$ $ORACLE_HOME/OPatch/opatch version

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_50

4、使用OPatch安装小补丁

运行opath apply应用补丁

[oracle@db8 ~]$ cd /tmp/20299014/

[oracle@db8 20299014]$ $ORACLE_HOME/OPatch/opatch apply

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_51

提示输入邮件,直接回车,跳过即可

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_52

Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: 输入Y

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_53

Is the local system ready for patching? [y|n] 输入y

随后会刷屏如下,内容过多,只截取一部分

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_54

最后提示成功

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_55

升级后的操作

1、查看升级状态

[oracle@db8 20299014]$ $ORACLE_HOME/OPatch/opatch lsinv

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_56

[oracle@db8 ]$ $ORACLE_HOME/OPatch/opatch lsinv -bugs_fixed|grep SPU

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_57

2、升级数据库字典

[oracle@db8 ]$ cd $ORACLE_HOME/rdbms/admin

[oracle@db8 admin]$ sqlplus / as sysdba

SQL> STARTUP 

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_58

SQL> @catbundle.sql psu apply

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_59

SQL> @utlrp.sql

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_60

3、升级后检查

SQL> set line 200  

SQL> col ACTION_TIME for a30    

SQL> col ACTION for a20    

SQL> col NAMESPACE for a10    

SQL> col VERSION for a20    

SQL> col BUNDLE_SERIES for a5    

SQL> col COMMENTS for a25    

SQL> select * from dba_registry_history;

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_61

4、修改兼容性参数

SQL> show parameter compatible;

SQL> alter system set compatible=10.2.0.5.0 scope=spfile;

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_62

5、重新启动数据库

SQL> shutdown immediate;

SQL> STARTUP

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_63

6、检查数据库的时区版本

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_64

7、查看数据库当前状态

SQL> select open_mode from v$database;

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_65

至此,我们本次文章的主要内容:Oracle10.2.0.1升级10.2.0.5.19就全操作完成了。

扩展、DBUA升级Oracle数据库

升级oracle数据库方式较多,较常用的有2种方式:DBUA升级、手工升级。上面我演示了手工升级,下面这部分是DBUA升级。DBUA操作是 图型化界面的,它操作简单,但据统计其出错机率相对而言较高。

oracle用户图形化安装

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_66

欢迎界面

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_67

选择数据库

如果你要操作的数据库不在列表中,手工修改/etc/oratab添加sid

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_68

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_69

升级不要移动数据文件到新目录

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_手工升级_70

升级完成后编译无效对象

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_dbua_71

备份数据

如果在操作之前没有备份数据库,可以在此选择备份(dbua执行的是冷备份,需要估计好磁盘剩余空间。

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_数据库_72

不用指定闪回区

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_73

升级汇总信息

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_opatch_74

oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19_oracle_75

剩下的,就是等着就行了。升级完毕之后,验证一下升级的结果,千万不可以懒惰!

结束语

到此本篇文章就结束了,送给那些:

      1、准备学习Oracle的朋友们

      2、已经学习了Oracle,但是没有在Linux环境下安装成功oracle的朋友们

      3、对Oracle感兴趣、对Linux感兴趣的朋友们

      4、Oracle刚入门的朋友们

   有一段时间没有写关于Oracle的博文了,感谢一直关注我的新老朋友,有你们的支持我会一起写下去!

以上是关于oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19的主要内容,如果未能解决你的问题,请参考以下文章

oracle拨云见日第8篇之Oracle11.2.0.1.0升级11.2.0.4.3

oracle拨云见日第6篇之网络配置

oracle拨云见日第5篇之静默安装11g

oracle拨云见日第2篇之脚本安装10g

oracle拨云见日第4篇之脚本安装11g

9.24-9.30博客精彩回顾