您的位置:首页 > 数据库 > Oracle

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

2011-02-14 16:37 381 查看

1. 准备工作

1.1. 介质准备

一、下载介质[/b]
p6810189_10204_Linux-x86-64.zip
[/b]
二、上传并解压介质[/b]
unzip p6810189_10204_Linux-x86-64.zip
实例:[/b][/b]
[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. 备份

一、[/b]软件备份[/b]
$ cd /home/oracle/product
$ tar cvf /u01/bak/softbak/product_201102.tar 10.2.0
实例:[/b]
[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
……

二、[/b]数据备份[/b]
1、 [/b]逻辑备份[/b]
停止[/b]wms\ chicago[/b]相关应用,在备份服务器上[/b]exp[/b]备份数据后关闭数据库[/b][/b]
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[/b]、物理备份[/b][/b]
rman>backup database format '/u01/bak/rman/shport_full_backup_%P_%T';
实例:[/b]
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
……

备份[/b]oracle[/b]数据库软件[/b][/b]
$ cd /home/oracle/product
$ tar cvf /u01/bak/softbak/product_201102.tar 10.2.0
备份数据库[/b] [/b]
rman>backup format '/u01/bak/rman/shport_full_backup_%P_%T';
检查升级前无效对象[/b][/b]
SQL> select owner,object_name,subobject_name,object_type,status from dba_objects where status<>'VALID'
[/b]
第二步,[/b] [/b]关闭数据库[/b][/b]
emctl stop dbconsole
isqlplusctl stop
lsnrctl stop
shutdown immediate;
检查是否有进程使用[/b]oracle[/b]的相关库或程序[/b][/b]
$ps -ef | grep ora
[/b]
第三步,解压[/b]p6810189_10204_Linux-x86-64.zip[/b],安装补丁包[/b][/b]
unzip p6810189_10204_Linux-x86-64.zip

2. 实施

2.1. 环境检查

一、检查升级前无效对象[/b][/b]
SQL> select owner,object_name,subobject_name,object_type,status from dba_objects where status<>'VALID'

2.2. 停数据库相关进程

一、[/b]停进程[/b]
1、emctl stop dbconsole
2、 isqlplusctl stop
3、 lsnrctl stop
4、 shutdown immediate;

二、[/b]检查是否有进程使用[/b]oracle[/b]的相关库或程序[/b][/b]
1、$ps -ef | grep oracle
2、KILL -9 杀掉可能影响的进程(别把自己的SSH给KILL掉)
注:$fuser 指定目录是官方推荐的用法,但实际实施过程中有时候不管用

2.3. 升级

一、[/b]图形界面准备[/b]
确保用户能打开图形界面,可用root用户运行

export DISPLAY=IP:0.0

xhost +

如果出现界面乱码现象,执行命令:export LANG=en[/b]

二、[/b]执行[/b]runInstaller[/b]
以oracle用户执行Disk1下的runInstaller

./runInstaller

注:[/b]
1、 将安装包改成用户为oracle用户所有,之前已是就不用改了.

chown -R oracle:dba 解压目录/Disk1
在runInstaller时可能报子目录oui权限错误,原因一般为其他进程在用目录或权限问题

解决方法:[/b]把该软件包全部改成可执行chown -R 755 oracle:ointsll Disk1
也可能需要KILL掉相应进程。

2[/b]、[/b]出现图形界面后和windows上一样,选择oracle_home只有一个数据库的话默认即可。

完了最后会让你以root用户运行一个root.sh的脚本,该脚本会提示是否覆盖已存在的目录,默认为否即可。

三、以upgrade[/b]方式打开数据库[/b]
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;

四、设置[/b]SHARED_POOL_SIZE and JAVA_POOL_SIZE[/b]初始化参数[/b][/b]
SQL> ALTER SYSTEM SET SHARED_POOL_SIZE='150M' SCOPE=spfile;
SQL> ALTER SYSTEM SET JAVA_POOL_SIZE='150M' SCOPE=spfile;
注:[/b]检查shared_pool_size和java_pool_size大小,可适当增大(我们这里都设置成了150M,默认是0)。否则更新脚本因pool空间不够而无法升级成功。

如果启用自动sga管理,保证sga_max_size和sga_target在400M以上,如果是ASM系统则JAVA_POOL_SIZE不能设置。[/b]
[/b]
五、[/b]执行升级脚本[/b][/b]
[/b]SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF
注:[/b]
执行catupgrd.sql[/b]是个很耗时的过程。内存足够的话运行时间半个小时左右[/b][/b]
检查 /opt/app/patch.log[/b]是否有报错[/b],如果有错误可以重新执行该脚本[/b][/b]

六、[/b]编译无效对象[/b]
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sql
注:运行utlrp.sql[/b]以重新编译所有无效的PL/SQL[/b]程序包[/b]
正常运行结果:[/b][/b]
ERRORS DURING RECOMPILATION[/b]
---------------------------[/b]
0[/b]
[/b]
七、检查无效对象,必须无,至少比升级前要少[/b][/b]
SQL> select owner,object_name,subobject_name,object_type,status from dba_objects where status<>'VALID'
[/b]实例:[/b]36[/b]数据库升级前[/b]30[/b]个无效对象,升级后[/b]0[/b]个无效对象[/b][/b]

2.4. 升级后确认

一、[/b]升级结束,启动数据库及相关服务[/b]
emctl start dbconsol
isqlplusctl start
start
sqlplus / as sysdba
[/b]
二、检查版本[/b][/b]
select comp_name,version from dba_registry;
全是[/b]10.2.0.4.0[/b],升级成功[/b][/b]
[/b]
三、连接检查[/b][/b]
SQLPLUS[/b]
[/b]应用连接检查[/b][/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息