Oracle11.2.0.3升级至11.2.0.4

一、安装图形界面
yum search tiger   #搜索安装vnc服务器
yum grouplist   #显示可用group列表
yum -y groupinstall desktop
二、升级grid
  1. 图形界面升级grid,在启动安装软件后第二步installation option选择“Upgrade Oracle Grid Infrastructure or Oracle Automatic Storage Management”。第七步installation location的software location选择新建的11.2.0.4的GI目录/oracle/grid/11.2.0.4
  2. 修改grid用户下的.bash_profile文件,将ORACLE_HOME环境变量修改为新的ORACLE_HOME
三、db升级前准备
  1. 将11.2.0.4的db软件安装至新目录,注意是安装软件,不是升级
  2. 收集字典信息
exec DBMS_STATS.GATHER_FIXED_OBJECTS_STATS();
exec DBMS_STATS.GATHER_DICTIONARY_STATS(ESTIMATE_PERCENT=>100,METHOD_OPT=>'FOR ALL COLUMNS SIZE AUTO',DEGREE=>8,GRANULARITY=>'AUTO',CASCADE=>TRUE,OPTIONS=>'GATHER AUTO'); 
  1. 11.2.0.3数据库pre-upgrade 脚本检查
SQL> SPOOL upgrade_info.log
SQL> @$11204_ORACLE_HOME/rdbms/admin/utlu112i.sql(新的oracle home下的脚本)
SQL> SPOOL OFF
  1. 一些数据库信息查询
-- 1. 物化视图刷新完成
SELECT *
FROM   sys.obj$ o,
       sys.user$ u,
       sys.sum$ s
WHERE  o.type# = 42
       AND Bitand(s.mflags, 8) = 8;
-- 2. 无待恢复文件
SELECT *
FROM   v$recover_file;
-- 3. 无备份状态文件
SELECT *
FROM   v$backup
WHERE  status != 'NOT ACTIVE';
--4. 未完成分布式事务
SELECT *
FROM   dba_2pc_pending;
-- 若有输出
SELECT local_tran_id
FROM   dba_2pc_pending;
EXECUTE dbms_transaction.purge_lost_db_entry('&local_tran_id');
commit;
  1. 清除并关闭recyclebin
PURGE dba_recyclebin;
Alter system set recyclebin=off;
  1. 修改cluster_database参数
Alter system set CLUSTER_DATABASE=false scope=spfile;
四、手工升级db
  1. 停库
shutdown immediate
  1. 检查环境变量
    检查ORACLE_SID,ORACLE_HOME,PATH等环境变量是否设置为新库
  2. copy11.2.0.3数据库参数文件和密码文件至11.2.0.4数据库,执行升级
SQL> Startup upgrade
SQL> SPOOL upgrade.log
SQL>@$ORACLE_HOME/rdbms/admin/catupgrd.sql
  1. 重新启动数据库,执行其他步骤
Startup
-- 查询升级信息
@$ORACLE_HOME/rdbms/admin/utlu112s.sql
-- 执行其他升级步骤
@$ORACLE_HOME/rdbms/admin/catuppst.sql
-- 编译失效对象
Alter system set job_queue_processes=60;
@?/rdbms/admin/utlrp.sql
五、升级后步骤
  1. 设置相关参数
 Alter system set COMPATIBLE='11.2.0.4' scope=spfile;
 Alter system set CLUSTER_DATABASE=true scope=spfile; --单节点不要设置此参数
 Shutdown immediate
 Startup
  1. 执行psu post
@?/rdbms/admin/catbundle.sql psu apply
  1. 收集全库统计信息
begin
  dbms_stats.gather_database_stats(estimate_percent => dbms_stats.auto_sample_size,
                                   degree           => 8,
                                   method_opt       => 'for all columns size auto',
                                   cascade          => True);
end;
/
exit;
六、问题总结
  1. 如果是非RAC环境升级,升级后不要设置CLUSTER_DATABASE=true
  2. 检查监听服务是否都正确拉起来了
#检查命令
crsctl status resource -t
#如果有资源未拉起,执行以下步骤
srvctl upgrade database -d db_name -o $ORACLE_HOME
shutdown immediate
startup
  1. 单节点升级后有未注册组件
--查询代码
SET linesize 200

SELECT *
FROM   dba_registry
WHERE  status <> 'VALID';

若以上查询代码有输出,执行以下步骤

1. shell中执行
cd $ORACLE_HOME/bin
./adapters ./oracle
2. 进数据库编译失效对象
@?/rdbms/admin/utlrp.sql
3. 编译数据库程序文件
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk rac_on ioracle
  1. 升级备库
    先升级GI,然后安装db程序,db程序安装好后停11.2.0.3的库,以
startup upgrade

方式打开11.2.0.4数据库,应用11.2.0.3的归档日志,11.2.0.3的归档日志应用完毕后,应用11.2.0.4归档日志会报错,此时,执行

 Alter system set COMPATIBLE='11.2.0.4' scope=spfile;

重启数据库,即可正常应用11.2.0.4的归档日志

你可能感兴趣的:(Oracle11.2.0.3升级至11.2.0.4)