How to Convert a 32bit Database to 64bit Database on Linux
来源:互联网 发布:马士兵java教程下载 编辑:程序博客网 时间:2024/05/22 05:22
APPLIES TO:
Oracle Database - Enterprise Edition - Version 9.2.0.1 to 11.2.0.2 [Release 9.2 to 11.2]Oracle Database - Standard Edition - Version 10.2.0.1 to 10.2.0.1 [Release 10.2]
Linux x86-64
Linux x86
***Checked for relevance on 29-Jun-2015***
GOAL
Steps to change the wordsize of an Oracle9i Release 2 (9.2), Oracle10g or Oracle11g single instance database from Linux x86 to Linux x86-64
This document provides details for changing word size from 32bit to 64bit in same release .For example, if you have the 32-bit version of Oracle release 9.2.0.4 and you want to switch to the 64-bit version of Oracle release 9.2.0.4, then you must complete this below procedure. This document is a "cut/paste" of applicable sections from the Oracle9i Release Notes Release 2 (9.2.0.4) for Linux x86-64 (B13848-02), to quickly provide the needed details and steps to change the word-size.
* For Redhat Red Hat Enterprise Linux AS/ES 3 . Other please check Metalink>Certify section to know certified version.
Note:
If you are changing wordsize for Oracle release10.1.x/10.2.x/11.1/11.2 32-Bit to 64-bit with OLAP enabled for DB
Please refer the documents:
Note 352306.1 Upgrading OLAP from 32 to 64 bits
Note 332351.1 How To Remove or To Reinstall the OLAP Option
Otherwise there could be some issues of ORA-07445 as mentioned in the later part of this document
SOLUTION
Use the following procedure to change wordsize of an Oracle9i Release 2 (9.2) or Oracle10g (10.1 & 10.2) or 11g single instance database from Linux x86 to Linux x86-64 in same release:
1. Perform cold backups of the existing Oracle9i or Oracle10g (10.1.x & 10.2.x) or 11g database on the Linux x86 system to protect against any failures during the wordsize change.
2. NOTE:This steps is required if the target system has different directory structure for database files. Otherwise this step can be skipped.
To help with creating the control file after the wordsize change, enter the following SQL command:
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
This command saves the control file information to a trace file in the UDUMP directory (Type show parameter USER_DUMP_DEST in SQLPLUS as sys/system user). The control file information is similar to the following:
CREATE CONTROLFILE REUSE DATABASE "SAMPLE" NORESETLOGS
NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 32
MAXINSTANCES 1
MAXLOGHISTORY 112
LOGFILE
GROUP1 '/ia32lnx_path/oracle/dbs/t_log1.f' SIZE 25M,
GROUP2 '/ia32lnx_path/oracle/dbs/t_log2.f' SIZE 25M
DATAFILE '/ia32lnx_path/oracle/dbs/t_DB1.F'
CHARACTER SET WE8DEC;
3. In a new Oracle home, install the 64-Bit release of Oracle9i Release 2 (9.2.x) , Oracle10.1.x, Oracle 10.2.x, Oracle 11.1.x, 11.2.x software for Linux x86-64. It is recommended to use the same version on as on the 32-Bit box.
4. Perform a clean database shutdown for Oracle-32 Bit database
5. Copy the database files from Linux-x86 to the Linux x86-64 system.
6. Copy your existing Oracle initialization parameter file (initsid.ora) to the new Oracle home.
7. Edit the parameter file to point to the controlfiles if the location has change from the source machine.
8. Change any Oracle home path references to use the new Oracle home path on the Linux x86-64 system. Like user_dump_dest , background_dump_dest , core_dump_dest etc
9. NOTE:This steps is required if the target system has different directory structure for database files which causes controlfile recreation Otherwise this step can be skipped.
Start up the database using SQL commands similar to the following
Example:
SQL> STARTUP NOMOUNT;
CREATE CONTROLFILE REUSE DATABASE "SAMPLE" NORESETLOGS
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 32
MAXINSTANCES 1
MAXLOGHISTORY 112
LOGFILE
GROUP 1 '/lnx_x86-64_path/oracle/dbs/t_log1.f' size 25M,
GROUP 2 '/lnx_x86-64_path/oracle/dbs/t_log2.f' size 25M
DATAFILE '/lnx_x86-64_path/oracle/dbs/t_db1.f'
CHARACTER SET WE8DEC
ALTER DATABASE OPEN
Note: In the previous example, the path values will vary depending on your system.
10.To change the word size of your release, enter the following command:
If you are migrating an Oracle9i 9.2.0.x database, run STARTUP MIGRATE:
SQL> STARTUP MIGRATE
If you are migrating an Oracle10g or 11g database, run STARTUP UPGRADE:
SQL> STARTUP UPGRADE
In 11g onwards
To complete the conversion, you must manually perform the following post-upgrade tasks:
* Increase initialization parameters affecting the system global area, such as SGA_TARGET and SHARED_POOL_SIZE, to support 64-bit operations.
* Reconnect after starting up the database so that a new session is created with the appropriate 64-bit initialization. For example:
CONNECT AS SYSDBA
STARTUP UPGRADE
CONNECT AS SYSDBA
SPOOL UPGRADE.LOG
@catupgrd.sql
Refer: http://docs.oracle.com/cd/E11882_01/server.112/e10819/intro.htm#i1008703
11.Recompile existing PL/SQL modules in the format required by the 64-bit Oracle Database:
SQL> SPOOL mig32-64.log;
SQL> @$ORACLE_HOME/rdbms/admin/utlirp.sql
SQL> SPOOL OFF;
Check the spool file and verify that the packages and procedures compiled successfully. Correct any problems you find in this file.
Handling instructions for JVM during upgrade
When migrating a database from 32 to 64bit (or vice versa) additional actionsare required for java. In theory the format of java shared data objects (SRO)is not compatible between 32 and 64 bit and so these objects need to be droppedand regenerated. In practice it may be the case prior to release 11 suchobjects could interoperate but if so this would only be by chance and shouldnot be relied on.The steps to do the regeneration are as follows. They may take several minutes to complete. They must be done connected as SYS.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 a max number 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/
Oracle recommends that you run the utlrp.sql script after running the utlirp.sql script. The utlrp.sql script recompiles all PL/SQL modules that might be in an invalid state, including packages, procedures, and types. This is optional but Oracle recommends that you do it during installation and not at a later date. To run the utlrp.sql script, enter the following command:
SQL> shutdown immediate;
SQL> startup (use appropriate command; outlined above, depending on your version)
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
Note:If you are changing wordsize for Oracle release10.1.x/10.2.x/11.1/11.2 32-Bit to 64-bit with OLAP enabled for DB then you may likely to see the error
On Console:
<>ORA-06544: PL/SQL: internal error, arguments: [56319], [], [], [], [], [], [], []<>
On alert.log:
ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] <>
Or
ORA-07445: exception encountered: core dump [__intel_new_memcpy()+2132] [SIGSEGV]
(on 11g)
Or
ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] < style="font-family: arial unicode ms;"> ( Run the Following query to check OLAP component installed
SELECT COMP_NAME, STATUS FROM DBA_REGISTRY WHERE COMP_NAME LIKE ‘%OLAP%’)
Please refer the document to solve this issue
Note: 352306.1 Upgrading OLAP from 32 to 64 bits
Note: 332351.1 How To Remove or To Reinstall the OLAP Option
Note: At this point, the natively compiled Java objects in the new[wordsize changed] database are invalid. Refer to the section "Steps to Update Natively Compiled Java Objects in the Database" for the procedure to revalidate these objects.
12.Perform a clean shutdown of the database.
13.Perform a complete backup of the new 64-bit Oracle9i Release 2 (9.2) or Oracle10gr1 /10gr2/11gR1 database
Steps to Update Natively Compiled Java Objects in the Database
To use natively compiled Java objects for Linux x86-64, use the following procedure to update compiled Java objects in the database:
i. Connect to the database as user SYS or SYSTEM as SYSDBA [ You may get error ORA-1031 while running following command if you are not connected as SYSDBA]
ii. Enter the following command:
iii. SQL> CREATE OR REPLACE JAVA SYSTEM;
/
iiii. It may be necessary to recompile the Java objects with ncomp:
i.e. % ncomp -user scott/tiger Hello.class
Oracle9i Java Developer's Guide
Release 2 (9.2)
Part Number A96656-01
http://docs.oracle.com/cd/B10501_01/java.920/a96656/perf.htm
- How to Convert a 32-bit Database to 64-bit Database on Linux (remove olap)
- How to Convert a 32bit Database to 64bit Database on Linux
- convert a 32-bit database to 64-bit
- Oracle Convert a 32-bit Database to 64-bit Database(32位 转到 64位)说明
- Oracle Convert a 32-bit Database to 64-bit Database(32位 转到 64位)说明
- How to Install MySQL 5.1 Database on A Linux Server
- How to Configure DG4MSQL (Oracle Database Gateway for MS SQL Server) 64bit Unix OS (Linux, Solaris,
- How to Configure DG4MSQL (Oracle Database Gateway for MS SQL Server) 64bit Unix OS
- How to point to 32 bit IBM DB2 ODBC driver on 64-bit Microsoft system?
- How to Quiesce a Database
- How to Setup A Database
- How to convert CSV into Database Table?
- svn : how to set the executable bit on a file?
- How to run 32 bit .NET Windows apps on 64 bit Windows (including with IEExec)
- Linux安装Oracle报错You are attempting to install 64-bit Oracle on a 32-bit operating system. This
- How to tell if your Intel-based Mac has a 32-bit or 64-bit processor
- How to justify if a windows program is 32 bit or 64 bit
- How to create a logical standby database based on a physical standby database
- Cygwin编译GDB需要的库/Package
- 我的企业版本WIN10快捷键
- EAN-13条码算法
- C#/mono开发Android应用程序入门(一)-(配置Mono for Android环境)(转)
- Imac查看软件的安装目录
- How to Convert a 32bit Database to 64bit Database on Linux
- 设计模式(内容是我从书上总结下来的,分享给大家)
- mysql 中 MyISAM和InnoDB 对比
- 建议135: 考虑使用肯定性的短语命名布尔属性
- iOS基础1
- 风电机组状态监测系统(CMS)
- 管理状态栏和导航栏
- 移动端上传照片 预览(解决iOS等设备照片旋转90度的bug)
- Android7.0 Binder通信(3) 客户进程查询和使用服务进程