ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数据库迁移:LINUX-32到LINUX-64(10.2.0.4)

数据库迁移:LINUX-32到LINUX-64(10.2.0.4)

原创 Linux操作系统 作者:q418441117 时间:2012-09-17 13:18:42 0 删除 编辑

一:环境说明

源库:

操作系统:LINUX 32位

数据库:ORACLE 10.2.0.4.0  32位

 

目标库:

操作系统:LINUX 64位

数据库:ORACLE 10.2.0.4.0  64位

 

二:操作说明

使用RMAN跨平台传输

导出:

1.       startup open read only;

2.       检查是否支持跨平台的转换

Set serveroutput on;

Declare

Db_ready Boolean;

Begin

Db_ready:=dbms_tdb.check_db('Linux x86 64-bit',2);

If(db_ready) then

Dbms_output.put_line('support');

Else

Dbms_output.put_line('nosupport');

End if;

End;

3.       检查是否存在外部对象

Declare

External Boolean;

Begin

External:=dbms_tdb.check_external;

End;

4.       在RMAN中执行整库转换

Convert  database new database ‘MICSREGR’    --(在此设定实例名MICSREGR)

Transport script. ‘/u02/app/oracle/oradata/MICSREGR/rmandata/tsconv.sql’

To platform. ‘Linux x86 64-bit’

Db_file_name_convert ‘/u02/app/oracle/oradata/MICSREGR/’  ‘/u02/RMAN/a’;

注意报如下错误:/u02/app/oracle/oradata/MICSREGR/必须要加/,否则会报OMF错误。

/u02/RMAN/a必须要加a,用来和源库的OMF文件区分。

ORA-01276: Cannot add file /u02/app/oracle/oradata/MICSREGR/rmandata /o1_mf_system_4c720cx5_.dbf.  File has an Oracle Managed Files file name.

5.       将数据库设置为read write

Startup open read write;

导入:

1.       导入前准备

将导出的数据文件复制到目标库对应的路径。

并创建adump,bdump,cdump,udump文件

mkdir adump bdump cdump udump

2.  export ORACLE_SID=MICSREGR

3.  startup nomount pfile=’/u02/app/oracle/oradata/MICSREGR/rmandata/MICSREGR.ora’;

4.  创建控制文件(导出脚本中有),注意每个路劲

5.  alter database open resetlogs;

6.  ALTER TABLESPACE TEMP ADD TEMPFILE SIZE 2494M AUTOEXTEND ON NEXT 10485760  MAXSIZE 2500M; 

7.       编译对象,先关闭数据库,然后以升级模式重新启动

Shutdown immediate

Startup upgrade pfile=’/u02/app/oracle/oradata/MICSREGR/rmandata/MICSREGR.ora’;

@@ ?/rdbms/admin/utlirp.sql

8.       编译数据库中无效对象

Shutdown immediate;

Startup pfile=’/u02/app/oracle/oradata/MICSREGR/rmandata/MICSREGR.ora’;

@@ ?/rdbms/admin/utlrp.sql

在执行脚本过程中,会报03113错误

DECLARE
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel

再次编译@@ ?/rdbms/admin/utlrp.sql

Session异常中断,在alter log和trace里都有ORA-7445错误

Errors in file /u02/app/oracle/admin/MICSREGR/bdump/micsregr_j000_29490.trc:
ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] [Address not mapped to object] [0x2AB297D771CF] [] []

   导致这个问题,是因为我们启动了OLAP,在32位转到64位时就会遇到这种错误。

9.       处理OLAP问题

(1)       删除组件

@?/olap/admin/catnoamd.sql

@?/olap/admin/olapidrp.plb

@?/olap/admin/catnoxoq.sql

@?/olap/admin/catnoaps.sql

@?/olap/admin/cwm2drop.sql ---此脚本在11G的版本中用,在10G是不需要的。

@?/rdbms/admin/utlrp.sql

drop public synonym OlapFactView;

drop public synonym OlapDimView;

drop public synonym DBMS_ODM;

关闭数据库

(2)       添加OLAP组件

利用DBCA工具。

因为恢复的实例在DBCA中是看不到的,所以要做一些修改,修改如下:/etc/oratab

添加MICSREGR:/u01/app/oracle/product/10.2.0/db_1:N

然后在图形化下启动DBCA, 选择 configure database option--------next--------next----------选择OLAP(SYSAUX) ----next ------finish

           待重建完毕后,可再次查看无效对象:

select count(*) from all_objects where status='INVALID';

10.    Create spfile from pfile

11.    处理外部对象,如directory

12.    创建密码文件

orapwd file=$ORACLE_HOME/dbs/orapwMICSREGR password=oracle entries=5;

13.    配置监听

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26655292/viewspace-743758/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-09-11

  • 博文量
    203
  • 访问量
    471952