RMAN-convert database夸平台迁移

利用 RMAN Convert database 特性进行跨平台迁移数据

在 Oracle10g 中,不仅可以利用跨平台传输表空间的新特性在异构平台数据库之间迁移数据,在特定条件下,还
可以利用 Convert database 特性进行整个数据库跨平台的迁移。
如果要在 10G 中进行全库跨平台的迁移,那么只能在低位和低位或者高位和高位平台之间
进行迁移,无法进行高位与低位平台的迁移。大家可以参考 V$TRANSPORTABLE_PLATFORM
中的信息以决定是否能够迁移。
SQL> select * from V$TRANSPORTABLE_PLATFORM order by 3;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ---------------------------------------- --------------
4 HP-UX IA (64-bit) Big
1 Solaris[tm] OE (32-bit) Big
16 Apple Mac OS Big
3 HP-UX (64-bit) Big
9 IBM zSeries Based Linux Big
6 AIX-Based Systems (64-bit) Big
2 Solaris[tm] OE (64-bit) Big
18 IBM Power Based Linux Big
17 Solaris Operating System (x86) Little
12 Microsoft Windows 64-bit for AMD Little
13 Linux 64-bit for AMD Little
8 Microsoft Windows IA (64-bit) Little
15 HP Open VMS Little
5 HP Tru64 UNIX Little
10 Linux IA (32-bit) Little
7 Microsoft Windows IA (32-bit) Little
11 Linux IA (64-bit) Little、



Convert database 具体如下特性:
1、 只能传输数据表空间的数据文件。临时表空间将不会被传输,如果临时表空间是本地管
理的话,那么传输数据库完成后将会自动在目标数据库创建临时表空间。
2、 假如源主数据库使用 PFILE,那么 PFILE 也会被传输。如果源数据库使用的是 SPFILE,那
么将会自动产生一个 PFILE 进行传输,并在目标数据库生成 SPFILE。
3、 控制文件和联机日志文件将不会被传输。在目标数据库 open resetlogs 的过程中,将会
自动创建控制文件和联机日志文件。
4、 BFILE、外部表和 directory 将不会被传输。RMAN 检查的时候将会把这些对象列出,用
户可以手工创建这些对象。
5、 密码文件将不会被传输,用户必须在目标数据库手工创建密码文件。



传输数据库的第一步是将源数据库置于 READ ONLY 模式:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size 1262044 bytes
Variable Size 385879588 bytes
Database Buffers 1207959552 bytes
Redo Buffers 15511552 bytes
Database mounted.
SQL> alter database open read only;
Database altered.



第二步利用 dbms_tdb 包检查数据库能否被传输以及列出外部表和 DIRECTORY 等无法传输的
对象信息(测试案例采用 Linux 迁移至 Windows 平台):

SQL> set serveroutput on
SQL> declare
2 db_ready boolean;
3 begin
4 /* db_ready is ignored, but with SERVEROUTPUT set to ON any
5 * conditions preventing transport will be output to console */
6 db_ready := dbms_tdb.check_db('Microsoft Windows IA (32-bit)',
7 dbms_tdb.skip_none);
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> declare
2 external boolean;
3 begin
4 /* value of external is ignored, but with SERVEROUTPUT set to ON
5 * dbms_tdb.check_external displays report of external objects
6 * on console */
7 external := dbms_tdb.check_external;
8 end;
9
10 /
The following external tables exist in the database:
SH.SALES_TRANSACTIONS_EXT
The following directories exist in the database:
SYS.DATA_PUMP_DIR, SYS.SUBDIR, SYS.XMLDIR, SYS.MEDIA_DIR, SYS.LOG_FILE_DIR,
SYS.DATA_FILE_DIR, SYS.WORK_DIR, SYS.ADMIN_DIR
The following BFILEs exist in the database:
PM.PRINT_MEDIA
PL/SQL procedure successfully completed.



环境检查完毕后就可以利用 RMAN 的 convert database 命令在源数据库进行转换(convert
database 也可以在目标数据库进行,具体可以参考文档):

