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漏洞,给兄弟们看一下
环境描述
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@db8 tmp]$ unzip p8202632_10205_Linux-x86-64.zip
2、查看安装补丁情况
[oracle@db8 ]$ cd $ORACLE_HOME/OPatch/
[oracle@db8 OPatch]$ ./opatch lsinventory
3、检查数据库的时区版本
SQL>select version from v$timezone_file;
4、关闭所有Oracle服务里程
关闭OEM
[oracle@db8 ~]$ emctl stop dbconsole
关闭isqlplus应用服务器
[oracle@db8 ~]$ isqlplusctl stop
关闭监听
[oracle@db8 ~]$ lsnrctl stop
关闭实例
5、进行数据备份
此处我使用的是冷备份,这样保险一些。热备份需要数据库正常运行,难免会有占用。
Oracle相关的全部配置都位于$ORACLE_BASE目录
[oracle@db8 ~]$ tar -zcvPf `date +%F`_oracle.tar.gz $ORACLE_BASE
查看生成的备份文件
创建备份目录
[oracle@db8 ~]$ mkdir ora_backup
备份:日志文件、数据文件、控制文件
[oracle@db8 ~]$ cp $ORACLE_BASE/oradata/$ORACLE_SID/* ora_backup/
备份:参数文件
[oracle@db8 ~]$ cp $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora ora_backup
6、确认显示终端
换成oracle用户,登录图形化界面操作系统
升级Oracle
1、升级Oracle软件
解压安装介质
[oracle@db8 tmp]$ unzip p8202632_10205_Linux-x86-64.zip
解压后文件详情
[oracle@db8 tmp]$ cd Disk1/
[oracle@db8 Disk1]$ ll
解压后生成Disk1目录,里面patch_note.htm 有详细的升级补丁的介绍,建议升级补丁前,应该好好看看patch_note.htm,里面介绍了Oracle Database、Oracle Real Application Clusters、Oracle Database Client、Oracle Database Vault等各类情况升级。
oracle用户图形化安装
欢迎界面
从环境变量中自动识别oracle_home目录
不接收Oracle的安全更新(大部分兄弟都没有oracle帐号)
升级操作之前检查依赖条件
汇总信息
开始安装升级
换成root用户操作
换回oracle用户图形界面操作
手工升级oracle数据库
1、升级数据库字典
[oracle@db8 ~]$ sqlplus / as sysdba
SQL> STARTUP UPGRADE
SQL> @?/rdbms/admin/catupgrd.sql
中间内容较多,此处省略.................
由于catupgrd.sql重建过程中,可能造成一些对象失效,需要运行utlrp.sql,重新编译PL/SQL packages。
2、编译无译对象
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sql
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;
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;
使用OPatch安装小补丁
1、关闭所有Oracle服务里程
关闭OEM
[oracle@db8 ~]$ emctl stop dbconsole
关闭isqlplus应用服务器
[oracle@db8 ~]$ isqlplusctl stop
关闭监听
[oracle@db8 ~]$ lsnrctl stop
关闭实例
2、使用OPatch安装小补丁
解压安装介质
[oracle@db8 tmp]$ unzip p20299014_10205_Linux-x86-64.zip
解压后文件详情
[oracle@db8 tmp]$ cd 20299014/
[oracle@db8 20299014]$ ll
解压后生成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
从报错指示中可以看出,OPatch现有的这个工具版本过低,要对它进行升级到10.2.0.5.0
3、升级OPatch工具
备份现有的OPatch目录
[oracle@db8 ~]$ mv $ORACLE_HOME/OPatch/ $ORACLE_HOME/OPatch.bak
解压高版本OPatch工具到ORACLE_HOME
[oracle@db8 ~]$ unzip /tmp/p6880880_102000_Linux-x86-64.zip -d $ORACLE_HOME/
检查OPatch工具版本
[oracle@db8 ~]$ $ORACLE_HOME/OPatch/opatch version
4、使用OPatch安装小补丁
运行opath apply应用补丁
[oracle@db8 ~]$ cd /tmp/20299014/
[oracle@db8 20299014]$ $ORACLE_HOME/OPatch/opatch apply
提示输入邮件,直接回车,跳过即可
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: 输入Y
Is the local system ready for patching? [y|n] 输入y
随后会刷屏如下,内容过多,只截取一部分
最后提示成功
升级后的操作
1、查看升级状态
[oracle@db8 20299014]$ $ORACLE_HOME/OPatch/opatch lsinv
[oracle@db8 ]$ $ORACLE_HOME/OPatch/opatch lsinv -bugs_fixed|grep SPU
2、升级数据库字典
[oracle@db8 ]$ cd $ORACLE_HOME/rdbms/admin
[oracle@db8 admin]$ sqlplus / as sysdba
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> @utlrp.sql
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;
4、修改兼容性参数
SQL> show parameter compatible;
SQL> alter system set compatible=10.2.0.5.0 scope=spfile;
5、重新启动数据库
SQL> shutdown immediate;
SQL> STARTUP
6、检查数据库的时区版本
7、查看数据库当前状态
SQL> select open_mode from v$database;
至此,我们本次文章的主要内容:Oracle10.2.0.1升级10.2.0.5.19就全操作完成了。
扩展、DBUA升级Oracle数据库
升级oracle数据库方式较多,较常用的有2种方式:DBUA升级、手工升级。上面我演示了手工升级,下面这部分是DBUA升级。DBUA操作是 图型化界面的,它操作简单,但据统计其出错机率相对而言较高。
oracle用户图形化安装
欢迎界面
选择数据库
如果你要操作的数据库不在列表中,手工修改/etc/oratab添加sid
升级不要移动数据文件到新目录
升级完成后编译无效对象
备份数据
如果在操作之前没有备份数据库,可以在此选择备份(dbua执行的是冷备份,需要估计好磁盘剩余空间。
不用指定闪回区
升级汇总信息
剩下的,就是等着就行了。升级完毕之后,验证一下升级的结果,千万不可以懒惰!
结束语
到此本篇文章就结束了,送给那些:
1、准备学习Oracle的朋友们
2、已经学习了Oracle,但是没有在Linux环境下安装成功oracle的朋友们
3、对Oracle感兴趣、对Linux感兴趣的朋友们
4、Oracle刚入门的朋友们
有一段时间没有写关于Oracle的博文了,感谢一直关注我的新老朋友,有你们的支持我会一起写下去!
以上是关于oracle拨云见日第7篇之Oracle10.2.0.1升级10.2.0.5.19的主要内容,如果未能解决你的问题,请参考以下文章