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

    应用连接检查

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值