SQL> host rman target /
Recovery Manager: Release 10.2.0.3.0 - Production on Thu Jun 28 15:23:16 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: DBTEST (DBID=1018019231)
RMAN> CONVERT DATABASE NEW DATABASE 'newdb'
2> transport script '/home/oracle/liuyun/transportdb.sql'
3> to platform 'Microsoft Windows IA (32-bit)'
4> db_file_name_convert '/opt/oracle/oradata/dbtest/' '/home/oracle/liuyun/';

Starting convert at 28-JUN-07
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=153 devtype=DISK
External table SH.SALES_TRANSACTIONS_EXT found in the database
Directory SYS.DATA_PUMP_DIR found in the database
Directory SYS.SUBDIR found in the database
Directory SYS.XMLDIR found in the database
Directory SYS.MEDIA_DIR found in the database
Directory SYS.LOG_FILE_DIR found in the database
Directory SYS.DATA_FILE_DIR found in the database
Directory SYS.WORK_DIR found in the database
Directory SYS.ADMIN_DIR found in the database
BFILE PM.PRINT_MEDIA found in the database
User SYS with SYSDBA and SYSOPER privilege found in password file
channel ORA_DISK_1: starting datafile conversion
input datafile fno=00001 name=/opt/oracle/oradata/dbtest/system01.dbf
converted datafile=/home/oracle/liuyun/system01.dbf
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:55
channel ORA_DISK_1: starting datafile conversion
input datafile fno=00003 name=/opt/oracle/oradata/dbtest/sysaux01.dbf
converted datafile=/home/oracle/liuyun/sysaux01.dbf
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:45
channel ORA_DISK_1: starting datafile conversion
input datafile fno=00005 name=/opt/oracle/oradata/dbtest/example01.dbf
converted datafile=/home/oracle/liuyun/example01.dbf
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile conversion
input datafile fno=00002 name=/opt/oracle/oradata/dbtest/undotbs01.dbf
converted datafile=/home/oracle/liuyun/undotbs01.dbf
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile conversion
input datafile fno=00004 name=/opt/oracle/oradata/dbtest/users01.dbf
converted datafile=/home/oracle/liuyun/users01.dbf
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01
Run SQL script /home/oracle/liuyun/transportdb.sql on the target platform to create database
Edit init.ora file /opt/oracle/product/10.2/dbs/init_00ildsr9_1_0.ora. This PFILE will be used to
create the database on the target platform
To recompile all PL/SQL modules, run utlirp.sql and utlrp.sql on the target platform
To change the internal database identifier, use DBNEWID Utility
Finished backup at 28-JUN-07
在这一步中 new database 表示目标数据库的名字,transport script 指定生成建库脚本的位置,
to platform 表示目标数据库的平台,db_file_name_convert 指定源数据库数据文件所在的位
置 以 及 转 换 后 数 据 文 件 存 放 的 目 录 。 生 成 的 PFILE 为
/opt/oracle/product/10.2/dbs/init_00ildsr9_1_0.ora,可以根据目标数据库的情况编辑,编辑
后的内容如下:
newdb.__db_cache_size=12582912
newdb.__java_pool_size=4194304
newdb.__large_pool_size=4194304
newdb.__shared_pool_size=58720256
newdb.__streams_pool_size=0
*.audit_file_dest='D:\oracle\admin\newdb\adump'
*.background_dump_dest='D:\oracle\admin\newdb\bdump'
*.compatible='10.2.0.1.0'
*.control_files='D:\oracle\oradata\newdb\control01.ctl'
*.core_dump_dest='D:\oracle\admin\newdb\cdump'
*.db_block_size=8192
*.db_file_multiblock_read_count=16
*.db_name='newdb'
*.db_recovery_file_dest_size=1
*.db_recovery_file_dest=''
*.dispatchers='(PROTOCOL=TCP) (SERVICE=newdbXDB)'
*.job_queue_processes=10
*.log_archive_dest_1='location=d:\oracle\oradata\newdb\archive'
*.log_archive_dest_2='service=standby'
*.log_archive_dest_state_2='DEFER'
*.nls_language='AMERICAN'
*.nls_territory='UNITED KINGDOM'
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.query_rewrite_integrity='STALE_TOLERATED'
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=80M
*.star_transformation_enabled='FALSE'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='D:\oracle\admin\newdb\udump'
生成的 transportdb.sql 内容如下,可以根据目标数据库的情况更改:
STARTUP NOMOUNT PFILE='/opt/oracle/product/10.2/dbs/init_00ildsr9_1_0.ora'
CREATE CONTROLFILE REUSE SET DATABASE "NEWDB" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP  1
'/opt/oracle/product/10.2/dbs/arch_D-NEWDB_id-1018019231_S-47_T-1_A-625156386_00ildsr9
' SIZE 50M,
GROUP  2
'/opt/oracle/product/10.2/dbs/arch_D-NEWDB_id-1018019231_S-45_T-1_A-625156386_00ildsr9
' SIZE 50M,
GROUP  3
'/opt/oracle/product/10.2/dbs/arch_D-NEWDB_id-1018019231_S-46_T-1_A-625156386_00ildsr9
' SIZE 50M
DATAFILE
'/home/oracle/liuyunsystem01.dbf',
'/home/oracle/liuyunundotbs01.dbf',
'/home/oracle/liuyunsysaux01.dbf',
'/home/oracle/liuyunusers01.dbf',
'/home/oracle/liuyunexample01.dbf'
CHARACTER SET ZHS16GBK;
-- Database can now be opened zeroing the online logs.
ALTER DATABASE OPEN RESETLOGS;
ALTER  TABLESPACE  TEMP  ADD  TEMPFILE
'/opt/oracle/product/10.2/dbs/data_D-NEWDB_I-1018019231_TS-TEMP_FNO-1_00ildsr9'
SIZE 20971520 AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
SHUTDOWN IMMEDIATE
STARTUP UPGRADE PFILE='/opt/oracle/product/10.2/dbs/init_00ildsr9_1_0.ora'
@@ ?/rdbms/admin/utlirp.sql
SHUTDOWN IMMEDIATE
STARTUP PFILE='/opt/oracle/product/10.2/dbs/init_00ildsr9_1_0.ora'
-- The following step will recompile all PL/SQL modules.
-- It may take serveral hours to complete.
@@ ?/rdbms/admin/utlrp.sql
set feedback 6;
更改后的脚本内容如下:
STARTUP NOMOUNT PFILE='d:\init.ora'
CREATE CONTROLFILE REUSE SET DATABASE "NEWDB" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'd:\oracle\oradata\newdb\redo01.log' SIZE 5M,
GROUP 2 'd:\oracle\oradata\newdb\redo02.log' SIZE 5M
DATAFILE
'd:\oracle\oradata\newdb\system01.dbf',
'd:\oracle\oradata\newdb\undotbs01.dbf',
'd:\oracle\oradata\newdb\sysaux01.dbf',
'd:\oracle\oradata\newdb\users01.dbf',
'd:\oracle\oradata\newdb\example01.dbf'
CHARACTER SET ZHS16GBK;
ALTER DATABASE OPEN RESETLOGS;
ALTER TABLESPACE TEMP ADD TEMPFILE 'd:\oracle\oradata\temp01.dbf'
SIZE 20971520 AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
SHUTDOWN IMMEDIATE
STARTUP UPGRADE PFILE='d:\init.ora'
@@ ?/rdbms/admin/utlirp.sql
SHUTDOWN IMMEDIATE
STARTUP PFILE='d:\init.ora'
-- The following step will recompile all PL/SQL modules.
-- It may take serveral hours to complete.
@@ ?/rdbms/admin/utlrp.sql
set feedback 6;
在目标数据库新创建一个 ORACLE 服务,将转换后的数据文件 COPY 至目标数据库的相应目
录,运行建库脚本即完成跨平台数据库的转换:
C:\Documents and Settings\Roby.Xuexb>oradim -new -sid newdb -startmode m
Instance created.
C:\Documents and Settings\Roby.Xuexb>set oracle_sid=newdb
 

 

 

