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命令用在目的平臺不能在源數據庫只轉換一個數據文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章