一、下载补丁集
在这里下载的:http://apollo.solusoft.com/win/rdbms/92/
二、安装前的准备
1.在数据库服务器上以Administrator身份登录到Windows
2.停止所有Oracle相关的服务。这些服务名称通常是以Oracle打头
3.停止Distributed Transaction Coordinator服务
4.备份与Oracle数据库相关的所有文件(包括Oracle数据库软件及数据文件),把这些文件按原有的目录结构复制到安全的地方,并做好标记或记录
三、安装
1.将Oracle 9i补丁集p3948480_9206_WINNT.zip解压到某个临时目录,运行<补丁集所在路径>Disk1\setup.exe
2.在“欢迎”窗体上点击“下一步”
3.在“指定文件位置”窗体上,源路径默认为<补丁集所在路径>Disk1stageproducts.xml。该值通常不需要改变
4.在“指定文件位置”窗体上,点击“目标”的“名称”一栏的下拉按钮,在下拉菜单中选择需要安装补丁的Oracle主目录名称,同时记录“路径”里列出的路径名,在安装后的善后工作中会用到。然后点击“下一步”
5.在“概要”窗体上列举出了所有即将安装补丁,注意检查是否有某些内容被标记为红色(例如磁盘空间是否足够)。确认无误后点击“安装”
6.安装程序执行安装工作,直至出现“安装结束”窗体。在“安装结束”窗体上点击“退出”
注意:如果安装过程中出现带乱码的提示框,需要重新启动Windows,再重新进行“安装前的准备”、“安装”……
四、安装后的善后工作
1.检查表空间长度及设置参数值
1.1启动数据库,并以SYS用户登录
1.1.1.启动数据库实例服务。该服务名称通常为OracleServiceSID。其中SID是实例名称
1.1.2.启动监听器服务。该服务名称通常为OracleOraHomeTNSListener。其中OraHome是Oracle主目录名称
1.1.3.运行SQL Plus,并以SYS身份登录
C:>sqlplus /nolog
SQL>connect sys/password(根据实际情况修改密码)as sysdba
其中password是SYS用户的密码
1.2检查SYSTEM表空间长度。如果安装的数据库软件中包括了JServer组件,则必须保证SYSTEM表空间有至少10M的可用空间
1.2.1.在SQL>提示符下输入如下命令:
select tablespace_name, sum(bytes)/(1024*1024) as free_space
from dba_free_space
where tablespace_name = 'SYSTEM'
group by tablespace_name;
FREE_SPACE列出了SYSTEM表空间的可用空间,以兆为单位。如果该值小于10,则需要加大SYSTEM表空间的容量;否则以下的步骤无需执行了
12.2.在SQL>提示符下输入如下命令:
select file_name, round(bytes/(1024*1024),0) total_space
from dba_data_files
where tablespace_name = 'SYSTEM';
结果中列出来了属于SYSTEM表空间的数据文件名及这些文件的大小,文件大小以兆为单位列在TOTAL_SPACE列
1.2.3.在SQL>提示符下输入如下命令:
alter database datafile 'data_filename' resize new_size;
该命令用以扩展指定的数据文件的大小,相应地也就扩展了SYSTEM表空间的容量
如果在第2步骤中列出的文件有多个,我们选择其中一个即可,只要该文件所在的磁盘有足够的剩余空间。使用其中一个文件名替换命令中的data_filename(注意要包含完整的路径,并且单引号要保留),并用新的容量替换new_size。新容量可以用如下公式计算:
新容量≥原容量+(10-SYSTEM表空间的可用空间)
注意:新容量可以指定单位,K表示千,而M表示兆。如150K,150M
1.3.设置SHARED_POOL_SIZE参数。本来Oracle建议还要调整JAVA_POOL_SIZE的,但如果没有使用太多Java应用,该参数可不调整
1.3.1.检查SHARED_POOL_SIZE的大小。在SQL>提示符下输入如下命令:
SHOW PARAMETER SHARED_POOL_SIZE;
在VALUE列给出了相应参数的大小,注意该数值是以字节计算的。参考的两个参数取值如下表:
物理内存容量(M) SHARED_POOL_SIZE(M)
512 50
1024 100
2048 150
如果该参数的取值小于以上建议值,则应该把它加大到建议值;否则以下的步骤无需执行了
1.3.2.检查系统是使用初始化参数文件还是系统参数文件。在SQL>提示符下输入如下命令:
SHOW PARAMETER PFILE;
如果在VALUE列中包括INIT字样,则表明系统使用的是初始化参数文件;若包括SPFILE字样,则表明系统使用的是系统参数文件
1.3.3.若系统使用的是初始化参数文件,则需要notepad或其它纯文本编辑器编辑该文件,将以上参数的值增加到建议值
1.3.4.若系统使用的是系统参数文件,则在SQL>提示符下输入如下命令:
ALTER SYSTEM SET SHARED_POOL_SIZE='new_size' SCOPE=spfile;
其中new_size是建议的取值
1.4关闭数据库。在SQL>提示符下执行如下命令:
SHUTDOWN
2.升级数据库
2.1在SQL>提示符下输入如下命令,也可以手工执行catpatch.sql:
STARTUP MIGRATE
SPOOL c:patch.log
@OraHomer\dbmsadmin\catpatch.sql
SPOOL OFF
注意:OraHome是安装补丁时指定的Oracle主目录的路径。执行catpatch.sql是个很耗时的过程
2.2检查c:patch.log是否有错,并检查执行catpatch.sql时显示的组件列表及其版本、状态。
如果有必要,重新运行catpatch.sql,或者把错误报告给开发部,以便确认发生错误的原因和解决办法
2.3重新启动数据库。在SQL>提示符下输入如下命令:
SHUTDOWN
STARTUP
2.4运行utlrp.sql以重新编译所有无效的PL/SQL程序包。在SQL>提示符下输入如下命令:
@OraHomerdbmsadminutlrp.sql
3.重新启动Distributed Transaction Coordinator服务
4.备份数据库文件
注:我在设置oracle_home这里弄了一些时间(目录要和以前的一致,连oracle_home名字都要一样),不然会提示找不到补丁集什么的好象.后面就参考上面的文档就好了.花了我一个早上的时间,>_<,但是下次就有经验了.
升级完成后可以通过以下语句查看:
SQL> select * from V$version;