数据泵导出导入

案例一:把主库PRR表数据导出,然后导入到测试库PRR_2021表中。这两个表均为分区表,我们想要做的就是把PRR表的Q4分区已追加方式导入到测试库PRR_2021表中,因为PRR_2021表里面有之前PRR表的历史数据,所以不能truncate掉数据。

1、先在测试环境下检查数据库的环境:

1.1、查看STDF用户的默认表空间、默认临时表空间:
SQL> select username,default_tablespace,temporary_tablespace from dba_users where username = 'STDF';
USERNAME                 DEFAULT_TABLESPACE     TEMPORARY_TABLESPACE
---------------------------------------- ------------------------------ ------------------------------
STDF                     STDF_DATA_TEST         TEMP

备注:发现备库的STDF下用户默认表空间与主库不同,查询到表下无数据,所以计划删除这个表空间,从新定义默认表空间。

1.2、查询某个表空间都有哪些用户在使用:
select * from dba_tables where tablespace_name='STDF_DATA'
1.3、删除STDF_DATA_TEST表空间及对应数据文件:
drop tablespace STDF_DATA_TEST including contents and datafiles;
1.4、删除STDF用户(加了cascade就可以把用户连带的数据全部删掉):
drop user STDF cascade;

2、在测试库中搭建实验环境:

2.1、主库表空间、用户信息查询:
SQL> select file_name,tablespace_name from dba_data_files;
FILE_NAME                TABLESPACE_NAME
---------------------------------------- ----------------------------------------
/u02/ora_data/STDFDB/stdftdata210703.dbf     STDF_DATA
/u02/ora_data/STDFDB/index_stdf_data210801.dbf  INDEX_STDF_DATA
/u02/ora_data/STDFDB/data_partition211003.dbf   STDF_DATA_PARTITION1
2.2、由于我们要用数据泵导出导入,所以查询后上面的表空间都是主库STDF用户下表所使用的表空间,为了不影响导入出错,我们需要给测试库创建相同表空间。

创建STDF_DATA表空间并增加数据文件:

create tablespace STDF_DATA datafile '/u01/app/oracle/oradata/TESTDB/stdf20211101.dbf' size 32760M autoextend on next 32m maxsize 32760M extent management local;

alter tablespace STDF_DATA add datafile '/u01/app/oracle/oradata/TESTDB/STDF_DATA_20211102.dbf'  size 32700M autoextend on next 10M maxsize 32700M;

创建STDF_DATA_PARTITION1表空间并增加数据文件:

create tablespace STDF_DATA_PARTITION1 datafile '/u01/app/oracle/oradata/TESTDB/data_partition211101.dbf' size 32760M autoextend on next 32m maxsize 32760M extent management local;

alter tablespace STDF_DATA_PARTITION1 add datafile '/u01/app/oracle/oradata/TESTDB/data_partition211102.dbf'  size 32700M autoextend on next 10M maxsize 32700M;

alter tablespace STDF_DATA_PARTITION1 add datafile '/u01/app/oracle/oradata/TESTDB/data_partition211102.dbf'  size 32700M autoextend on next 10M maxsize 32700M;

创建INDEX_STDF_DATA索引表空间并增加数据文件:

create tablespace INDEX_STDF_DATA datafile '/u01/app/oracle/oradata/TESTDB/index_stdf_data211101.dbf ' size 32760M autoextend on next 32m maxsize 32760M extent management local;
alter tablespace INDEX_STDF_DATA add datafile '/u01/app/oracle/oradata/TESTDB/index_stdf_data211102.dbf'  size 32700M autoextend on next 10M maxsize 32700M;
2.3、创建stdf用户,并授权DBA权限:
SQL> create user stdf identified by oracle default tablespace STDF_DATA; 

User created.

SQL> grant dba to stdf;

3、用数据泵导出主库中2张表(PRR主表、PRR_2021历史表,均为分区表):

备注:我们的目的是把PRR主表的数据,以分区的形式每月都做迁移,迁移至PRR_2021表中。

3.1、用数据泵导出主库中的STDF_DATA_PRR表的Q4分区:
[oracle@stdfdb.htkjxa.com ~]$expdp stdf/UsRS8fdp directory=dump_bak  dumpfile=STDF_DATA_PRR_Q4_211103.dmp tables=STDF_DATA_PRR:Q4