脚本 


RMAN> convert tablespace users to platform 'AIX-Based Systems (64-bit)' format=
'D:\users_%U.dbf';

启动 conversion at source 于 08-9月 -16
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动数据文件转换
输入数据文件: 文件号=00004 名称=D:\APP\JAME\ORADATA\PROD\USERS01.DBF
已转换的数据文件 = D:\USERS_DATA_D-PROD_I-331959809_TS-USERS_FNO-4_09RFA3RC.DBF
通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:01
完成 conversion at source 于 08-9月 -16

  1. rman 语法

 

 1. to  AIX        AIX-Based Systems (64-bit)        

 CONVERT DATABASE NEW DATABASE 'txx' transport script 'F:\oracle_convert\txx_script.txt' to platform 'AIX-Based Systems (64-bit)' 

 db_file_name_convert 'F:\app\oracle12c\oradata\tx','F:\oracle_convert\txx';

 

 2. to  x86 Linux   'Linux x86 64-bit' 

 CONVERT DATABASE NEW DATABASE 'txx' transport script 'F:\oracle_convert\txx_script.txt' to platform 'Linux x86 64-bit' 

 db_file_name_convert 'F:\app\oracle12c\oradata\tx','F:\oracle_convert\txx';

 

无参数db_file_name_convert

