【資料遷移】XTTS跨平臺傳輸表空間(1.傳統方式)
一、 XTTS 概述
XTTS ( Cross-Platform transport tablespace )意為跨平臺傳輸表空間。 XTTS 實際上是 TTS 的增強功能。 TTS 意為傳輸表空間,原理是將業務表空間從一個庫傳到另一個庫,以達到資料遷移的目的。 XTTS 則可以支援跨平臺位元組格式、增量進行傳輸。(跨平臺傳輸表空間僅支援 oracle 11g 或以上)
本文演示為傳統方式傳輸表空間。
二、 限制條件
XTTS (傳統方式)進行資料遷移的時候,需要具備以下限制條件:
ü 源庫和目標庫時區、字符集、國家集保持一致;
ü 目標庫不能有和傳輸表空間相同命名的表空間,如果有,請將傳輸的表空間或目標庫表空間改名;
ü 物化檢視和分割槽表不能被傳輸,除非這些物件也在表空間集中。
ü 目標庫應在傳輸前建立傳輸表空間對應的使用者
ü 傳輸的表空間不能是system 表空間,或者物件的所有者是 sys 。
ü 源庫的COMPATIBLE 引數不能大於目標庫 COMPATIBLE 引數值(向下相容)
三、 思路清晰
step1: 準備工作 , 檢查環境
step2: 源庫將要傳輸的表空間設定 read only
step3: 源庫使用 data pump 匯出該表空間後設資料
step4: 按照目標端的位元組格式使用 RMAN 轉換資料檔案
step5: 目標庫使用 data pump 匯入後設資料
step6: 目標庫將表空間設定 read write
step7: 資料驗證
四、 遷移過程
1. 準備工作
1) 檢視支援的作業系統平臺資訊
SQL> COLUMN PLATFORM_NAME FORMAT A36
SQL> SELECT * FROM V$TRANSPORTABLE_PLATFORM ORDER BY PLATFORM_NAME;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ------------------------------------ --------------
6 AIX-Based Systems (64-bit) Big
16 Apple Mac OS Big
21 Apple Mac OS (x86-64) Little
19 HP IA Open VMS Little
15 HP Open VMS Little
5 HP Tru64 UNIX Little
3 HP-UX (64-bit) Big
4 HP-UX IA (64-bit) Big
18 IBM Power Based Linux Big
9 IBM zSeries Based Linux Big
10 Linux IA (32-bit) Little
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- ------------------------------------ --------------
11 Linux IA (64-bit) Little
13 Linux x86 64-bit Little
7 Microsoft Windows IA (32-bit) Little
8 Microsoft Windows IA (64-bit) Little
12 Microsoft Windows x86 64-bit Little
17 Solaris Operating System (x86) Little
20 Solaris Operating System (x86-64) Little
1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
20 rows selected.
2) 檢查源庫和目標庫的位元組格式
(源庫)
SQL> SELECT d.PLATFORM_NAME, ENDIAN_FORMAT
FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d
WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME;
PLATFORM_NAME ENDIAN_FORMAT
------------------------------------ --------------
Linux x86 64-bit Little
(目標庫)
PLATFORM_NAME ENDIAN_FORMAT
------------------------------------ --------------
Linux IA (64-bit) Little
如果源庫和目標庫的endian_format (位元組格式)不一致,那就需要使用 rman 工具的 convert 功能將源庫位元組格式( endian_format )轉換成目標庫位元組格式;如果源庫和目標庫的位元組格式一致,那就無需轉換。
3) 檢查主備庫字符集是否一致
SQL> select * from nls_database_parameters;
PARAMETER VALUE
------------------------------ ------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET ZHS16GBK
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
PARAMETER VALUE
------------------------------ ------------------------------
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 11.2.0.4.0
20 rows selected.
4) 檢查傳輸表空間是否被自包含
SQL> execute sys.dbms_tts.transport_set_check('TBS1,TBS2', true);
SQL> select * from sys.transport_set_violations;
返回結果為no rows 為正常;如果返回其他結果,則需要在傳輸前處理。如果 檢查出 Index 存在自包含問題,需要重建或者最後建立
5) 檢視要傳輸的表空間對應的使用者資訊
源庫檢查使用者資訊
SQL> select 'create user '||username||' identified by '||''''||password||''''||';' from dba_users where default_tablespace in(' TBS1 ' , ' TBS2 ');
源庫檢查角色許可權
SQL> select 'grant '||GRANTED_ROLE||' to '||grantee||';' from dba_role_privs where grantee in(select username from dba_users where default_tablespace in(' TBS1 ' , ' TBS2 '));
需要在目標庫建立相應使用者並賦予許可權。示例如下:
SQL> create user tbs1 identified by oracle;
SQL> grant connect,resource to tbs1;
2. 源庫將要傳輸的表空間設定read only
SQL> alter tablespace tbs1 read only;
SQL> alter tablespace tbs2 read only;
3. 源庫使用data pump 匯出該表空間後設資料
SQL> create or replace directory dmp_dir as '/home/oracle/dmp';
SQL> grant read,write on directory dmp_dir to s ystem ;
$ mkdir -p /home/oracle/dmp
$ expdp system/oracle dumpfile=expdp_tbs.dmp directory=dmp_dir logfile=expdp_tbs.log transport_tablespaces=TBS1,TBS2
將匯出的expdp_tbs.dmp 和兩個表空間的資料檔案傳輸到目標端 /home/oracle/dmp 資料夾,步驟略
如果源庫是asm 檔案,則需要將 asm 檔案轉換為 os 檔案,再傳到目標端。示例如下:
RMAN> convert tablespace tbs1 format '/home/oracle/dmp/tbs1.dbf';
4. 按照目標端的位元組格式使用RMAN 轉換資料檔案
這裡分兩種情況:
情況一:在第一步操作查詢中,如果源庫和目標庫位元組格式不一致,則需要進行轉換,例項如下:
(轉換位元組格式可以在源端或者目標端進行。建議將資料檔案傳輸到目標端後再進行轉換)
RMAN> CONVERT DATAFILE
'/home/oracle/dmp/tbs1.dbf',
'/home/oracle/dmp/tbs2.dbf'
TO PLATFORM="Linux IA (32-bit)"
FROM PLATFORM="Linux x86 64-bit"
DB_FILE_NAME_CONVERT='/home/oracle/ dmp /','/oradata/ ORCL/ ';
如果目標端是ASM 磁碟組,需要修改上面的最後一句
DB_FILE_NAME_CONVERT='/home/oracle/ dmp /' , ' +DATA / ORCL/DATAFILE/ ';
情況二:在第一步查詢中,發現源庫和目標庫的位元組格式一致,那就不需要進行轉換,直接進行下一步操作。
5. 目標庫使用data pump 匯入後設資料
SQL> create or replace directory dmp_dir as '/home/oracle/dmp';
SQL> grant read,write on directory dmp_dir to s ystem ;
$ mkdir -p /home/oracle/dmp
$ impdp system/oracle dumpfile=expdp_tbs.dmp directory=dmp_dir transport_datafiles='/home/oracle/dmp/tbs1.dbf','/home/oracle/dmp/tbs2.dbf'
6. 將資料庫設定為read write
SQL> alter tablespace tbs1 read write;
SQL> alter tablespace tbs2 read write;
7. 資料驗證
步驟略
-------- end --------
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31529886/viewspace-2707037/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料遷移】XTTS跨平臺傳輸表空間v4TTS
- 【資料遷移】XTTS跨平臺傳輸表空間v3(3.DFT方式)TTS
- 用傳輸表空間跨平臺遷移資料
- 跨平臺表空間遷移(傳輸表空間)
- 【資料遷移】XTTS跨平臺傳輸表空間v3(2.RMAN增量)TTS
- [zt]跨平臺表空間傳輸 (DB遷移)
- 【XTTS】Oracle傳輸表空間xtts增量方式TTSOracle
- 利用可傳輸表空間跨平臺遷移 -RMAN CONVERT
- 【資料遷移】使用傳輸表空間遷移資料
- RMAN跨平臺傳輸資料庫和表空間資料庫
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移
- RMAN跨平臺可傳輸表空間和資料庫資料庫
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移[轉]
- 海量資料遷移之傳輸表空間(一)
- 12c跨平臺傳輸表空間
- 跨平臺表空間傳輸的實現
- 10g跨平臺傳輸表空間
- Ora10G跨平臺傳輸表空間
- RMAN跨平臺傳輸表空間(different Endian)
- RMAN跨平臺傳輸表空間(same endian)
- 【XTTS】使用XTTS傳輸表空間將Oracle11.2.0.4資料遷移至Oracle19CTTSOracle
- oracle 異構平臺遷移之傳輸表空間一例Oracle
- 基於可傳輸表空間的表空間遷移
- oracle跨版本與平臺執行傳輸表空間Oracle
- 使用Oracle可傳輸表空間的特性複製資料(3)跨平臺的傳輸實踐Oracle
- 使用可傳輸表空間向rac環境遷移資料
- 用可傳輸表空間實現Oracle跨平臺移植Oracle
- 10g新特性之-跨平臺表空間傳輸
- RMAN跨小版本跨平臺與位元組序傳輸表空間
- 【XTTS】Oracle11g 使用XTTS增量跨平臺傳輸減少停機時間TTSOracle
- 同位元組序跨平臺表空間傳輸的測試
- 10G新特性筆記之跨平臺傳輸表空間筆記
- 利用CONVERT實現跨平臺表空間遷移
- oracle小知識點14--xtts傳輸表空間OracleTTS
- 11g使用增量備份來執行跨平臺傳輸表空間減少停機時間(xtts_rman)TTS
- Oracle資料庫同平臺與異構平臺下的表空間傳輸Oracle資料庫
- Oracle 不同平臺間表空間遷移Oracle
- 【實驗】利用可傳輸表空間技術實現資料的高效遷移