Export: Release 19.0.0.0.0 - Production on Wed Nov 3 09:56:22 2021
Version 19.10.0.0.0

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

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Starting "STDF"."SYS_EXPORT_TABLE_02":  stdf/******** directory=dump_bak dumpfile=STDF_DATA_PRR_Q4_211103.dmp tables=STDF_DATA_PRR:Q4 
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/COMMENT
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
. . exported "STDF"."STDF_DATA_PRR":"Q4"                 173.3 GB 888987765 rows
Master table "STDF"."SYS_EXPORT_TABLE_02" successfully loaded/unloaded
******************************************************************************
Dump file set for STDF.SYS_EXPORT_TABLE_02 is:
  /u01/dump_bak/STDF_DATA_PRR_Q4_211103.dmp
Job "STDF"."SYS_EXPORT_TABLE_02" successfully completed at Wed Nov 3 10:14:35 2021 elapsed 0 00:18:10
3.2、用数据泵导出主库中的STDF_DATA_PRR_2021表:
[oracle@stdfdb.htkjxa.com ~]$expdp stdf/UsRS8fdp directory=dump_bak  dumpfile=STDF_DATA_PRR_2021_211103.dmp tables=STDF_DATA_PRR_2021

Export: Release 19.0.0.0.0 - Production on Wed Nov 3 09:15:37 2021
Version 19.10.0.0.0

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

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Starting "STDF"."SYS_EXPORT_TABLE_02":  stdf/******** directory=dump_bak dumpfile=STDF_DATA_PRR_2021_211103.dmp tables=STDF_DATA_PRR_2021 
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202107"       1.774 GB 14206176 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202108"       55.12 GB 125154631 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202109"       137.1 GB 597688477 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202110"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202111"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202112"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202201"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202202"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202203"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202204"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202205"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202206"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202207"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202208"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202209"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202210"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202211"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q202212"           0 KB       0 rows
. . exported "STDF"."STDF_DATA_PRR_2021":"Q_OTHERS"          0 KB       0 rows
Master table "STDF"."SYS_EXPORT_TABLE_02" successfully loaded/unloaded
******************************************************************************
Dump file set for STDF.SYS_EXPORT_TABLE_02 is:
  /u01/dump_bak/STDF_DATA_PRR_2021_211103.dmp
Job "STDF"."SYS_EXPORT_TABLE_02" successfully completed at Wed Nov 3 09:41:31 2021 elapsed 0 00:25:49

4、把数据泵导出的2张表传输到备库下(实验环境),然后分别导入:

4.1、由于导入的表都是9亿行左右,所以保险起见,先扩容undo表空间:
alter tablespace undotbs1 add datafile '/u01/app/oracle/oradata/TESTDB/undotbs02.dbf' size 32700M autoextend on next 128M maxsize 32700M;
alter tablespace undotbs1 add datafile '/u01/app/oracle/oradata/TESTDB/undotbs03.dbf' size 32700M autoextend on next 128M maxsize 32700M;
4.2、先导入STDF_DATA_PRR_2021表:

备注:此表为分区表也建立了分区索引,此表之前已经包含了主表STDF_DATA_PRR前3个月的历史数据。

[oracle@STDFTestDB dump_bak]$ impdp stdf/oracle directory=dump_bak  dumpfile=STDF_DATA_PRR_2021_211103.dmp  tables=STDF_DATA_PRR_2021 logfile=stdf_test.log cluster=no

Import: Release 19.0.0.0.0 - Production on Thu Nov 4 11:32:10 2021
Version 19.3.0.0.0

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

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Master table "STDF"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
import done in AL32UTF8 character set and AL16UTF16 NCHAR character set
export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
Warning: possible data loss in character set conversions
Starting "STDF"."SYS_IMPORT_TABLE_01":  stdf/******** directory=dump_bak dumpfile=STDF_DATA_PRR_2021_211103.dmp tables=STDF_DATA_PRR_2021 logfile=stdf_test.log cluster=no 
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202107"       1.774 GB 14206176 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202108"       55.12 GB 125154631 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202109"       137.1 GB 597688477 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202110"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202111"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202112"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202201"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202202"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202203"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202204"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202205"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202206"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202207"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202208"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202209"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202210"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202211"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q202212"           0 KB       0 rows
. . imported "STDF"."STDF_DATA_PRR_2021":"Q_OTHERS"          0 KB       0 rows
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Job "STDF"."SYS_IMPORT_TABLE_01" completed with 3 error(s) at Thu Nov 4 17:17:43 2021 elapsed 0 05:45:29
4.3、再导入STDF_DATA_PRR_Q4_211103.dmp文件:

备注:因为这个STDF_DATA_PRR_Q4_211103.dmp文件,他是STDF_DATA_PRR表的数据,属于STDF_DATA表空间。我们现在的实验目的是:把他的数据灌入STDF_DATA_PRR_2021表空,还不能清除了STDF_DATA_PRR_2021表之前的历史数据。所以我们在导入过程中就需要更换表名称,更换表空间名称,采用追加的方式导入。

[oracle@STDFTestDB dump_bak]$ impdp stdf/oracle directory=dump_bak  dumpfile=STDF_DATA_PRR_Q4_211103.dmp   logfile=stdf_test1.log cluster=no  REMAP_TABLESPACE=STDF_DATA:STDF_DATA_PARTITION1 REMAP_TABLE=STDF_DATA_PRR:STDF_DATA_PRR_2021  table_exists_action=append

Import: Release 19.0.0.0.0 - Production on Fri Nov 5 09:41:34 2021
Version 19.3.0.0.0

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

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Master table "STDF"."SYS_IMPORT_FULL_02" successfully loaded/unloaded
import done in AL32UTF8 character set and AL16UTF16 NCHAR character set
export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
Warning: possible data loss in character set conversions
Starting "STDF"."SYS_IMPORT_FULL_02":  stdf/******** directory=dump_bak dumpfile=STDF_DATA_PRR_Q4_211103.dmp logfile=stdf_test1.log cluster=no REMAP_TABLESPACE=STDF_DATA:STDF_DATA_PARTITION1 REMAP_TABLE=STDF_DATA_PRR:STDF_DATA_PRR_2021 table_exists_action=append 
Processing object type TABLE_EXPORT/TABLE/TABLE
Table "STDF"."STDF_DATA_PRR_2021" exists. Data will be appended to existing table but all dependent metadata will be skipped due to table_exists_action of append
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "STDF"."STDF_DATA_PRR_2021":"Q4"            173.3 GB 888987765 rows
Processing object type TABLE_EXPORT/TABLE/COMMENT
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER
Job "STDF"."SYS_IMPORT_FULL_02" successfully completed at Fri Nov 5 15:38:37 2021 elapsed 0 05:56:55

impdp语法举例:

--将导出文件导入到一个新的schema下,并更改成新的表空间
impdp system/oracle directory=DP_DIR dumpfile=expdp_scott_1017.dmp logfile= t_expdp_scott_1017.log remap_schema=hr:SCOTT REMAP_TABLESPACE=TBS_HR:TBS_SCOTT


--将导出文件导入到一个新的schema下重命名表名,并更改成新的表空间
impdp system/oracle directory=DP_DIR dumpfile=expdp_scott_1017.dmp logfile= t_expdp_scott_1017.log remap_schema=hr:SCOTT REMAP_TABLESPACE=TBS_HR:TBS_SCOTT REMAP_TABLE=hr.t_A:t_BBB

--将导出文件导入到一个新的schema下重命名表名,并更改成新的表空间,并采用追加方式导入
impdp system/oracle directory=DP_DIR dumpfile=expdp_scott_1017.dmp logfile= t_expdp_scott_1017.log remap_schema=hr:SCOTT REMAP_TABLESPACE=TBS_HR:TBS_SCOTT REMAP_TABLE=hr.t_A:t_BBB table_exists_action=append

table_exists_action参数说明:

table_exists_action=skip/append/replace/truncate
impdp恢复数据库的时候有一个table_exists_action选项,其中
skip是跳过————默认就是该选项
append追加
replace覆盖,不释放表空间
truncate先清空表释放表空间,然后执行恢复
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容