CONVERT DATABASE NEW DATABASE 'copydb' transport script 'c:\oracle\copydb\copyscripts' to platform 'Microsoft Windows IA (32-bit)';

 

 

RMAN>

 

RMAN>  CONVERT DATABASE NEW DATABASE 'txx' transport script 'F:\oracle_convert\txx_script.txt' to platform 'Linux x86 64-bit'

2>  db_file_name_convert 'F:\app\oracle12c\oradata\tx','F:\oracle_convert\txx';

 

启动 conversion at source 29-12-15

使用通道 ORA_DISK_1

 

在数据库中找到外部表 SYS.OPATCH_XML_INV

 

在数据库中找到目录 SYS.ORACLE_HOME

在数据库中找到目录 SYS.ORACLE_BASE

在数据库中找到目录 SYS.OPATCH_LOG_DIR

在数据库中找到目录 SYS.OPATCH_SCRIPT_DIR

在数据库中找到目录 SYS.OPATCH_INST_DIR

在数据库中找到目录 SYS.DATA_PUMP_DIR

在数据库中找到目录 SYS.XSDDIR

 

在口令文件中找到用户 SYS (具有 SYSDBA and SYSOPER 权限)

通道 ORA_DISK_1: 启动数据文件转换

输入数据文件: 文件号=00001 名称=F:\APP\ORACLE12C\ORADATA\TX\SYSTEM01.DBF

已转换的数据文件 = F:\ORACLE_CONVERT\TXX\SYSTEM01.DBF

通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:25

通道 ORA_DISK_1: 启动数据文件转换

输入数据文件: 文件号=00002 名称=F:\APP\ORACLE12C\ORADATA\TX\SYSAUX01.DBF

已转换的数据文件 = F:\ORACLE_CONVERT\TXX\SYSAUX01.DBF

通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:15

通道 ORA_DISK_1: 启动数据文件转换

输入数据文件: 文件号=00005 名称=F:\APP\ORACLE12C\ORADATA\TX\ANDZEN1.DBF

已转换的数据文件 = F:\ORACLE_CONVERT\TXX\ANDZEN1.DBF

通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:15

通道 ORA_DISK_1: 启动数据文件转换

输入数据文件: 文件号=00003 名称=F:\APP\ORACLE12C\ORADATA\TX\UNDOTBS01.DBF

已转换的数据文件 = F:\ORACLE_CONVERT\TXX\UNDOTBS01.DBF

通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:07

通道 ORA_DISK_1: 启动数据文件转换

输入数据文件: 文件号=00004 名称=F:\APP\ORACLE12C\ORADATA\TX\USERS01.DBF

已转换的数据文件 = F:\ORACLE_CONVERT\TXX\USERS01.DBF

通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:01

编辑 init.ora 文件 F:\APP\ORACLE12C\PRODUCT\12.1.0\DBHOME_1\DATABASE\INIT_00QQ1QHL_1_0.ORA。此 PFILE 将用于在目标平台上创建数据库据

在目标平台上运行 SQL 脚本 F:\ORACLE_CONVERT\TXX_SCRIPT.TXT 以创建数据库

要重新编译所有 PL/SQL 模块, 请在目标平台上运行 utlirp.sql utlrp.sql

 

