CPU(critical patch update)
升级:
1.下载相应的patch,将patch拷贝到数据库服务器相应的目录中并解压
2.关闭数据库服务和监听,进入到解压的包的路径下,通过图形化界面对数据库软件进行升级
3.升级完数据库软件之后对数据库文件的数据字典进行更新
1.以startup upgrade的方式打开数据库
2.运行@?/rdbms/admin/catupgrd.sql
3.shutdown数据库以正常方式打开数据库,重新编译失效对象@?/rdbms/admin/utlrp.sql
4.试运行已经升级过的数据库看是否会发生错误
如果出现错误,则可以通过startup downgrade后运行@?/rdbms/admin/catdwgrd.sql(10.2版)进行回退
如果没有出现错误,则要修改参数compatible的值(这个参数值一旦修改就无法再次更改,因此,修改需要慎之又慎)
PSU(patch set update)
1.PSU的升级需要一个oracle自带的一个OPatch的工具,并且OPatch的版本必须必要升级的PSU的版本要高才能够实现升级操作,如果oracle自带的OPatch版本不够,可以去官网下载高版本的OPatch。
2.进入到解压后的Patch目录下,运行命令/../OPatch/opatch apply,根据提示输入相应的提示即可。
3.以上为对数据库软件进行的升级,还要对数据库库文件的数据字典进行升级
1.以startup方式启动数据库
2.运行脚本@?/rdbms/admin/catbundle.sql psu apply
3.编译无效对象@?/rdbms/admin/utlrp.sql
4.重新编译CPU相关视图(如果是PSU可略过此步骤),该步骤在数据库上永远只需要执行一次,是为了完成在2008年1月份第一次发布CPU补丁时的后续工作,如果在安装以前的PSU或者CPU时执行过这个步骤那么就可以无需再次执行,另外,即使不执行该步骤,数据库也是正常运行的,只不过意味着2008年1月份的CPU补丁没有正常结束安装。
代码如下:
SQL>select * from registry$history where ID='6452863';
上面这条语句用于判断是否已经执行过,如果有行数返回,说明已经执行过,可跳过该步骤;如果没有行数返回,则可根据以下步骤重新编译CPU/PSU相关视图:
代码如下:
sqlplus / as sysdba
SQL>@?/cpu/view/recompile/recompile_precheck_jan2008cpu.sql
SQL>shutdown immediate
SQL>startup upgrade
SQL>@?/cpu/view/recompile/view_recompile_jan2008cpu.sql
SQL>shutdown;
SQL>startup;
SQL>quit
5.事后检查
spool post_check.log
SQL>select instance_name,status from v$instance;
SQL>select comp_id,comp_name,version,status from dba_registry;
SQL>select action_time,action,comments from dba_registry_history;
SQL>select owner,object_name,object_type,status from dba_objects where status<>'VALID';
SQL>select count(*) from dba_objects where status<>'VALID';
SQL>spool off;
1.下载相应的patch,将patch拷贝到数据库服务器相应的目录中并解压
2.关闭数据库服务和监听,进入到解压的包的路径下,通过图形化界面对数据库软件进行升级
3.升级完数据库软件之后对数据库文件的数据字典进行更新
1.以startup upgrade的方式打开数据库
2.运行@?/rdbms/admin/catupgrd.sql
3.shutdown数据库以正常方式打开数据库,重新编译失效对象@?/rdbms/admin/utlrp.sql
4.试运行已经升级过的数据库看是否会发生错误
如果出现错误,则可以通过startup downgrade后运行@?/rdbms/admin/catdwgrd.sql(10.2版)进行回退
如果没有出现错误,则要修改参数compatible的值(这个参数值一旦修改就无法再次更改,因此,修改需要慎之又慎)
PSU(patch set update)
1.PSU的升级需要一个oracle自带的一个OPatch的工具,并且OPatch的版本必须必要升级的PSU的版本要高才能够实现升级操作,如果oracle自带的OPatch版本不够,可以去官网下载高版本的OPatch。
2.进入到解压后的Patch目录下,运行命令/../OPatch/opatch apply,根据提示输入相应的提示即可。
3.以上为对数据库软件进行的升级,还要对数据库库文件的数据字典进行升级
1.以startup方式启动数据库
2.运行脚本@?/rdbms/admin/catbundle.sql psu apply
3.编译无效对象@?/rdbms/admin/utlrp.sql
4.重新编译CPU相关视图(如果是PSU可略过此步骤),该步骤在数据库上永远只需要执行一次,是为了完成在2008年1月份第一次发布CPU补丁时的后续工作,如果在安装以前的PSU或者CPU时执行过这个步骤那么就可以无需再次执行,另外,即使不执行该步骤,数据库也是正常运行的,只不过意味着2008年1月份的CPU补丁没有正常结束安装。
代码如下:
SQL>select * from registry$history where ID='6452863';
上面这条语句用于判断是否已经执行过,如果有行数返回,说明已经执行过,可跳过该步骤;如果没有行数返回,则可根据以下步骤重新编译CPU/PSU相关视图:
代码如下:
sqlplus / as sysdba
SQL>@?/cpu/view/recompile/recompile_precheck_jan2008cpu.sql
SQL>shutdown immediate
SQL>startup upgrade
SQL>@?/cpu/view/recompile/view_recompile_jan2008cpu.sql
SQL>shutdown;
SQL>startup;
SQL>quit
5.事后检查
spool post_check.log
SQL>select instance_name,status from v$instance;
SQL>select comp_id,comp_name,version,status from dba_registry;
SQL>select action_time,action,comments from dba_registry_history;
SQL>select owner,object_name,object_type,status from dba_objects where status<>'VALID';
SQL>select count(*) from dba_objects where status<>'VALID';
SQL>spool off;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29802484/viewspace-1453752/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29802484/viewspace-1453752/