oracle11g 32bit 升级至64bit

因为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

/

时间: 2024-10-08 02:29:40

oracle11g 32bit 升级至64bit的相关文章

[转载]Memory Limits for 32-bit and 64-bit processes

During our recent blog chat, there were a number of topics that were asked about and I am going to expand on some of them.  The first one is the memory limits for different processes. This really depends on a few different things.  The architecture o

MySQL-python 1.2.3 for Windows and Python 2.7, 32bit and 64bit versions -(亲测可用)

MySQL-python 1.2.3 for Windows and Python 2.7, 32bit and 64bit versions - See more at: http://www.codegood.com/archives/129#sthash.dc3d3aib.dpuf http://www.codegood.com/archives/129 http://www.codegood.com/archives/4 MySQL-python 1.2.3 for Windows an

Linux Kernel sys_call_table、Kernel Symbols Export Table Generation Principle、Difference Between System Calls Entrance In 32bit、64bit Linux(undone)

目录 1. sys_call_table:系统调用表 2. 内核符号导出表.kallsyms_lookup_name 3. Linux 32bit.64bit下系统调用入口的异同 1. sys_call_table:系统调用表 Relevant Link: 2. 内核符号导出表.kallsyms_lookup_name Relevant Link: 3. Linux 32bit.64bit下系统调用入口的异同 以sys_execve.sys_socketcall.sys_init_module这

vs2008 + qt4.8(both in win7 32bit and 64bit)

目前预计的可视化开发环境为: vs2008(sp1) + QT4.8 建立于windows7.64bit系统; 使用的qt插件与qt均为32位版本: 1.安装步骤 第一步:安装VS2008(我使用的是90天试用版,需要打sp1补丁!!,请自行下载安装!). 第二步:去QT官方网站http://qt-project.org/downloads下载2个软件.1,下载安装VS2008编译过的QT库4.8:http://download.qt-project.org/official_releases/

How to Check if Linux (Ubuntu, Fedora Redhat, CentOS) is 32-bit or 64-bit

The number of CPU instruction sets has kept growing, and likewise for the operating systems which are able to run and support on more than one CPU system architecture. For example, a Linux OS such as Ubuntu, Fedora, Redhat, Linux Mint, Debian, Arch L

Android APK 在32bit 和64bit 的区别问题

目前64bit android系统也慢慢的多了,看到也有apk声称支持64bit system,然后就往里面打包搞了个arm64-v8a 目录,放了个64bit的so,但是apk代码里面却不按规范去load so ,导致一系列 file not found 异常. apk lib目录: 先看下apk中的lib打包的目录: 依次代表不同类型的cpu PMS安装路径://blog.csdn.net/sergeycao pms install 流程比较繁杂,只关注so相关的scanPackageDir

Windows 操作系统(不管32bit还是64bit)是不支持oracle db的 db_32k_cache_size参数的。

如下: F:\oracle\product\10.2.0\db_1\BIN>sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Tue May 19 09:03:23 2015 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0

[工作积累] 32bit to 64bit: array index underflow

先贴一段C++标准(ISO/IEC 14882:2003): 5.2.1 Subscripting: 1 A postfix expression followed by an expression in square brackets is a postfix expression. One of theexpressions shall have the type “pointer to T” and the other shall have enumeration or integral

如何在Window 64bit系统上面区分此应用程序是32bit还是64bit的呢?

为了保持向下兼容性,大都数32位的应用程序都能运行在64位的window操作系统上.大都数情况下,我们不必担心,但是有的时候,我们需要确切的知道当前的应用程序到底是32位的应用程序呢,还是64位的应用程序呢?一般来说,有下面的3种方法: (1) 使用任务管理器识别 如下图,打开任务管理器,并选择Processes的选项卡,32位的程序,其图像名字(Image Name)会包含*32这个关键字. 比如,第一个 chrome.exe*32,这个就代表当前的chrome浏览器应用程序的版本是32位的.