设为首页 收藏本站
查看: 326|回复: 0

[经验分享] oracle11g 32bit 升级至64bit

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-19 08:50:27 | 显示全部楼层 |阅读模式
  因为32bit数据库内存的限制,导致其很难突破4G内存,迫使需要对数据库进行升级到64bit。
升级步骤:
    1、关闭数据库,并对数据库进行冷备(copy数据文件、控制文件、spfile等)、可直接备份ORACLE_BASE目录。

    2、卸载原有32bit数据库软件(删除/etc/oraInst.loc、/etc/oratab即可)。

    3、安装64bit同版本数据库,并建库,关闭数据库。

    4、将32bit版本的数据文件、控制文件、spfile、、listener.ora、tnsnames.ora考备到64bit下对应的目录。

    5、启动数据库(startup upgrade)。

    6、重新编译64位的PL/SQL模块。
1
    @$ORACLE_HOME/rdbms/admin/utlirp.sql



    这里执行完以后,会多出很多无效的对象,需要重新编译,同时如果安装了OLAP组件的话,需要重新安装OLAP组件,否者跳过下面这一步。

    7、重新安装OLAP组件

    7.1、删除OLAP组件

1
2
3
    cd $ORACLE_HOME/rdbms/lib
    make -f ins_rdbms.mk olap_off
    make -f ins_rdbms.mk ioracle



    7.2、安装OLAP

1
2
3
4
    sqlplus /as sysdba
    SQL> spool add_olap.log
    SQL> @?/olap/admin/olap.sql SYSAUX TEMP;
    SQL> spool off



    8、编译无效对象
1
2
3
4
    sqlplus /as sysdba
    SQL> spool utlrp.log
    SQL> @?/rdbms/admin/utlrp.sql
    SQL> spool off



    9、重建 javashared data objects (SRO)
    10、重复第8步,编译无效对象
    11、验证是否存在无效的对象和组件。

1
2
    SQL> select OWNER,OBJECT_NAME,OBJECT_TYPE from all_objects where status='INVALID';
    SQL> select comp_id,comp_name,version,status from dba_registry;





附:重建 javashared data objects  sql语句
begin
  update obj$ set status=5 where obj#=(select obj# from obj$,javasnm$
    where owner#=0 and type#=29 and short(+)=name and
   nvl(longdbcs,name)='oracle/aurora/rdbms/Compiler');
  commit;
  declare
    cursor C1 is select
       'DROP JAVA DATA "' || u.name||'"."'|| o.name || '"'
       from obj$ o,user$ u where o.type#=56 and u.user#=o.owner#;
      ddl_statement varchar2(200);
    iterations number;
    previous_iterations number;
    loop_count number;
    my_err     number;
  begin
    previous_iterations := 10000000;
    loop
      -- To make sure we eventually stop,pick amaxnumber of iterations
      select count(*) into iterations from obj$ where type#=56;
      exit when iterations=0 or iterations>=previous_iterations;
      previous_iterations := iterations;
      loop_count := 0;
      open C1;
      loop
        begin
          fetch C1 into ddl_statement;
          exit when C1%NOTFOUND or loop_count > iterations;
        exception when others then
           my_err := sqlcode;
           if my_err =-1555 then --snapshot too old, re-execute fetch query
             exit;
           else
             raise;
           end if;
        end;
        initjvmaux.exec(ddl_statement);
        loop_count := loop_count + 1;
      end loop;
      close C1;
    end loop;
  end;
  commit;
  initjvmaux.drp('delete from java$policy$shared$table');
  update obj$ set status=1 where obj#=(select obj# from obj$,javasnm$
    where owner#=0 and type#=29 and short(+)=name and
   nvl(longdbcs,name)='oracle/aurora/rdbms/Compiler');
  commit;
end;
/

create or replace java system
/



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-68361-1-1.html 上篇帖子: Oracle 11g不能导出空表的多种解决方法 下篇帖子: Oracle Study之--OEM登录错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表