使用expdp/impdp傳輸表空間實驗

聲明,本實驗使用一臺機器,兩個實例來模擬表空間傳輸。

傳輸表空間的有點:dump出的是表空間的一些元數據信息,提交非常小,導出非常快,同時在恢復時候導入也非常快,至於時間的花費,大概就是用在拷貝表空間對應的數據文件上吧。

----源庫 prod

SQL> select name from v$tablespace;

NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
TEMP1
TEST
TEST1
EXPTEST

9 rows selected.
--檢查源庫字符集
SQL> select userenv('LANGUAGE') FROM DUAL;

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8

---目標庫 catdb

[oracle@ora11g ~]$ sqlplus sys/oracle@catdb as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sat Jul 4 15:16:24 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select name from v$tablespace;

NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
CATALOGTBS
EXPTEST
EXPTEST1

8 rows selected.
--檢查目標庫字符集
SQL> select userenv('LANGUAGE') FROM dual;

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.AL32UTF8

--遷移源庫prod test表空間到目標庫catdb

-------檢測tablespace 的自包含 prod

-- 檢測一個表空間是否符合傳輸標準的方法
SQL>  EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('test',true);

PL/SQL procedure successfully completed.
--如果沒有行選擇,表示該表空間只包含表數據,並且是自包含的
SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;

no rows selected

--修改表空間爲read only狀態

SQL> alter tablespace test read only;

Tablespace altered.

--使用數據泵傳輸表空間

[oracle@ora11g ~]$ expdp system/oracle@prod directory=dump dumpfile=expdp_tbs_test_%U.dmp logfile=ttbs.log TRANSPORT_TABLESPACES = test

Export: Release 11.2.0.4.0 - Production on Sat Jul 4 20:17:48 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01":  system/********@prod directory=dump dumpfile=expdp_tbs_test_%U.dmp logfile=ttbs.log transport_tablespaces=test 
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Master table "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:
  /ora_data/dump/expdp_tbs_test_01.dmp
******************************************************************************
Datafiles required for transportable tablespace TEST:
  /u01/app/oracle/oradata/prod/test02.dbf
  /u01/app/oracle/oradata/test01_new.dbf
Job "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at Sat Jul 4 20:18:50 2015 elapsed 0 00:01:01

-----將源庫傳輸表空間的datafile 傳送到另一個庫上(這裏都在一臺機器上做實驗,如果在不同機器上做實驗要拷貝表空間數據文件及dump文件到目標機器)

SQL> select tablespace_name, file_name from dba_data_files;
TABLESPACE_NAME                FILE_NAME
------------------------------ --------------------------------------------------
USERS                          /u01/app/oracle/oradata/prod/users01.dbf
UNDOTBS1                       /u01/app/oracle/oradata/prod/undotbs01.dbf
SYSAUX                         /u01/app/oracle/oradata/prod/sysaux01.dbf
SYSTEM                         /u01/app/oracle/oradata/prod/system01.dbf
TEST                           /u01/app/oracle/oradata/test01_new.dbf
TEST                           /u01/app/oracle/oradata/prod/test02.dbf
TEST1                          /u01/app/oracle/oradata/prod/test1.dbf
EXPTEST                        /u01/app/oracle/oradata/prod/exptest01.dbf
EXPTEST1                       /u01/app/oracle/oradata/prod/exptest101.dbf

9 rows selected.

[oracle@ora11g ~]$ cp /u01/app/oracle/oradata/test01_new.dbf /u01/app/oracle/oradata/catdb/test01.dbf
[oracle@ora11g ~]$ cp /u01/app/oracle/oradata/prod/test02.dbf /u01/app/oracle/oradata/catdb/test02.dbf

--在目標庫上用impdp導入表空間

[oracle@ora11g ~]$ impdp system/oracle@catdb directory=dump dumpfile=expdp_tbs_test_%U.dmp TRANSPORT_DATAFILES='/u01/app/oracle/oradata/catdb/test01.dbf','/u01/app/oracle/oradata/catdb/test02.dbf'

Import: Release 11.2.0.4.0 - Production on Sat Jul 4 20:29:22 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01":  system/********@catdb directory=dump dumpfile=expdp_tbs_test_%U.dmp TRANSPORT_DATAFILES=/u01/app/oracle/oradata/catdb/test01.dbf,/u01/app/oracle/oradata/catdb/test02.dbf 
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Sat Jul 4 20:29:28 2015 elapsed 0 00:00:06

--驗證

[oracle@ora11g ~]$ sqlplus sys/oracle@catdb as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Sat Jul 4 20:34:55 2015

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select name from v$tablespace;

NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
CATALOGTBS
EXPTEST
EXPTEST1
TEST

9 rows selected.
SQL> conn scott/oracle@catdb;
Connected.
SQL> select table_name, tablespace_name from user_tables where tablespace_name='TEST';

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
T1                             TEST
TEST                           TEST
T6                             TEST
T3                             TEST
T1_OLD                         TEST
EMPLOYEE                       TEST
EMP                            TEST
DEPT                           TEST

8 rows selected.

--最後記得把源庫和目標庫的test表空間設置爲read write模式

SQL> conn / as sysdba
Connected.
SQL> select name from v$database;

NAME
---------
PROD

SQL> alter tablespace test read write;

Tablespace altered.

SQL> conn sys/oracle@catdb as sysdba
Connected.
SQL> select name from v$database;

NAME
---------
CATDB

SQL> alter tablespace test read write;

Tablespace altered.

SQL>

搞定。

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