码迷,mamicode.com
首页 > 数据库 > 详细

oracle11g 32bit 升级至64bit

时间:2015-05-18 21:08:55      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:oracle32bit   升级   

   因为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模块。

    @$ORACLE_HOME/rdbms/admin/utlirp.sql

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

    7、重新安装OLAP组件

    7.1、删除OLAP组件

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

    7.2、安装OLAP

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

    8、编译无效对象

    sqlplus /as sysdba
    SQL> spool utlrp.log
    SQL> @?/rdbms/admin/utlrp.sql
    SQL> spool off

    9、重建 javashared data objects (SRO)

    10、重复第8步,编译无效对象

    11、验证是否存在无效的对象和组件。

    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

/


本文出自 “composer” 博客,请务必保留此出处http://zuoqujia.blog.51cto.com/9151800/1652306

oracle11g 32bit 升级至64bit

标签:oracle32bit   升级   

原文地址:http://zuoqujia.blog.51cto.com/9151800/1652306

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!