阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

【传输表空间】使用 EXPDP/IMPDP工具的传输表空间完成数据迁移

208次阅读
没有评论

共计 4230 个字符,预计需要花费 11 分钟才能阅读完成。

本文通过实践演示,完整模拟一下使用 EXPDP/IMPDP 工具实现传输表空间的过程,供参考。
任务描述:将 secdb1 实例上的 sec 用户表空间 tbs_sec 的数据传输到 secdb2 实例上 secooler 用户下。

1.secdb1 实例环境准备
1)创建待操作的表空间
sys@secdb1> create tablespace tbs_sec datafile ‘/u01/app/Oracle/oradata/secdb1/dfile/tbs_sec_01.dbf’ size 5 m autoextend on;

Tablespace created.

2)重新创建 sec 用户并授权
sys@secdb1> drop user sec cascade;

User dropped.

sys@secdb1> create user sec identified by sec default tablespace tbs_sec;

User created.

sys@secdb1> grant connect,resource to sec;

Grant succeeded.

3)在 sec 用户下简单创建一张表并初始化一条记录
sys@secdb1> conn sec/sec
Connected.
sec@secdb1> create table t(x int);

Table created.

sec@secdb1> insert into t values (1);

1 row created.

sec@secdb1> commit;

Commit complete.

sec@secdb1> select * from t;

        X
———-
        1

2. 检 tbs_sec 表空间是否“自包含”
sys@secdb1> EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK(‘tbs_sec’,true);

PL/SQL procedure successfully completed.

sys@secdb1> SELECT * FROM TRANSPORT_SET_VIOLATIONS;

no rows selected

OK,没有问题。

3. 将表空间调整到只读状态
sys@secdb1> ALTER TABLESPACE tbs_sec read only;

Tablespace altered.

4. 使用 EXPDP 工具完成表空间元素据导出
sys@secdb1> create directory dir_home as ‘/home/oracle’;

Directory created.

sys@secdb1> grant read,write on directory dir_home to public;

Grant succeeded.

[oracle@seclinux ~]$ expdp system/oracle1 directory=dir_home dumpfile=tbs_sec.dmp transport_tablespaces=tbs_sec transport_full_check=y

Export: Release 10.2.0.1.0 – Production on Saturday, 23 July, 2010 22:23:21

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OLAP and Data Mining options
Starting “SYSTEM”.”SYS_EXPORT_TRANSPORTABLE_01″:  system/******** directory=dir_home dumpfile=tbs_sec.dmp transport_tablespaces=tbs_sec transport_full_check=y
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
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:
  /home/oracle/tbs_sec.dmp
Job “SYSTEM”.”SYS_EXPORT_TRANSPORTABLE_01″ successfully completed at 22:23:39

5. 将 tbs_sec 表空间对应的数据文件拷贝到 secdb2 实例对应的目录
[oracle@seclinux ~]$ cp /u01/app/oracle/oradata/secdb1/dfile/tbs_sec_01.dbf /u01/app/oracle/oradata/secdb2/tbs_sec_01.dbf

6. 在 secdb2 实例上使用 IMPDP 工具完成表空间的导入
sys@secdb2> create user secooler identified by secooler;

User created.

sys@secdb2> grant connect,resource to secooler;

Grant succeeded.

sys@secdb2> create directory dir_home as ‘/home/oracle’;

Directory created.

sys@secdb2> grant read,write on directory dir_home to public;

Grant succeeded.

[oracle@seclinux ~]$ impdp system/oracle1 DUMPFILE=tbs_sec.dmp DIRECTORY=dir_home TRANSPORT_DATAFILES=/u01/app/oracle/oradata/secdb2/tbs_sec_01.dbf REMAP_SCHEMA=(sec:secooler)

Import: Release 10.2.0.1.0 – Production on Saturday, 23 July, 2010 22:34:48

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OLAP and Data Mining options
Master table “SYSTEM”.”SYS_IMPORT_TRANSPORTABLE_01″ successfully loaded/unloaded
Starting “SYSTEM”.”SYS_IMPORT_TRANSPORTABLE_01″:  system/******** DUMPFILE=tbs_sec.dmp DIRECTORY=dir_home TRANSPORT_DATAFILES=/u01/app/oracle/oradata/secdb2/tbs_sec_01.dbf REMAP_SCHEMA=(sec:secooler)
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job “SYSTEM”.”SYS_IMPORT_TRANSPORTABLE_01″ successfully completed at 22:34:52

7. 在 secdb2 实例上验证数据导入效果
sys@secdb2> conn secooler/secooler
Connected.
secooler@secdb2> select * from cat;

TABLE_NAME                    TABLE_TYPE
—————————— ———–
T                              TABLE

secooler@secdb2> select * from t;

        X
———-
        1

sys@secdb2> select owner,tablespace_name from dba_tables where wner=’SECOOLER’ and table_name=’T’;

OWNER                          TABLESPACE_NAME
—————————— ——————————
SECOOLER                      TBS_SEC

OK,使命完成。

8. 最后记得将 secdb1 实例中 tbs_sec 表空间置为可读写模式
sys@secdb1> ALTER TABLESPACE tbs_sec read write;

Tablespace altered.

9. 小结
使用 EXPDP/IMPDP 传输表空间功能可以比较便捷高效的完成数据迁移,善用之。
有关使用 EXP/IMP 工具完成传输表空间的操作方法,请参考如下文章,大同小异。
《【实验】利用可传输表空间技术实现数据的高效迁移》(http://www.linuxidc.com/Linux/2016-08/133898.htm)

更多 Oracle 相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/133897.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计4230字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中