使用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>

搞定。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值