【TTS】傳輸表空間AIX asm -> linux asm
【TTS】傳輸表空間AIX asm -> linux asm
一.1 BLOG文件結構圖
一.2 前言部分
一.2.1 導讀和注意事項
各位技術愛好者,看完本文後,你可以掌握如下的技能,也可以學到一些其它你所不知道的知識,~O(∩_∩)O~:
① 異構平臺下傳輸表空間的實施
② 傳輸表空間基於表空間的read only和rman2種方式
③ 平臺位元組序、自包含概念
④ expdp/impdp的應用
Tips:
① 若文章程式碼格式有錯亂,推薦使用搜狗或360瀏覽器,也可以下載pdf格式的文件來檢視,pdf文件下載地址: (提取碼:ed9b)
② 本篇BLOG中命令的輸出部分需要特別關注的地方我都用灰色背景和粉紅色字型來表示,比如下邊的例子中,thread 1的最大歸檔日誌號為33,thread 2的最大歸檔日誌號為43是需要特別關注的地方;而命令一般使用黃色背景和紅色字型標注;對程式碼或程式碼輸出部分的注釋一般採用藍色字型表示。
List of Archived Logs in backup set 11
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- ------------------- ---------- ---------
1 32 1621589 2015-05-29 11:09:52 1625242 2015-05-29 11:15:48
1 33 1625242 2015-05-29 11:15:48 1625293 2015-05-29 11:15:58
2 42 1613951 2015-05-29 10:41:18 1625245 2015-05-29 11:15:49
2 43 1625245 2015-05-29 11:15:49 1625253 2015-05-29 11:15:53
[ZFXDESKDB1:root]:/>lsvg -o
T_XDESK_APP1_vg
rootvg
[ZFXDESKDB1:root]:/>
00:27:22 SQL> alter tablespace idxtbs read write;
====》2097152*512/1024/1024/1024=1G
本文如有錯誤或不完善的地方請大家多多指正,ITPUB留言或QQ皆可,您的批評指正是我寫作的最大動力。
一.2.2 相關參考文章連結
其他異構平臺遷移的一些文章參考:
【推薦】 oracle 異構平臺遷移之傳輸表空間一例 http://blog.itpub.net/26736162/viewspace-1391913/
【推薦】 oracle 傳輸表空間一例 http://blog.itpub.net/26736162/viewspace-1375260/
【推薦】 利用rman來實現linux平臺資料庫複製到windows平臺資料庫 http://blog.itpub.net/26736162/viewspace-1352436/
【推薦】 直接複製資料檔案實現linux平臺資料庫複製到windows平臺資料庫 http://blog.itpub.net/26736162/viewspace-1352243/
【TTS】傳輸表空間Linux asm -> AIX asm http://blog.itpub.net/26736162/viewspace-1987949/
【TTS】傳輸表空間Linux asm -> AIX asm 基於rman http://blog.itpub.net/26736162/viewspace-1987953/
一.3 相關知識點掃盲
可傳輸表空間的特性主要用於進行庫對庫的表空間複製,要進行傳輸的表空間必須置於read-only模式。如果生產庫不允許表空間置為只讀模式,沒關係,方法還是有的,透過RMAN備份也可以建立可傳輸表空間集。要使用可傳輸表空間的特性,oracle至少是8i企業版或更高版本。如果是相同作業系統平臺相互匯入,則8i及以上版本均可支援,但如果是不同作業系統平臺,資料庫版本至少10g。被傳輸的表空間即可以是字典管理,也可以是本地管理。並且自oracle9i開始,被傳輸表空間的block size可以與目標資料庫的block size不同。
可傳輸表空間(還有個集)最大的優勢是其速度比export/import或unload/load要快的多。因為可傳輸表空間主要是複製資料檔案到目標路徑,然後再使用export/import或Data Pump export/import等應用僅匯出/匯入表空間物件的後設資料到新資料庫。
關於可傳輸表空間,還有個集(Transportable Tablespace Sets)的建立,其中都提到了很重要一點,就是被傳輸的表空間在傳輸過程中必須置為 read-only。而在實際操作過程中,對於某些生產資料庫,將表空間置為 read-only 是件非常複雜的事情甚至完全不允許,有了 RMAN 的 Transportable Tablespace,這一切都得以避免。RMAN 透過備份建立可傳輸表空間集,它並不需要存取活動的資料檔案,相應也就不需要將表空間置為 read-only。因此,資料庫可用性得到提升,尤其對於超大的表空間,因為被傳輸的表空間在此期間仍可進行讀寫操作,而且把表空間置為 read-only 模式可能會花費較長時間,
使用 RMAN 建立可傳輸表空間集,允許你在傳輸過程中指定目標恢復時間點或 SCN,這樣傳輸的資料可以更靈活,不必完全複製現有表空間,只要備份中存在,你就可以選擇性的恢復資料。例如,你的備份策略為保留一週,你希望建立的可傳輸表空間中資料是截止本月底最後一天的資料,那麼你在下個月第一週內任何時候都可以進行傳輸操作而不需要考慮這期間生產庫是否會有寫入操作。
一.3.1 注意事項
? 注意:
① source和target database的資料庫版本最好一致,否則會因為db time zone 不一致導致報如下錯誤,但是如果source大於等於target的話是可以的,向下相容的
ORA-39002: invalid operation
ORA-39322: Cannot use transportabletablespace with timestamp with timezone columns and different timezone version.
② source和target端的字符集必須一致,例如如下情況報錯:
source為 ZHS16GBK,target為AL32UTF8
ORA-39123: Data Pump transportable tablespace job aborted
ORA-29345: cannot plug a tablespace into a database using an incompatible character set
Tartget db char set AL32UTF8 is not a superset of ZHS16GBK.
Failed to plug in a tablespace due to incompatible
database character set"AL32UTF8" and
transportable set database character set "ZHS16GBK"
③ source和target database的compatible 引數最好一致,但source如果小於等於target端的話是可以的,例如source為11.2.0.4.0,target為11.2.0.0.0就不行,impdp的時候報錯:
ORA-39123: Data Pump transportable tablespace job aborted
ORA-00721: changes by release 11.2.0.4.0 cannot be used by release 11.2.0.0.0
一.4 實驗部分
一.4.1 實驗環境介紹
專案 | source db | target db |
db 型別 | 單例項 | 單例項 |
db version | 11.2.0.3 | 11.2.0.3 |
db 儲存 | ASM | ASM |
ORACLE_SID | ora11g | orclasm |
db_name | ora11g | orclasm |
主機IP地址 | 22.188.139.33 | 192.168.59.30 |
OS版本及kernel版本 | AIX 64位 5.3.0.0 | RHEL6.5 64位,2.6.32-504.16.2.el6.x86_64 |
OS hostname | ZFXDESKDB2 | rhel6_lhr |
platform_name | AIX-Based Systems (64-bit) | Linux x86 64-bit |
db time zone | 14 | 14 |
字符集 | ZHS16GBK | ZHS16GBK |
compatible | 11.2.0.0.0 | 11.2.0.0.0 |
歸檔模式 | Archive Mode | Archive Mode |
一.4.2 實驗目標
要實現將自定義的應用程式表空間app1tbs,app2tbs,idxtbs從源平臺傳遞到目標平臺,而在實際的工作過程中,需要將AIX上的資料庫遷移到Linux,或者將Linux上的資料庫遷移到AIX上,除了exp/imp和expdp/impdp外,最常用的就是傳輸表空間了,若是整個庫遷移的話,我們需要做的就是把業務使用者和業務表空間的資料遷移過來就行,Undo、temp、system等等的就不用遷移了,整個處理過程和本文件的處理過程大同小異,需要關注的是業務物件的個數、大小、狀態等。
一.4.3 實驗過程
-------------------------------------------------------------------------------------------------------------
一.5 source端環境準備
一.5.1 在源庫上建立3個使用者應用的表空間,並在相應的表空間建立表和索引
oracle@ZDMTRAIN2:/oracle$ echo $ORACLE_SID
ora11g
oracle@ZDMTRAIN2:/oracle$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Sat Feb 18 10:51:00 2017
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SYS@ora11g> select name from v$datafile;
NAME
--------------------------------------------------
+DATA1/ora11g/datafile/system.379.936264859
+DATA1/ora11g/datafile/sysaux.378.936264861
+DATA1/ora11g/datafile/undotbs1.380.936264861
+DATA1/ora11g/datafile/users.382.936264861
+DATA1/ora11g/datafile/example.391.936264979
SYS@ora11g> create tablespace app1tbs DATAFILE '+DATA1' size 10m;
Tablespace created.
SYS@ora11g> create tablespace app2tbs DATAFILE '+DATA1' size 10m;
Tablespace created.
SYS@ora11g> CREATE TABLESPACE IDXTBS DATAFILE '+DATA1' SIZE 10M;
Tablespace created.
SYS@ora11g> create user user_app1 identified by user_app1 default tablespace app1tbs;
User created.
SYS@ora11g> create user user_app2 identified by user_app2 default tablespace app2tbs;
User created.
SYS@ora11g> grant connect , resource to user_app1;
Grant succeeded.
SYS@ora11g> grant connect , resource to user_app2;
Grant succeeded.
SYS@ora11g> create table user_app1.app1_tab tablespace app1tbs as select * from scott.emp;
Table created.
SYS@ora11g> create table user_app2.app2_tab tablespace app2tbs as select * from scott.dept;
Table created.
SYS@ora11g> create index user_app1.idx_emp_ename on user_app1.app1_tab(ename) tablespace idxtbs;
Index created.
SYS@ora11g> create index user_app2.idx_dept_dname on user_app2.app2_tab(dname) tablespace idxtbs;
Index created.
SYS@ora11g> set line 9999 pagesize 9999
SYS@ora11g> SELECT a.NAME, b.NAME FROM v$tablespace a , v$datafile b WHERE a.TS#=b.TS# ;
NAME NAME
-------------- -----------------------------------------------
SYSTEM +DATA1/ora11g/datafile/system.379.936264859
SYSAUX +DATA1/ora11g/datafile/sysaux.378.936264861
UNDOTBS1 +DATA1/ora11g/datafile/undotbs1.380.936264861
USERS +DATA1/ora11g/datafile/users.382.936264861
EXAMPLE +DATA1/ora11g/datafile/example.391.936264979
APP1TBS +DATA1/ora11g/datafile/app1tbs.393.936269553
APP2TBS +DATA1/ora11g/datafile/app2tbs.394.936269559
IDXTBS +DATA1/ora11g/datafile/idxtbs.395.936269565
8 rows selected.
SYS@ora11g>
一.6 判斷平臺支援並確定位元組序
如果傳輸表空間集到不同的平臺,則要確定對於源和目標平臺這種跨平臺表空間被支援,也要確定每個平臺的位元組序,如果平臺具有相同的位元組序,則不需要進行轉化,否則必須做一個表空間集轉化,在源端或目標端都可以,在源端用convert tablespace,在目標端用convert datafile。
SYS@ora11g> col platform_name for a40
SYS@ora11g> select tp.platform_name, tp.endian_format
2 from v$transportable_platform tp
3 where tp.platform_name in ('Linux x86 64-bit', 'AIX-Based Systems (64-bit)');
PLATFORM_NAME ENDIAN_FORMAT
---------------------------------------- ----------------------------
AIX-Based Systems (64-bit) Big
Linux x86 64-bit Little
SQL>
源平臺和目標平臺的Endian_format 不同,source端為Big,target端為Little,所以需要進行表空間集轉換,前邊說過在源端或目標端都可以進行轉換,這裡我們選擇在目標端來進行轉換。
一.7 選擇自包含的表空間集
一.7.1 進行檢查
Indicates whether a full or partial dependency check is required. If TRUE, treats all IN and OUT pointers(dependencies) and captures them as violations if they are not self-contained in the transportable set.
execute sys.dbms_tts.transport_set_check('app1tbs,app2tbs,idxtbs',true);
select * from sys.transport_set_violations;
先試試要傳輸app1tbs和idxtbs這2個表空間:
SYS@ora11g> execute sys.dbms_tts.transport_set_check('app1tbs,idxtbs',true);
PL/SQL procedure successfully completed.
SQL> col violations for a70
SYS@ora11g> select * from sys.transport_set_violations;
VIOLATIONS
----------------------------------------------------------------------
ORA-39907: Index USER_APP2.IDX_DEPT_DNAME in tablespace IDXTBS points
to table USER_APP2.APP2_TAB in tablespace APP2TBS.
SQL>
結論: 在idxtbs表空間中IDX_DEPT_DNAME索引指向了表空間集外的user_app2.APP2_TAB表,所以這裡選擇app1tabs,app2tabs,idxtbs作為新的表空間集再次進行檢查
SYS@ora11g> execute sys.dbms_tts.transport_set_check('app1tbs,app2tbs,idxtbs',true);
PL/SQL procedure successfully completed.
SYS@ora11g> select * from sys.transport_set_violations;
no rows selected
SYS@ora11g>
結論: 此時這個表空間集已經不在違背自包含的條件,可以確定為一個可傳輸表空間集
一.8 產生可傳輸表空間集
一.8.1 使自包含的表空間集中的所有表空間變為只讀狀態
SYS@ora11g> alter tablespace app1tbs read only;
Tablespace altered.
SYS@ora11g> alter tablespace app2tbs read only;
Tablespace altered.
SYS@ora11g> alter tablespace idxtbs read only;
Tablespace altered.
SYS@ora11g> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------ ---------------------------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
APP1TBS READ ONLY
APP2TBS READ ONLY
IDXTBS READ ONLY
9 rows selected.
SYS@ora11g>
一.8.2 使用資料泵匯出工具,匯出要傳輸的各個表空間的後設資料
一.8.2.1 確定匯出目錄
SYS@ora11g> set line 9999
SYS@ora11g> col directory_name for a28
SYS@ora11g> col directory_path for a100
SYS@ora11g> select directory_name,directory_path from dba_directories;
DIRECTORY_NAME DIRECTORY_PATH
---------------------------- ----------------------------------------------------------------------------------------------------
SUBDIR /oracle/app/oracle/product/11.2.0/db/demo/schema/order_entry//2002/Sep
SS_OE_XMLDIR /oracle/app/oracle/product/11.2.0/db/demo/schema/order_entry/
LOG_FILE_DIR /oracle/app/oracle/product/11.2.0/db/demo/schema/log/
MEDIA_DIR /oracle/app/oracle/product/11.2.0/db/demo/schema/product_media/
XMLDIR /oracle/app/oracle/product/11.2.0/db/rdbms/xml
DATA_FILE_DIR /oracle/app/oracle/product/11.2.0/db/demo/schema/sales_history/
DATA_PUMP_DIR /oracle/app/oracle/admin/ora11g/dpdump/
ORACLE_OCM_CONFIG_DIR /oracle/app/oracle/product/11.2.0/db/ccr/state
8 rows selected.
SYS@ora11g>
一.8.2.2 開始匯出
oracle@ZDMTRAIN2:/oracle$ expdp \'/ as sysdba \' dumpfile=expdat_tts_read_20160203.dmp directory=DATA_PUMP_DIR transport_tablespaces=app1tbs,app2tbs,idxtbs logfile=expdat_20160201.log
Export: Release 11.2.0.3.0 - Production on Sat Feb 18 11:03:07 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
Starting "SYS"."SYS_EXPORT_TRANSPORTABLE_01": "/******** AS SYSDBA" dumpfile=expdat_tts_read_20160203.dmp directory=DATA_PUMP_DIR transport_tablespaces=app1tbs,app2tbs,idxtbs logfile=expdat_20160201.log
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Master table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:
/oracle/app/oracle/admin/ora11g/dpdump/expdat_tts_read_20160203.dmp
******************************************************************************
Datafiles required for transportable tablespace APP1TBS:
+DATA1/ora11g/datafile/app1tbs.393.936269553
Datafiles required for transportable tablespace APP2TBS:
+DATA1/ora11g/datafile/app2tbs.394.936269559
Datafiles required for transportable tablespace IDXTBS:
+DATA1/ora11g/datafile/idxtbs.395.936269565
Job "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at 11:04:49
oracle@ZDMTRAIN2:/oracle$
檢視檔案,使用asmcmd中copy命令將資料檔案copy到檔案系統,需要給目錄賦予許可權:
root@ZDMTRAIN2:/# chmod 777 /oracle/app/oracle/admin/ora11g/dpdump
root@ZDMTRAIN2:/oracle/app/oracle/admin/ora11g/dpdump# l
total 224
-rw-r--r-- 1 oracle asmadmin 1597 Feb 18 11:04 expdat_20160201.log
-rw-r----- 1 oracle asmadmin 110592 Feb 18 11:04 expdat_tts_read_20160203.dmp
root@ZDMTRAIN2:/oracle/app/oracle/admin/ora11g/dpdump# su - grid
grid@ZDMTRAIN2:/home/grid$ asmcmd
ASMCMD> cd +DATA1/ora11g/datafile/
ASMCMD> ls -lt
Type Redund Striped Time Sys Name
DATAFILE UNPROT COARSE FEB 18 10:00:00 Y UNDOTBS1.380.936264861
DATAFILE UNPROT COARSE FEB 18 10:00:00 Y SYSAUX.378.936264861
DATAFILE UNPROT COARSE FEB 18 10:00:00 Y IDXTBS.395.936269565
DATAFILE UNPROT COARSE FEB 18 10:00:00 Y APP2TBS.394.936269559
DATAFILE UNPROT COARSE FEB 18 10:00:00 Y APP1TBS.393.936269553
DATAFILE UNPROT COARSE FEB 18 09:00:00 Y USERS.382.936264861
DATAFILE UNPROT COARSE FEB 18 09:00:00 Y SYSTEM.379.936264859
DATAFILE UNPROT COARSE FEB 18 09:00:00 Y EXAMPLE.391.936264979
ASMCMD> cp IDXTBS.395.936269565 /oracle/app/oracle/admin/ora11g/dpdump
copying +DATA1/ora11g/datafile/IDXTBS.395.936269565 -> /oracle/app/oracle/admin/ora11g/dpdump/IDXTBS.395.936269565
ASMCMD> cp APP2TBS.394.936269559 /oracle/app/oracle/admin/ora11g/dpdump
copying +DATA1/ora11g/datafile/APP2TBS.394.936269559 -> /oracle/app/oracle/admin/ora11g/dpdump/APP2TBS.394.936269559
ASMCMD> cp APP1TBS.393.936269553 /oracle/app/oracle/admin/ora11g/dpdump
copying +DATA1/ora11g/datafile/APP1TBS.393.936269553 -> /oracle/app/oracle/admin/ora11g/dpdump/APP1TBS.393.936269553
ASMCMD>
一.9 還原源庫中的表空間為讀/寫模式
SYS@ora11g> alter tablespace app1tbs read write;
Tablespace altered.
SYS@ora11g> alter tablespace app2tbs read write;
Tablespace altered.
SYS@ora11g> alter tablespace idxtbs read write;
Tablespace altered.
SYS@ora11g> col tablespace_name format a20
SYS@ora11g> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
-------------------- ---------------------------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
APP1TBS ONLINE
APP2TBS ONLINE
IDXTBS ONLINE
9 rows selected.
SYS@ora11g>
至此,已和源庫沒有任何關係。
一.10 傳輸檔案
這裡需要傳輸轉儲元檔案和資料檔案到目標庫
一.10.1 檢視目標庫資料檔案位置和匯入目錄
[oracle@rhel6 ~]$ export ORACLE_SID=orclasm
[oracle@rhel6_lhr dpdump]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 星期三 2月 3 20:17:58 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
+DATA/orclasm/datafile/system.256.868235071
+DATA/orclasm/datafile/sysaux.257.868235073
+DATA/orclasm/datafile/undotbs1.258.868235073
+DATA/orclasm/datafile/users.259.868235073
13 rows selected.
SQL> set line 9999
SQL> col directory_name for a28
SQL> col directory_path for a100
SQL> select directory_name,directory_path from dba_directories;
DIRECTORY_NAME DIRECTORY_PATH
------------------------- ----------------------------------------------------------------------------------------------------
XMLDIR /ade/b/2125410156/oracle/rdbms/xml
DATA_PUMP_DIR /u01/app/oracle/admin/orclasm/dpdump/
ORACLE_OCM_CONFIG_DIR /u01/app/oracle/product/11.2.0/dbhome_1/ccr/state
3 rows selected.
SQL>
一.10.2 利用ftp工具傳輸轉儲元檔案和資料檔案到目標庫DATA_PUMP_DIR目錄並修改許可權
[root@rhel6_lhr ~]# cd /u01/app/oracle/admin/orclasm/dpdump
[root@rhel6_lhr dpdump]# ll
total 30856
-rw-r--r-- 1 root root 10493952 Feb 18 2017 APP1TBS.393.936269553
-rw-r--r-- 1 root root 10493952 Feb 18 2017 APP2TBS.394.936269559
-rw-r--r-- 1 root root 1597 Feb 18 2017 expdat_20160201.log
-rw-r--r-- 1 root root 110592 Feb 18 2017 expdat_tts_read_20160203.dmp
-rw-r--r-- 1 root root 10493952 Feb 18 2017 IDXTBS.395.936269565
[root@rhel6_lhr dpdump]# chown oracle:dba *
[root@rhel6_lhr dpdump]# ll
total 30856
-rw-r--r-- 1 oracle dba 10493952 Feb 18 2017 APP1TBS.393.936269553
-rw-r--r-- 1 oracle dba 10493952 Feb 18 2017 APP2TBS.394.936269559
-rw-r--r-- 1 oracle dba 1597 Feb 18 2017 expdat_20160201.log
-rw-r--r-- 1 oracle dba 110592 Feb 18 2017 expdat_tts_read_20160203.dmp
-rw-r--r-- 1 oracle dba 10493952 Feb 18 2017 IDXTBS.395.936269565
[root@rhel6_lhr dpdump]#
一.11 轉換位元組序
轉換位元組序可以在sorce端進行也可以在target端進行,我們選擇在target端執行:
[oracle@rhel6_lhr dpdump]$ rman target /
恢復管理器: Release 11.2.0.3.0 - Production on 星期三 2月 3 20:22:52 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
已連線到目標資料庫: ORCLASM (DBID=3424884828)
RMAN> CONVERT DATAFILE
2> "/u01/app/oracle/admin/orclasm/dpdump/APP1TBS.393.936269553",
3> "/u01/app/oracle/admin/orclasm/dpdump/APP2TBS.394.936269559",
4> "/u01/app/oracle/admin/orclasm/dpdump/IDXTBS.395.936269565"
5> TO PLATFORM="Linux x86 64-bit"
6> FROM PLATFORM="AIX-Based Systems (64-bit)"
7> FORMAT '+DATA';
啟動 conversion at target 於 2016-02-03 20:22:54
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=10 裝置型別=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: SID=11 裝置型別=DISK
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入檔名=/u01/app/oracle/admin/orclasm/dpdump/APP1TBS.393.936269553
通道 ORA_DISK_2: 啟動資料檔案轉換
輸入檔名=/u01/app/oracle/admin/orclasm/dpdump/APP2TBS.394.936269559
已轉換的資料檔案 = +DATA/orclasm/datafile/app1tbs.299.902866977
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:02
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入檔名=/u01/app/oracle/admin/orclasm/dpdump/IDXTBS.395.936269565
已轉換的資料檔案 = +DATA/orclasm/datafile/app2tbs.300.902866977
通道 ORA_DISK_2: 資料檔案轉換完畢, 經過時間: 00:00:01
已轉換的資料檔案 = +DATA/orclasm/datafile/idxtbs.301.902866979
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:03
完成 conversion at target 於 2016-02-03 20:23:01
RMAN>
一.12 target端開始匯入資料
一.12.1 建立source庫的2個使用者並賦許可權
如果不建立使用者會報如下的錯誤:
ORA-39123: Data Pump transportable tablespace job aborted
ORA-29342: user USER_APP1 does not exist in the database
create user user_app1 identified by user_app1;
create user user_app2 identified by user_app2;
grant connect , resource to user_app1;
grant connect , resource to user_app2;
SYS@orclasm> create user user_app1 identified by user_app1;
User created.
SYS@orclasm> create user user_app2 identified by user_app2;
User created.
SYS@orclasm> grant connect , resource to user_app1;
Grant succeeded.
SYS@orclasm> grant connect , resource to user_app2;
Grant succeeded.
SYS@orclasm> exit
一.12.2 開始匯入
匯入後設資料,注意這裡的TRANSPORT_DATAFILES為轉換後的新檔名稱:
[oracle@rhel6_lhr dpdump]$ impdp \'/ as sysdba \' DUMPFILE=expdat_tts_read_20160203.dmp DIRECTORY=DATA_PUMP_DIR TRANSPORT_DATAFILES='+DATA/orclasm/datafile/app1tbs.299.902866977','+DATA/orclasm/datafile/app2tbs.300.902866977','+DATA/orclasm/datafile/idxtbs.301.902866979' LOGFILE=impdp_tts_read_20160203.log
Import: Release 11.2.0.3.0 - Production on 星期三 2月 3 20:24:52 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
連線到: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
已成功載入/解除安裝了主表 "SYS"."SYS_IMPORT_TRANSPORTABLE_01"
啟動 "SYS"."SYS_IMPORT_TRANSPORTABLE_01": "/******** AS SYSDBA" DUMPFILE=expdat_tts_read_20160203.dmp DIRECTORY=DATA_PUMP_DIR TRANSPORT_DATAFILES=+DATA/orclasm/datafile/app1tbs.299.902866977,+DATA/orclasm/datafile/app2tbs.300.902866977,+DATA/orclasm/datafile/idxtbs.301.902866979 LOGFILE=impdp_tts_read_20160203.log
處理物件型別 TRANSPORTABLE_EXPORT/PLUGTS_BLK
處理物件型別 TRANSPORTABLE_EXPORT/TABLE
處理物件型別 TRANSPORTABLE_EXPORT/INDEX/INDEX
處理物件型別 TRANSPORTABLE_EXPORT/INDEX_STATISTICS
處理物件型別 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
作業 "SYS"."SYS_IMPORT_TRANSPORTABLE_01" 已於 20:25:20 成功完成
[oracle@rhel6_lhr dpdump]$
[oracle@rhel6 ~]$
一.12.3 檢視target端表空間資訊
[oracle@rhel6_lhr dpdump]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 星期三 2月 3 20:27:41 2016
Copyright (c) 1982, 2011, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
SYS@orclasm > select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
TS_LHR ONLINE
ENCRYPTED_TS ONLINE
GOLDENGATE ONLINE
APP1TBS READ ONLY
APP2TBS READ ONLY
IDXTBS READ ONLY
已選擇12行。
SYS@orclasm >
SYS@orclasm > alter tablespace APP1TBS read write;
表空間已更改。
SYS@orclasm > alter tablespace APP2TBS read write;
表空間已更改。
SYS@orclasm > alter tablespace IDXTBS read write;
表空間已更改。
SYS@orclasm > select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
TS_LHR ONLINE
ENCRYPTED_TS ONLINE
GOLDENGATE ONLINE
APP1TBS ONLINE
APP2TBS ONLINE
IDXTBS ONLINE
已選擇12行。
SYS@orclasm >
SYS@orclasm> set line 9999 pagesize 9999
SYS@orclasm> select * from scott.app1_tab;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
9000 lastwiner
9001 lastwiner
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7902 FORD ANALYST 7566 03-12月-81 3000 20
7934 MILLER CLERK 7782 23-1月 -82 1300 10
已選擇16行。
SYS@orclasm> select * from scott.app2_tab;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SYS@orclasm > select D.owner,D.index_name,D.table_name,D.tablespace_name from dba_indexes d WHERE d.table_name in ('APP1_TAB','APP2_TAB');
OWNER INDEX_NAME TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------ ------------------------------
USER_APP1 IDX_EMP_ENAME APP1_TAB IDXTBS
USER_APP2 IDX_DEPT_DNAME APP2_TAB IDXTBS
SYS@orclasm >
SYS@orclasm > SELECT a.NAME, b.NAME FROM v$tablespace a , v$datafile b WHERE a.TS#=b.TS# ;
NAME NAME
------------------------------ ---------------------------------------------------------------
SYSTEM +DATA/orclasm/datafile/system.256.850260145
SYSAUX +DATA/orclasm/datafile/sysaux.257.850260145
UNDOTBS1 +DATA/orclasm/datafile/undotbs1.258.851526539
USERS +DATA/orclasm/datafile/users.259.850260147
EXAMPLE +DATA/orclasm/datafile/example.265.850260295
APP1TBS +DATA/orclasm/datafile/app1tbs.299.902866977
APP2TBS +DATA/orclasm/datafile/app2tbs.300.902866977
TS_LHR +DATA/orclasm/datafile/ts_lhr.269.852632495
ENCRYPTED_TS +DATA/orclasm/datafile/encrypted_ts.272.854650889
GOLDENGATE +DATA/orclasm/datafile/goldengate.273.862829891
IDXTBS +DATA/orclasm/datafile/idxtbs.301.902866979
TS_LHR +DATA/orclasm/datafile/ts_lhr.284.869738273
USERS +FRA/orclasm/datafile/users.449.880121199
SYSTEM +FRA/orclasm/datafile/system.349.880121287
已選擇14行。
SYS@orclasm >
至此說明3個表空間已經完全由AIX平臺遷移到Linux平臺上。
-------------------------------------------------------------------------------------------------------------
一.13 總結
到此所有的處理算是基本完畢,過程很簡單,但是不同的場景處理方式有很多種,我們應該學會靈活變通。
一.14 About Me
...........................................................................................................................................................................................
本文作者:小麥苗,只專注於資料庫的技術,更注重技術的運用
ITPUB BLOG:http://blog.itpub.net/26736162
本文地址:http://blog.itpub.net/26736162/viewspace-1987957/
本文pdf版: (提取碼:ed9b)
QQ:642808185 若加QQ請註明您所正在讀的文章標題
於 2016-01-26 10:00~ 2016-02-06 19:00 在中行完成
<版權所有,文章允許轉載,但須以連結方式註明源地址,否則追究法律責任!>
...........................................................................................................................................................................................
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-1987957/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【TTS】傳輸表空間Linux asm -> AIX asmTTSLinuxASMAI
- 【TTS】傳輸表空間Linux ->AIX 基於rmanTTSLinuxAI
- 【TTS】傳輸表空間AIX->linux基於rmanTTSAILinux
- 傳輸表空間(TTS) - 不同位元組序平臺 RMAN Convert - 5 ASM到ASMTTSASM
- Oracle傳輸表空間(TTS)OracleTTS
- oracle可傳輸表空間TTS小結OracleTTS
- ASM表空間管理ASM
- 資料泵 TTS(傳輸表空間技術)TTS
- Oracle TTS ORA-39322: 表空間傳輸OracleTTS
- 傳輸表空間(TTS) - 不同位元組序平臺 RMAN Convert - 4 檔案系統到ASMTTSASM
- 轉移表空間到ASMASM
- Linux下為ASM增加空間LinuxASM
- oracle RAC+DG 擴容ASM和表空間(Linux)OracleASMLinux
- MySQL 傳輸表空間MySql
- Oracle 表空間傳輸Oracle
- oracle表空間傳輸Oracle
- Oracle傳輸表空間Oracle
- MySQL表空間傳輸MySql
- 傳輸表空間(從Linux到Windows)LinuxWindows
- 傳輸表空間(TTS) - 不同位元組序平臺 RMAN Convert - 1TTS
- 傳輸表空間(TTS) - 不同位元組序平臺 RMAN Convert - 2TTS
- 使用rman在不同平臺之間傳送oracle asm表空間(transport tablespace)OracleASM
- mysql之 表空間傳輸MySql
- 傳輸表空間操作-OracleOracle
- Oracle 傳輸表空間-RmanOracle
- 總結-表空間傳輸
- ASM磁碟組空間不足ASM
- 跨平臺表空間遷移(傳輸表空間)
- 恢復表空間到不同的ASM磁碟組ASM
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移
- Oracle資料庫遷移 - 異構傳輸表空間TTS HP-UX遷移至Redhat Linux 7.7Oracle資料庫TTSRedhatLinux
- 基於可傳輸表空間的表空間遷移
- Oracle傳輸表空間學習Oracle
- Oracle 傳輸表空間-EXPDP/IMPDPOracle
- Oracle 傳輸表空間-EXP/IMPOracle
- 傳輸表空間自包含理解
- Oracle表空間傳輸詳解Oracle
- 有效管理 ASM 磁碟組空間ASM