要更改内部数据库标识符, 请使用 DBNEWID 实用程序

完成 conversion at source 29-12-15

 

RMAN>

 

 

  1. 不同 endian_format编码

不能 database级别 转化CONVERT DATABASE  会失败!!

 

'Microsoft Windows x86 64-bit  ==  'AIX-Based Systems (64-bit)' 'HP-UX (64-bit)'

 

RMAN>

RMAN>

RMAN>  CONVERT DATABASE NEW DATABASE 'txx' transport script 'F:\oracle_convert\txx_script.txt' to platform 'AIX-Based Systems (64-bit)'
2>  db_file_name_convert 'F:\app\oracle12c\oradata\tx','F:\oracle_convert\txx';

启动 conversion at source 29-12-15
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: conversion at source
命令 ( 12/29/2015 16:22:50 ) 失败
RMAN-06921: 转换数据库检查失败

RMAN>

 

RMAN> CONVERT DATABASE NEW DATABASE 'txx' transport script 'F:\oracle_convert\tx_script.txt' to platform 'HP-UX (64-bit)'  db_file_name_convert 'F:\app\ora
cle12c\oradata\tx','F:\oracle_convert\tx2';

启动 conversion at source 30-12-15
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: conversion at source
命令 ( 12/30/2015 10:44:02 ) 失败
RMAN-06921: 转换数据库检查失败

 

不同 endian_format编码

tablespace级别转化,  可以成功转化的

 

表空间或文件级别的转换-- 表空间

前提: 下面sourcewindows平台,目标分别为AIX Linux结果不同。


 1. to  'AIX-Based Systems (64-bit)' 
 rman target /
 

 convert tablespace users to platform='AIX-Based Systems (64-bit)' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';
 
 convert tablespace andzen1 to platform='AIX-Based Systems (64-bit)'  format ‘D:\’ db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';

 

 

RMAN> convert tablespace users to platform='AIX-Based Systems (64-bit)' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';

 

启动 conversion at source 30-12-15
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动数据文件转换
输入数据文件: 文件号=00004 名称=F:\APP\ORACLE12C\ORADATA\TX\USERS01.DBF
已转换的数据文件 = F:\ORACLE_CONVERT\TX\USERS01.DBF
通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:01
完成 conversion at source 30-12-15

RMAN>

RMAN>

RMAN> convert tablespace andzen1 to platform='AIX-Based Systems (64-bit)' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';

启动 conversion at source 30-12-15
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动数据文件转换
输入数据文件: 文件号=00005 名称=F:\APP\ORACLE12C\ORADATA\TX\ANDZEN1.DBF
已转换的数据文件 = F:\ORACLE_CONVERT\TX\ANDZEN1.DBF
通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:15
完成 conversion at source 30-12-15

RMAN>

 

 

 

## andzen1

 

SQL> alter tablespace andzen1 read only;
alter tablespace andzen1 read only
                                 *

1 行出现错误:
ORA-16000:
数据库或可插入数据库是以只读访问方式打开的


SQL> shut immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE
例程已经启动。

 

 

SQL> alter tablespace andzen1 read only
  2  ;

 

convert tablespace andzen1 to platform='HP-UX (64-bit)' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';

 

 

RMAN> convert tablespace andzen1 to platform='HP-UX (64-bit)' db_file_name_convert='F:\app\oracle12c\oradata\
acle_convert\tx';

启动 conversion at source 10-2 -17
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动数据文件转换
输入数据文件: 文件号=00005 名称=F:\APP\ORACLE12C\ORADATA\TX\ANDZEN1.DBF
已转换的数据文件 = F:\ORACLE_CONVERT\TX\ANDZEN1.DBF
通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:01:45
完成 conversion at source 10-2 -17

 

RMAN> convert tablespace users

2> to platform 'AIX-Based Systems (64-bit)'

3> db_file_name_convert='D:\ORACLE12\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\','D:\';

 

从位于 19-7 -18 conversion at source 开始

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=137 设备类型=DISK

通道 ORA_DISK_1: 启动数据文件转换

输入数据文件, 文件号 = 00007 名称 = D:\ORACLE12\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\USERS01.DBF

