【資料遷移】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
- 【XTTS】Oracle傳輸表空間xtts增量方式TTSOracle
- 【XTTS】使用XTTS傳輸表空間將Oracle11.2.0.4資料遷移至Oracle19CTTSOracle
- 【XTTS】Oracle11g 使用XTTS增量跨平臺傳輸減少停機時間TTSOracle
- Oracle資料庫遷移 - 異構傳輸表空間TTS HP-UX遷移至Redhat Linux 7.7Oracle資料庫TTSRedhatLinux
- 【MOS】如何利用RMAN可傳輸表空間遷移資料庫到不同位元組序的平臺(文件 ID 1983639.1)資料庫
- MySQL 傳輸表空間MySql
- mysql之 表空間傳輸MySql
- Oraclc 12C使用不一致備份執行跨平臺傳輸表空間
- 12c – 使用跨平臺增量備份來減少傳輸表空間的停機時間 (文件 ID 2102859.1)
- 12c – 使用跨平臺增量備份來減少傳輸表空間的停機時間 (Doc ID 2102859.1)
- 達夢資料庫系統表空間資料檔案遷移過程資料庫
- iPaas資料傳輸的方式
- 上雲遷移還怕傳輸慢、開機久、停機長?深信服SCMT遷移平臺這樣節省時間!
- table/index/LOBINDEX遷移表空間Index
- SecureFX for Mac(跨平臺檔案傳輸客戶端)Mac客戶端
- MySQL傳輸表空間的簡單使用方法MySql
- MySQL 遷移表空間,備份單表MySql
- 資料傳輸控制方式(i/o)
- Oracle中表空間、表、索引的遷移Oracle索引
- 資料實時傳輸平臺(CDC)與低程式碼平臺(APAAS)資料整合
- 大規模資料傳輸,知易行難 — 資料傳輸與 ETL 平臺的架構演進架構
- 【DB寶50】Oracle異構平臺遷移之完全可傳輸匯出匯入Oracle
- xtts遷移實踐TTS
- 企業大資料傳輸方式,鐳速提供大資料傳輸解決方案大資料
- 達夢(DM)資料庫的表空間建立和遷移維護資料庫
- Oracle 12cbigfile表空間物件遷移Oracle物件
- 傳統 Web 框架部署與遷移Web框架
- 超大資料量遷移方案,XTTS vs OGG大資料TTS
- oracle xtts遷移 AIX to LinuxOracleTTSAILinux
- 完成資料的跨界傳輸與驗證
- 使用 Velero 跨雲平臺遷移叢集資源到 TKE
- mysql共享表空間擴容,收縮,遷移MySql
- spring的前後臺資料傳輸。Spring
- impala 資料表在叢集間遷移方案