跨平臺表空間遷移(傳輸表空間)
示例:準備兩個資料庫(ltdb和epras),從ltdb匯出tsts表空間(使用者ts,包含2個資料檔案到epras。
詳細的執行步驟:
1.ltdb匯出可傳輸表空間(以sysdba執行匯出)到dmp檔案。
2.將ltdb的tsts表空間改為只讀。
[@more@]3.用作業系統命令複製資料檔案和dmp檔案到另一個位置給另一個資料庫epras使用。
如果在一臺伺服器上,dmp檔案可以不必複製,複製完成後,將ltdb的tsts表空間改為可讀寫。
4.在epras資料庫建立ts使用者(此時不必授權)。
5.匯入可傳輸表空間(以sysdba執行匯入)到dmp檔案到epras資料庫。
6.將epras的tsts表空間改為可讀寫,給ts使用者授權。
例項:
1.準備工作:
查詢源資料庫平臺資訊
SQL> col platform_name for a40
SQL> SELECT d.PLATFORM_NAME, ENDIAN_FORMAT
2 FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d
3 WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME;
PLATFORM_NAME ENDIAN_FORMAT
---------------------------------------- --------------
Solaris[tm] OE (64-bit) Big
查詢目標資料庫平臺資訊
SQL> col platform_name for a40
SQL> SELECT d.PLATFORM_NAME, ENDIAN_FORMAT
2 FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d
3 WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME;
PLATFORM_NAME ENDIAN_FORMAT
---------------------------------------- --------------
Microsoft Windows IA (32-bit) Little
查詢Oracle10g支援的平臺轉換
SQL> select * from v$transportable_platform;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ---------------------------------------- --------------
1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
7 Microsoft Windows IA (32-bit) Little
10 Linux IA (32-bit) Little
6 AIX-Based Systems (64-bit) Big
3 HP-UX (64-bit) Big
5 HP Tru64 UNIX Little
4 HP-UX IA (64-bit) Big
11 Linux IA (64-bit) Little
15 HP Open VMS Little
8 Microsoft Windows IA (64-bit) Little
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ---------------------------------------- --------------
9 IBM zSeries Based Linux Big
13 Linux 64-bit for AMD Little
16 Apple Mac OS Big
12 Microsoft Windows 64-bit for AMD Little
2.建立一個獨立的自包含表空間
用於測試
$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.1.0.2.0 - Production on Tue Apr 27 14:04:08 2004
Copyright (c) 1982, 2004, Oracle.?All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/opt/oracle/oradata/eygle/system01.dbf
/opt/oracle/oradata/eygle/undotbs01.dbf
/opt/oracle/oradata/eygle/sysaux01.dbf
/opt/oracle/oradata/eygle/users01.dbf
/data1/oradata/systemfile/eygle01.dbf
/opt/oracle/oradata/eygle/EYGLE/datafile/o1_mf_test_03xv34ny_.dbf
/opt/oracle/oradata/eygle/EYGLE/datafile/o1_mf_itpub_03xv5g66_.dbf
7 rows selected.
SQL> create tablespace trans
2?datafile '/data1/oradata/systemfile/trans01.dbf'
3?size 10M;
Tablespace created.
SQL> create user trans identified by trans
2?default tablespace trans;
User created.
SQL> grant connect,resource to trans;
Grant succeeded.
SQL> connect trans/trans
Connected.
SQL> create table test as select * from user_objects;
Table created.
SQL> select?count(*) from test;
COUNT(*)
----------
1
SQL> select * from test;
OBJECT_NAME
--------------------------------------------------------------------------------
SUBOBJECT_NAME?OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
------------------------------ ---------- -------------- -------------------
CREATED?LAST_DDL_TIM TIMESTAMP?STATUS?T G S
------------ ------------ ------------------- ------- - - -
TEST
15604?15604 TABLE
27-APR-04?27-APR-04?2004-04-27:14:05:42 VALID?N N N
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data
3.匯出要傳輸的表空間
$ pwd
/opt/oracle
$ cd dpdata
$ ls
$ expdp eygle/eygle dumpfile=trans.dmp directory=dpdata transport_tablespace=trans
LRM-00101: unknown parameter name 'transport_tablespace'
$ expdp eygle/eygle dumpfile=trans.dmp directory=dpdata TRANSPORT_TABLESPACES=trans
Export: Release 10.1.0.2.0 - 64bit Production on Tuesday, 27 April, 2004 14:07
Copyright (c) 2003, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Starting "EYGLE"."SYS_EXPORT_TRANSPORTABLE_01": eygle/******** dumpfile=trans.dmp directory=dpdata TRANSPORT_TABLESPACES=trans
ORA-39123: Data Pump transportable tablespace job aborted
ORA-29335: tablespace 'TRANS' is not read only
Job "EYGLE"."SYS_EXPORT_TRANSPORTABLE_01" stopped due to fatal error at 14:08
注意:傳輸表空間必須置為只讀狀態
$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.1.0.2.0 - Production on Tue Apr 27 14:08:13 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> alter tablespace trans read only;
Tablespace altered.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
$ expdp eygle/eygle dumpfile=trans.dmp directory=dpdata TRANSPORT_TABLESPACES=trans
Export: Release 10.1.0.2.0 - 64bit Production on Tuesday, 27 April, 2004 14:08
Copyright (c) 2003, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Starting "EYGLE"."SYS_EXPORT_TRANSPORTABLE_01": eygle/******** dumpfile=trans.dmp directory=dpdata TRANSPORT_TABLESPACES=trans
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/TTE_POSTINST/PLUGTS_BLK
Master table "EYGLE"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for EYGLE.SYS_EXPORT_TRANSPORTABLE_01 is:
/opt/oracle/dpdata/trans.dmp
Job "EYGLE"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 14:09
4.使用rman轉換檔案格式
$ rman target /
Recovery Manager: Release 10.1.0.2.0 - 64bit Production
Copyright (c) 1995, 2004, Oracle. All rights reserved.
connected to target database: EYGLE (DBID=1337390772)
RMAN> convert tablespace trans
2> to platform 'Microsoft Windows IA (32-bit)'
3> Format '/tmp/%U';
Starting backup at 27-APR-04
using target database controlfile instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=148 devtype=DISK
channel ORA_DISK_1: starting datafile conversion
input datafile fno=00008 name=/data1/oradata/systemfile/trans01.dbf
converted datafile=/tmp/data_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01
Finished backup at 27-APR-04
RMAN> exit
Recovery Manager complete.
5.確認匯出檔案已生成
$ ls /tmp/data*
/tmp/data_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg
$ ls -l /tmp/data*
-rw-r----- 1 oracle dba 10493952 Apr 27 14:12 /tmp/data_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg
$ chmod 777 /tmp/data*
$ chmod 777 /opt/oracle/dpdata/*
6.透過ftp傳輸檔案至目標主機
220 billing-center.hurray.com.cn FTP server (SunOS 5.8) ready.
User (172.16.33.32none)): gqgai
331 Password required for gqgai.
Password:
230 User gqgai logged in.
ftp> bin
200 Type set to I.
ftp> cd /tmp
250 CWD command successful.
ftp> mget data*
200 Type set to I.
mget data_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg? y
200 PORT command successful.
150 Binary data connection for data_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg (172.16.32.65,2885) (10493952 bytes).
226 Binary Transfer complete.
ftp: 10493952 bytes received in 15.90Seconds 659.87Kbytes/sec.
ftp> cd /opt/oracle/dpdata
250 CWD command successful.
ftp> ls
200 PORT command successful.
150 ASCII data connection for /bin/ls (172.16.32.65,2889) (0 bytes).
export.log
trans.dmp
226 ASCII Transfer complete.
ftp: 23 bytes received in 0.01Seconds 2.30Kbytes/sec.
ftp> bin
200 Type set to I.
ftp> mget trans.dmp
200 Type set to I.
mget trans.dmp? y
200 PORT command successful.
150 Binary data connection for trans.dmp (172.16.32.65,2893) (73728 bytes).
226 Binary Transfer complete.
ftp: 73728 bytes received in 0.03Seconds 2457.60Kbytes/sec.
ftp> bye
221 Goodbye.
7.使用rman在目標資料庫轉換檔案
E:Oracleoradataeygledpdata>rman target /
恢復管理器: 版本10.1.0.2.0 - Production
Copyright (c) 1995, 2004, Oracle. All rights reserved.
連線到目標資料庫: EYGLE (DBID=1587222708)
RMAN> CONVERT DATAFILE 'E:Oracleoradataeygledpdatadata_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg'
2> DB_FILE_NAME_CONVERT
3> 'E:Oracleoradataeygledpdatadata_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01fk92hg','E:OracleoradataeygleEYGLEDATAFILEtrans01.dbf';
啟動 backup 於 27-4月 -04
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動資料檔案轉換
輸出檔名=E:ORACLEORADATAEYGLEDPDATADATA_D-EYGLE_I-1337390772_TS-TRANS_FNO-8_01FK92HG
已轉換的資料檔案 = E:ORACLEORADATAEYGLEEYGLEDATAFILETRANS01.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:04
完成 backup 於 27-4月 -04
RMAN>
8.在目標資料庫plugin資料檔案
注意目標資料庫中的目標使用者必須存在,否則會報錯.
E:Oracleoradataeygledpdata>impdp eygle/eygle dumpfile=trans.dmp directory=dpdata transport_datafiles='E:Oracleorad
ataeygleEYGLEDATAFILETRANS01.DBF'
Import: Release 10.1.0.2.0 - Production on 星期二, 27 4月, 2004 15:02
Copyright (c) 2003, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功載入/解除安裝了主表 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01"
啟動 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01": eygle/******** dumpfile=trans.dmp directory=dpdata transport_datafiles='E:
OracleoradataeygleEYGLEDATAFILETRANS01.DBF'
處理物件型別 TRANSPORTABLE_EXPORT/PLUGTS_BLK
ORA-39123: 資料泵可傳輸的表空間作業中止
ORA-29342: 資料庫中不存在使用者 TRANS
作業 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01" 因致命錯誤於 15:02 停止
E:Oracleoradataeygledpdata>sqlplus "/ as sysdba"
SQL*Plus: Release 10.1.0.2.0 - Production on 星期二 4月 27 15:03:03 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> create user trans identified by trans;
使用者已建立。
SQL> grant connect,resource to trans;
授權成功。
SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開
E:Oracleoradataeygledpdata>impdp eygle/eygle dumpfile=trans.dmp directory=dpdata transport_datafiles='E:Oracleorad
ataeygleEYGLEDATAFILETRANS01.DBF'
Import: Release 10.1.0.2.0 - Production on 星期二, 27 4月, 2004 15:03
Copyright (c) 2003, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功載入/解除安裝了主表 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01"
啟動 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01": eygle/******** dumpfile=trans.dmp directory=dpdata transport_datafiles='E:
OracleoradataeygleEYGLEDATAFILETRANS01.DBF'
處理物件型別 TRANSPORTABLE_EXPORT/PLUGTS_BLK
處理物件型別 TRANSPORTABLE_EXPORT/TABLE
處理物件型別 TRANSPORTABLE_EXPORT/TTE_POSTINST/PLUGTS_BLK
作業 "EYGLE"."SYS_IMPORT_TRANSPORTABLE_01" 已於 15:03 成功完成
9.檢查資料
E:Oracleoradataeygledpdata>sqlplus trans/trans
SQL*Plus: Release 10.1.0.2.0 - Production on 星期二 4月 27 15:03:50 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select count(*) from test;
COUNT(*)
----------
1
SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開
E:Oracleoradataeygledpdata>
可以選擇把表空間更改為讀寫
SQL> alter tablespace trans read write;
表空間已更改。
10.總結
10g的表空間跨平臺遷移,較9i就是增加了一個使用Rman進行的檔案格式轉換的過程.
實際上也就是轉換了資料檔案頭的格式資訊而已.
然而這一簡單改進帶來的方便之處是顯而易見的.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7490392/viewspace-1022114/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [zt]跨平臺表空間傳輸 (DB遷移)
- 用傳輸表空間跨平臺遷移資料
- 利用可傳輸表空間跨平臺遷移 -RMAN CONVERT
- 【資料遷移】XTTS跨平臺傳輸表空間v4TTS
- 基於可傳輸表空間的表空間遷移
- 【資料遷移】XTTS跨平臺傳輸表空間(1.傳統方式)TTS
- 12c跨平臺傳輸表空間
- 跨平臺表空間傳輸的實現
- 10g跨平臺傳輸表空間
- Oracle 不同平臺間表空間遷移Oracle
- Ora10G跨平臺傳輸表空間
- RMAN跨平臺傳輸表空間(different Endian)
- RMAN跨平臺傳輸表空間(same endian)
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移
- 利用CONVERT實現跨平臺表空間遷移
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移[轉]
- oracle跨版本與平臺執行傳輸表空間Oracle
- RMAN跨平臺傳輸資料庫和表空間資料庫
- oracle 異構平臺遷移之傳輸表空間一例Oracle
- 【資料遷移】XTTS跨平臺傳輸表空間v3(3.DFT方式)TTS
- 【資料遷移】XTTS跨平臺傳輸表空間v3(2.RMAN增量)TTS
- 表空間遷移
- 遷移表空間
- 【資料遷移】使用傳輸表空間遷移資料
- RMAN跨平臺可傳輸表空間和資料庫資料庫
- 用可傳輸表空間實現Oracle跨平臺移植Oracle
- 10g新特性之-跨平臺表空間傳輸
- 遷移SYSTEM表空間為本地管理表空間
- RMAN跨小版本跨平臺與位元組序傳輸表空間
- 海量資料遷移之傳輸表空間(一)
- 【遷移】表空間transport
- RMAN遷移表空間
- 同位元組序跨平臺表空間傳輸的測試
- ORACLE表批量遷移表空間Oracle
- MySQL 傳輸表空間MySql
- Oracle 表空間傳輸Oracle
- oracle表空間傳輸Oracle
- Oracle傳輸表空間Oracle