已转换的数据文件 = D:\USERS01.DBF

通道 ORA_DISK_1: 数据文件转换完成, 用时: 00:00:01

19-7 -18 完成了 conversion at source

 

RMAN>

 

 

 

 

 

 

 

convert tablespace andzen1 to platform='AIX-Based Systems (64-bit)' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';

 

 

 

说明:在RMAN 里面tablespace  convert  一下任意biglittle编码格式都是可以的。

 
 convert tablespace users to platform='HP-UX (64-bit)' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';
 
 convert tablespace users to platform='Solaris Operating System (x86)' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';
 
 
 convert tablespace users to platform='Linux x86 64-bit' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';
 
 
 convert tablespace users to platform='Microsoft Windows IA (64-bit) ' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';
 

 


 

 

2.  

文件级别的转换,要再目标操作系统服务器上(否则会报错),所以不建议用这个。


 RMAN>
  convert datafile 'F:\APP\ORACLE12C\ORADATA\TX\USERS01.DBF' to platform= 'HP-UX (64-bit)' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';
  convert datafile 'F:\APP\ORACLE12C\ORADATA\TX\USERS01.DBF' to platform= 'Linux x86 64-bit' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracle_convert\tx';

 

 

RMAN>

RMAN> convert datafile 'F:\APP\ORACLE12C\ORADATA\TX\USERS01.DBF' to platform= 'HP-UX (64-bit)' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\oracl
e_convert\tx';

启动 conversion at target 30-12-15
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: conversion at target
命令 ( 12/30/2015 10:26:15 ) 失败
RMAN-06595: 平台名 'HP-UX (64-bit)' 与数据库平台名 'Microsoft Windows x86 64-bit' 不匹配

RMAN>

RMAN> convert datafile 'F:\APP\ORACLE12C\ORADATA\TX\USERS01.DBF' to platform= 'Linux x86 64-bit' db_file_name_convert='F:\app\oracle12c\oradata\tx','F:\ora
cle_convert\tx';

启动 conversion at target 30-12-15
使用通道 ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: conversion at target
命令 ( 12/30/2015 10:26:25 ) 失败
RMAN-06595: 平台名 'Linux x86 64-bit' 与数据库平台名 'Microsoft Windows x86 64-bit' 不匹配

RMAN>

 

 

 

奇怪所有的covert datafile 都不成功!??
platform_name支持的值可以从V$TRANSPORTABLE_PLATFORM查询到,并没有错误。

 

答:
CONVERT TABLESPACE命令必须用在源平台,必须转换整个表空间
CONVERT DATAFILE命令用在目的平台不能在源数据库只转换一个数据文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: RMAN-03002、RMAN-06026和RMAN-06023是Oracle Recovery Manager (RMAN)在执行恢复操作时可能遇到的错误代码。 RMAN-03002错误表示恢复命令失败。这可能是由于一些目标数据库的问题导致的,比如目标数据库中缺少必要的备份文件或归档日志。 RMAN-06026错误表示在恢复过程中找不到某些目标。这可能是由于备份文件或归档日志丢失或不可用导致的。 RMAN-06023错误表示在恢复过程中无法找到指定的备份集或备份片段。 要解决这些错误,可以采取以下步骤: 1. 确保目标数据库中存在所需的备份文件和归档日志。可以使用RMAN的LIST命令来检查备份和归档日志的可用性。 2. 如果备份文件或归档日志确实丢失或不可用,您可能需要重新运行备份操作以生成所需的备份文件或归档日志。 3. 如果您使用的是恢复目录,则还应确保恢复目录中包含正确的备份信息。可以使用RMAN的LIST命令来检查恢复目录中的备份信息。 如果您需要更详细的解决方案,可以参考Oracle官方文档中的相关文章\[2\]。此外,您还可以通过启用RMAN的调试模式并记录调试日志\[3\]来获取更多的调试信息,以帮助您诊断和解决问题。 #### 引用[.reference_title] - *1* *2* *3* [笔记:物理Standby搭建时恢复报错RMAN-03002 RMAN-06026 RMAN-06100](https://blog.csdn.net/Lizi_TT/article/details/107707123)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值