开发者社区> 科技小先锋> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

2月12日 LINUX ORACLE10.2.0.4小版本升级详细记录

简介:
+关注继续查看

1. 准备工作

1.1.  介质准备

一、下载介质

p6810189_10204_Linux-x86-64.zip

 

二、上传并解压介质

unzip p6810189_10204_Linux-x86-64.zip

实例:

[root@L-DB-128-36 patch]# cd /home/oracle/patch

[root@L-DB-128-36 patch]# ls -lt |grep 10204

-rw-r--r-- 1 oracle oinstall 1195551830 02-12 15:09 p6810189_10204_Linux-x86-64.zip

 

1.2.  备份

一、软件备份

$ cd /home/oracle/product

$ tar cvf /u01/bak/softbak/product_201102.tar 10.2.0

实例:

 [root@L-DB-128-36 product]# tar cvf /u01/bak/softbak/product_201102.tar 10.2.0

10.2.0/

10.2.0/db_1/

10.2.0/db_1/sqlj/

10.2.0/db_1/sqlj/lib/

10.2.0/db_1/sqlj/lib/runtime12.jar

……

 

二、数据备份

1、 逻辑备份

停止wms\ chicago相关应用,在备份服务器上exp备份数据后关闭数据库

exp WMS/***@IDC_172.16.3.5 file=h:\dbback\oracle\data\WMS%date:~11,14%.dmp log=h:\dbback\oracle\log\WMS%date:~0,10%.log  owner=WMS compress=n buffer=8092

exp chicago/***@IDC_172.16.3.5 file=h:\dbback\oracle\data\chicago%date:~11,14%.dmp log=h:\dbback\oracle\log\chicago%date:~0,10%.log  owner=chicago compress=n buffer=8092

 

2、物理备份

rman>backup database format '/u01/bak/rman/shport_full_backup_%P_%T';

实例:

RMAN> backup database format '/u01/bak/rman/shport_full_backup_%P_%T';

Starting backup at 2011-02-12 23:42:49

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=522 devtype=DISK

channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

input datafile fno=00001 name=+DGROUP1/shport/datafile/system.256.732734315

input datafile fno=00003

……

 

备份oracle数据库软件

$ cd /home/oracle/product

$ tar cvf /u01/bak/softbak/product_201102.tar 10.2.0

备份数据库                                                        

rman>backup format '/u01/bak/rman/shport_full_backup_%P_%T';

检查升级前无效对象

SQL> select owner,object_name,subobject_name,object_type,status from dba_objects where status<>'VALID'

 

第二步, 关闭数据库

emctl stop dbconsole

isqlplusctl stop

lsnrctl stop

shutdown immediate;

检查是否有进程使用oracle的相关库或程序

$ps -ef | grep ora

 

第三步,解压p6810189_10204_Linux-x86-64.zip,安装补丁包

unzip p6810189_10204_Linux-x86-64.zip

 

 

2. 实施

2.1.  环境检查

一、检查升级前无效对象

SQL> select owner,object_name,subobject_name,object_type,status from dba_objects where status<>'VALID'

 

2.2.  停数据库相关进程

一、停进程

1emctl stop dbconsole

2、  isqlplusctl stop

3、  lsnrctl stop

4、  shutdown immediate;

 

二、检查是否有进程使用oracle的相关库或程序

1$ps -ef | grep oracle

2KILL -9 杀掉可能影响的进程(别把自己的SSHKILL掉)

注:$fuser 指定目录是官方推荐的用法,但实际实施过程中有时候不管用

 

2.3.  升级

一、图形界面准备

确保用户能打开图形界面,可用root用户运行 
export DISPLAY=IP:0.0 
xhost + 
如果出现界面乱码现象,执行命令:export LANG=en

 

二、执行runInstaller

oracle用户执行Disk1下的runInstaller
./runInstaller 
注:

1、  将安装包改成用户为oracle用户所有,之前已是就不用改了
chown -R oracle:dba   
解压目录/Disk1

runInstaller时可能报子目录oui权限错误,原因一般为其他进程在用目录或权限问题 
解决方法:把该软件包全部改成可执行chown -R 755 oracle:ointsll Disk1

          也可能需要KILL掉相应进程。

 

2出现图形界面后和windows上一样,选择oracle_home只有一个数据库的话默认即可。
完了最后会让你以root用户运行一个root.sh的脚本,该脚本会提示是否覆盖已存在的目录,默认为否即可。

 

三、以upgrade方式打开数据库

Startup upgrade;

 

sys用户登录,检查system表空间情况:
select tablespace_name, sum(bytes)/(1024*1024) as free_space 
     from dba_free_space 
     where tablespace_name = 'SYSTEM' 
     group by tablespace_name; 
如果该值小于50,则需要加大SYSTEM表空间;不建议使用resize方式而是使用添加文件的方式。
alter tablespace system add datafile '/opt/app/oradata/orcl/system02.dbf'size 300m;

 

四、设置SHARED_POOL_SIZE and JAVA_POOL_SIZE初始化参数

SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile;

SQL> ALTER SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile;

注:检查shared_pool_sizejava_pool_size大小,可适当增大(我们这里都设置成了150M,默认是0)。否则更新脚本因pool空间不够而无法升级成功。
如果启用自动sga管理,保证sga_max_sizesga_target400M以上,如果是ASM系统则JAVA_POOL_SIZE不能设置。

 

五、执行升级脚本

       SQL> STARTUP UPGRADE

SQL> SPOOL patch.log

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

SQL> SPOOL OFF

注:

执行catupgrd.sql是个很耗时的过程。内存足够的话运行时间半个小时左右

检查 /opt/app/patch.log是否有报错如果有错误可以重新执行该脚本

 

六、编译无效对象

SQL> SHUTDOWN IMMEDIATE

SQL> STARTUP

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

注:运行utlrp.sql以重新编译所有无效的PL/SQL程序包

正常运行结果:

ERRORS DURING RECOMPILATION

---------------------------

                          0

 

七、检查无效对象,必须无,至少比升级前要少

SQL> select owner,object_name,subobject_name,object_type,status from dba_objects where status<>'VALID'

       实例:36数据库升级前30个无效对象,升级后0个无效对象

 

2.4.  升级后确认

一、升级结束,启动数据库及相关服务

emctl start dbconsol

isqlplusctl start

    start

    sqlplus / as sysdba

 

二、检查版本

select comp_name,version from dba_registry;

全是10.2.0.4.0,升级成功

 

三、连接检查

       SQLPLUS

    应用连接检查

 

 


本文转自zylhsy 51CTO博客,原文链接:http://blog.51cto.com/yunlongzheng/493942,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
LINUX下安装ORACLE,完全搞定
参考文档: http://www.tuicool.com/articles/eE3mmy http://blog.chinaunix.net/uid-11209572-id-3599052.html
625 0
Linux 下安装 oracle, 转载两篇文章
Linux 下安装 oracle, 转载两篇文章 2007-03-17 16:42 按照以下两篇文章安装出问题时,请参考我的另一篇文章《LINUX下安装ORALCLE完全手册》http://hi.
822 0
6963
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载