一:环境说明
源库:
操作系统: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;
关闭数据库
(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博客 ” ,链接:http://blog.itpub.net/26655292/viewspace-743758/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26655292/viewspace-743758/