impdp 高级用法

      1.从现有的测试库上导出表结构数据,导入到目标库,除去索引和约束;没有索引和约束的额外开销,单纯导数据会很快。

      2.现有生产库上数据导出,尽可能采用高并发;考虑到新旧服务器CPU核数较多,准备采用parallel为32以上;

      3.数据分两步导入目标库:

                3.1 第一步纯数据导入,即content=data_only;

                3.2 第二步追加索引和约束,即include=index,constraint

  4.核对数据,表分析。

      以上主要步骤1和3分别验证如下:

impdp system/****** job_name=20210311_ahxnb_ad71 directory=DPDATA dumpfile=ahxnb_20210309_%U.dmp logfile=20210311_ahxnb_impdp_ad71.log PARALLEL=6 remap_schema=AHXNB:AHXNB remap_tablespace=JHK_DATA:XNB_SYSTEM,USERS:XNB_SYSTEM tables=ahxnb.AD71:AAB301_341182_P3 exclude=index,constraint

XX_P3 partition

不会导入索引和约束

impdp system/****** job_name=20210311_ahxnb_ad71 directory=DPDATA dumpfile=ahxnb_20210309_%U.dmp logfile=20210311_ahxnb_impdp_ad71.log PARALLEL=6 remap_schema=AHXNB:AHXNB remap_tablespace=JHK_DATA:XNB_SYSTEM,USERS:XNB_SYSTEM tables=ahxnb.AD71 content=metadata_only exclude=index,constraint,trigger,statistics

不会导入索引和约束;经过验证:TRIGGER,TABLE_STATISTICS 包含在metadata里面,建议去除trigger,statistics

impdp system/****** job_name=20210311_ahxnb_ad71 directory=DPDATA dumpfile=ahxnb_20210309_%U.dmp logfile=20210311_ahxnb_impdp_ad71.log PARALLEL=6 remap_schema=AHXNB:AHXNB remap_tablespace=JHK_DATA:XNB_SYSTEM,USERS:XNB_SYSTEM tables=ahxnb.AD71 content=metadata_only

索引和约束也会导入

impdp system/****** job_name=20210311_ahxnb_ad71 directory=DPDATA dumpfile=ahxnb_20210309_%U.dmp logfile=20210311_ahxnb_impdp_ad71.log PARALLEL=6 remap_schema=AHXNB:AHXNB remap_tablespace=JHK_DATA:XNB_SYSTEM,USERS:XNB_SYSTEM tables=ahxnb.AD71:AAB301_341182_P3 content=data_only

仅导入表数据,不含index,constraint,trigger,statistics

impdp system/****** job_name=20210311_ahxnb_ad71 directory=DPDATA dumpfile=ahxnb_20210309_%U.dmp logfile=20210311_ahxnb_impdp_ad71_idx.log PARALLEL=6 remap_schema=AHXNB:AHXNB remap_tablespace=JHK_DATA:XNB_SYSTEM,USERS:XNB_SYSTEM tables=ahxnb.AD71 include=index,constraint,trigger,statistics

追加index,constraint,trigger,statistics

实验操作过程记录如下:


[ora11g@dbsrv1 ~]$ impdp system/****** job_name=20210311_ahxnb_ad71 directory=DPDATA dumpfile=ahxnb_20210309_%U.dmp logfile=20210311_ahxnb_impdp_ad71.log PARALLEL=6 remap_schema=AHXNB:AHXNB remap_tablespace=JHK_DATA:XNB_SYSTEM,USERS:XNB_SYSTEM tables=ahxnb.AD71 content=metadata_only exclude=index,constraint,trigger,statistics

Import: Release 11.2.0.4.0 - Production on Thu Mar 11 20:52:03 2021



Processing object type TABLE_EXPORT/TABLE/TABLE
Job "SYSTEM"."20210311_ahxnb_ad71" successfully completed at Thu Mar 11 20:52:08 2021 elapsed 0 00:00:05

[ora11g@dbsrv1 ~]$ impdp system/****** job_name=20210311_ahxnb_ad71 directory=DPDATA dumpfile=ahxnb_20210309_%U.dmp logfile=20210311_ahxnb_impdp_ad71.log PARALLEL=6 remap_schema=AHXNB:AHXNB remap_tablespace=JHK_DATA:XNB_SYSTEM,USERS:XNB_SYSTEM tables=ahxnb.AD71:AAB301_341182_P3 content=data_only


Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "AHXNB"."AD71":"AAB301_341182"."AAB301_341182_P3" 11.20 MB 1334358 rows
Job "SYSTEM"."20210311_ahxnb_ad71" successfully completed at Thu Mar 11 20:52:43 2021 elapsed 0 00:00:07

[ora11g@dbsrv1 ~]$ impdp system/****** job_name=20210311_ahxnb_ad71 directory=DPDATA dumpfile=ahxnb_20210309_%U.dmp logfile=20210311_ahxnb_impdp_ad71_idx.log PARALLEL=6 remap_schema=AHXNB:AHXNB remap_tablespace=JHK_DATA:XNB_SYSTEM,USERS:XNB_SYSTEM tables=ahxnb.AD71 include=index,constraint,trigger,statistics

Import: Release 11.2.0.4.0 - Production on Thu Mar 11 20:54:05 2021

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"."20210311_ahxnb_ad71" successfully loaded/unloaded
Starting "SYSTEM"."20210311_ahxnb_ad71": system/******** job_name=20210311_ahxnb_ad71 directory=DPDATA dumpfile=ahxnb_20210309_%U.dmp logfile=20210311_ahxnb_impdp_ad71_idx.log PARALLEL=6 remap_schema=AHXNB:AHXNB remap_tablespace=JHK_DATA:XNB_SYSTEM,USERS:XNB_SYSTEM tables=ahxnb.AD71 include=index,constraint,trigger,statistics
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/TRIGGER
ORA-39082: Object type TRIGGER:"AHXNB"."SBTBI_AD71" created with compilation warnings
ORA-39082: Object type TRIGGER:"AHXNB"."SBTBI_AD71" created with compilation warnings
ORA-39082: Object type TRIGGER:"AHXNB"."SBTAI_AD71" created with compilation warnings
ORA-39082: Object type TRIGGER:"AHXNB"."SBTAI_AD71" created with compilation warnings
ORA-39082: Object type TRIGGER:"AHXNB"."SBTAU_AD71" created with compilation warnings
ORA-39082: Object type TRIGGER:"AHXNB"."SBTAU_AD71" created with compilation warnings
ORA-39082: Object type TRIGGER:"AHXNB"."SBTAD_AD71" created with compilation warnings
ORA-39082: Object type TRIGGER:"AHXNB"."SBTAD_AD71" created with compilation warnings
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "SYSTEM"."20210311_ahxnb_ad71" completed with 8 error(s) at Thu Mar 11 20:54:40 2021 elapsed 0 00:00:34

  后续:

       采用该办法后,data_only导入大约3小时,追加索引和约束大约10小时。

        

        遇到的问题1:

  ORA-31693: Table data object "AHXNB"."AC63":"AAB301_341602"."AAB301_341602_P2014" failed to load/unload and is being skipped due to error:
  ORA-29913: error in executing ODCIEXTTABLEOPEN callout
  ORA-39077: unable to subscribe agent ORA-39077: unable to subscribe agent KUPC$A_1_163050148848000 to queue "KUPC$C_1_20210312150031"
  ORA-24067: exceeded maximum number of subscribers for queue SYS.KUPC$C_1_20210312150031

        后续发现该问题跟impdp导入过程中parallel参数有关系(过大?),后面通过配置parallel=1重新导入前面因出错未导入的数据。怀疑ORA-24067是一个BUG,留待后续继续观察测试。

        遇到的问题2:

        在解决问题1,补数据的时候遇到:

  ORA-31693: Table data object "AHXNB"."AC63":"AAB301_341602"."AAB301_341602_P2014" failed to load/unload and is being skipped due to error:
  ORA-04098: trigger 'AHXNB.SBTBI_AC63' is invalid and failed re-validation

        将该触发器disable后,数据顺利导入。后续重新enable该触发器

-------------------unusable index

1.纯数据导入,即content=data_only;

  2.追加索引,即include=index,constraint;

    

       导入过程中,发现:

  ORA-39083: Object type INDEX:"WXJZCSK"."IDX_ACD8_PRSENO" failed to create with error:
  ORA-01157: cannot identify/lock data file 5050 - see DBWR trace file
  ORA-01110: data file 5050: '+DATADG/CXJBDB/B24267126E548D42E0531A14580AE2EF/TEMPFILE/temp.1674.1067731087'

  Failing sql is:
  CREATE UNIQUE INDEX "WXJZCSK"."IDX_ACD8_PRSENO" ON "WXJZCSK"."ACD8" ("PRSENO") REVERSE PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "AHXNB" PARALLEL 1

  可见,使用impdp追加索引的过程中,哪怕是在impdp语句中配置了parameter参数大于1,建索引的过程parallel依然为1(这或许也是bug)。

       进一步的优化思路:

       1)小表直接导入,大表导入数据前先禁用索引和约束;

        比如:

  alter index SYS_C00XXXXX unusable;
  alter table TESTXX disable constraint SYS_C00XXXX;

  注意:如果表很大的话,主键还有其他非空约束,建议不要disable。如果disable了,一方面减少了导入时的数据唯一性和非空校验,另一方面enable约束的时间也是非常长的。

       2)然后使用数据泵导入数据;

  导入过程中有一个报错,提示跳过前面被设置成unsable的索引:

  ORA-39817: index CLCTCXXX.STAF_XXX_NO was ignored due to:

      SKIP_UNUSABLE_INDEXES requested and index segment was initially unusable

       3)最后并行重建索引,激活约束;

  alter index idx_XXXXX rebuild online compute statistics parallel 16;
  alter index idx_XXXXX noparallel;

      alter table TESTXX enable constraint SYS_C00XXXXX;
 

        小结:

   在数据导入过程中,挑出比较大的表进行处理。并行创建索引速度明显快很多,总体的数据导入快了很多。经过这样处理,导入总时间缩短到10小时以内。

-----------------

impdp 把表数据和索引分别导入不同的表空间

一、数据导出
expdp test/test directory=dump_dir dumpfile=test.dmp logfile=test_expdp.log tables=userinfo
——利用expdp 语句导出具体数据,如果是导出整个用户下数据,去掉 tables 参数

二、把数据导入数据表空间
impdp test/test directory=dump_dir dumpfile=test.dmp logfile=impdp_data.log remap_tablespace=system:datatb exclude=index
注释:
remap_tablespace=system:datatb ——更换数据的原system表空间为datatb数据表空间
exclude=index ——导入过程中不创建索引,导入除索引外的其它所有对象

三、把索引创建到指定的索引表空间
impdp test/test directory=dump_dir dumpfile=test.dmp logfile=impdp_index.log remap_tablespace=system:idxtb include=index
注释:
remap_tablespace=system:idxtb 更换索引表空间
include=index 创建索引,仅仅导入索引

四、查询确认
select segment_name,tablespace_name from dba_segments where owner=‘TEST’;
通过以上语句确认表数据和索引数据是否导入到指定的表空间中。

一个项目中需要在oracle数据库某个用户下导出1000多个表,导入到测试库做数据分析测试。很少遇到需要导出这么多表的情况,通常都是按schema导出,或者整库导出。考虑到expdp中include参数可以附带查询语句,本次遇到的需要导出大量具体表的建议思路:

  1) 在数据库中建一个表exptable,把需要导出表的表明插入到该表中;

  2)利用expdp导出命令的include参数附带select语句查询exptable表,获得需要导出的表名;

  3)开始导出。

       过程记录如下:

      1 在数据库中建立一个导出列表exptable

       create table exptable (id number(10),tablename varchar2(20));

      2 使用sql*load工具把需要导出的表的名称输入到exptable中:

      2.1 把需要导出的表名另存为txt文本,id和表名之间用空格隔开,每行以逗号结尾;   

      2.2 创建ctl文件:

      [oracle@jxsbwxdb1 ~]$ cat a.ctl

  load data
  infile '/home/oracle/exptable.txt'
  append into table jxsi.exptable
  fields terminated by ',' trailing nullcols
  (id,tablename)

      2.3 使用命令sqlldr输入数据

      sqlldr jxsi/****** control=a.ctl

      

SQL*Loader: Release 11.2.0.4.0 - Production on Wed Feb 26 22:39:04 2020

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

Control File: a.ctl
Data File: /home/oracle/exptable.txt
Bad File: exptable.bad
Discard File: none specified

(Allow all discards)

Number to load: ALL
Number to skip: 0
Errors allowed: 50
Bind array: 64 rows, maximum of 256000 bytes
Continuation: none specified
Path used: Conventional

Table JXSI.EXPTABLE, loaded from every logical record.
Insert option in effect for this table: APPEND
TRAILING NULLCOLS option in effect

Column Name Position Len Term Encl Datatype
------------------------------ ---------- ----- ---- ---- ---------------------
ID FIRST * , CHARACTER
TABLENAME NEXT * , CHARACTER


Table JXSI.EXPTABLE:
1056 Rows successfully loaded.
0 Rows not loaded due to data errors.
0 Rows not loaded because all WHEN clauses were failed.
0 Rows not loaded because all fields were null.


Space allocated for bind array: 33024 bytes(64 rows)
Read buffer bytes: 1048576

Total logical records skipped: 0
Total logical records read: 1056
Total logical records rejected: 0
Total logical records discarded: 0

Run began on Wed Feb 26 22:39:04 2020
Run ended on Wed Feb 26 22:39:04 2020

Elapsed time was: 00:00:00.13
CPU time was: 00:00:00.01

       查询数据确认是否正确导入:

SQL> select count(*) from exptable;

COUNT(*)
----------
1056

  

       3.expdp导出语句

       

expdp system/****** parfile=exptable.par

cat exptable.par

dumpfile=20200226_exptable_%U.dmp
logfile=20200226_exptable.log
schemas=jxsi
directory=DPDATA
PARALLEL=4
COMPRESSION=all
cluster=N
include=TABLE:"IN (select tablename from exptable where tablename is not null)"

或者:

expdp jxsi/****** directory=DPDATA dumpfile=20200226_exptable_%U.dmp schemas=jxsi include=table:\"in \(select tablename from exptable \)\" logfile=20200226_exptable.log cluster=N compression=all PARALLEL=4

  

Export: Release 11.2.0.4.0 - Production on Wed Feb 26 22:40:52 2020

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, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
FLASHBACK automatically enabled to preserve database integrity.
Starting "JXSI"."SYS_EXPORT_SCHEMA_02": jxsi/******** directory=DPDATA dumpfile=20200226_exptable_%U.dmp schemas=jxsi include=table:"in (select tablename from exptable )" logfile=20200226_exptable.log cluster=N compression=all PARALLEL=4
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 220.7 GB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/10091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

协智优能技术负责人15-20K面经

这家公司是初创公司,一个小办公室,面试体验还不错,面试流程:1、进去先做笔试题,笔试题有前端,ai,java,小程序,开发流程 2、然后是面试官面试 【笔试题】 1、session和coo…

使用 Docker 部署 VS Code in The Browser

1)介绍 GitHub:https://github.com/coder/code-server 在日常学习工作中,Vscode 已成为我们首选的代码编辑器。然而,其局限性在于当我们从家到公司移动时,难以保持连续的编码体验。针对这一痛点,虽然市面上…

oracle 数据库与服务、实例与SID、表空间、用户与表模式

一、数据库与数据库服务: 概念:就是一个数据库的标识,在安装时就要想好,以后一般不修改,修改起来也麻烦,因为数据库一旦安装,数据库名就写进了控制文件,数据库表,很多地方都会用到这个数据库名。是数据库系统的入口,它会内置一些高级权限的用户如SYS,SYSTEM等。我们…

11.买卖股票的最佳时机Ⅰ

文章目录 题目简介题目解答解法一:一次遍历代码:复杂度分析: 题目链接 大家好,我是晓星航。今天为大家带来的是 买卖股票的最佳时机面试题Ⅰ 相关的讲解!😀 题目简介 题目解答 解法一:一次遍历…

怎么把手机ip地址变成了外省

在日常使用中,有时我们可能因为某些原因需要快速切换手机的IP地址,特别是当需要从一个省份切换到另一个省份的IP时。这种需求可能来源于网络访问限制、地理位置相关服务的使用、或者网络安全等方面的考虑。那么,怎么把手机IP地址变成外省呢&a…

Adobe Premiere Pro v24.3.0 解锁版 (领先的视频编辑软件)

前言 Adobe Premiere Pro(简称PR)是一款知名的专业视频编辑软件,数字视频剪辑软件。主要用来编辑视频和音频,可以在RGB和YUV色彩空间中以高达32位色彩的视频分辨率对4K和更高质量的视频文件进行编辑,支持VST音频插件和…

处理用户输入

目录 一、传递参数 1.1 读取参数 1.2 读取脚本名 二、跟踪参数 三、移动参数 四、处理选项 4.1 查找选项 4.1.1 处理简单选项 4.1.2 分离参数和选项 4.1.3 处理含值的选项 五、选项标准化 5.1 使用 getopt 命令 5.1.1 命令格式 5.1.2 在脚本中使用getopt 5.2 使用…

C++ 搜索二叉树

目录 1.二叉搜索树概念 2. 实现二叉搜索树 2.1. 二叉搜索树的插入 2.2查找 2.3删除节点 3.二叉树的应用(KV结构) 1.二叉搜索树概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为…

Web界面加持!数据库备份神器,助你轻松备份数据!

使用这款带有Web界面的数据库备份神器,你可以轻松设置定时备份,确保数据安全无忧。备份结果即时通知,让你随时掌握备份状态。备份完成后,你将收到备份结果通知。无论是成功备份还是出现错误,你都能及时了解备份情况&am…

自适应熔断限流揭秘

原创 Chasen 拍码场 前言 自适应熔断与限流是在分布式系统中常用的机制,用于保护系统免受服务雪崩效应与突发流量影响。它能够根据系统的负载情况和性能指标自动调整限流策略,以确保系统能提供稳定可靠的服务,目前在业内已经有了不少的探索…

Mysql面试高频问题

MySQL中,如何定位慢查询? 可以部署运维的监控系统Skywalking ,在展示的报表中可以看到是哪一个接口比较慢,并且可以分析这个接口哪部分比较慢,这里可以看到SQL的具体的执行时间,所以可以定位是哪个sql出了问题如果&a…

代码无界,创新无限!华为云开发者日 · 广州站来了!

5月23日,2024年首场华为云开发者日HDC.Cloud Day将在广州盛大举行。这场技术派对将为开发者们带来一场无与伦比的技术盛宴。在这里,开发者们将有机会现场聆听行业专家的精彩分享,深度了解众多前沿产品的最新技术和功能,并与行业专…

Python文件转exe文件

要将Python脚本(.py 文件)转换为可执行文件(.exe 文件),你通常会使用第三方工具,如 PyInstaller。下面是一个简单的步骤说明,演示如何使用 PyInstaller 将Python脚本转换为Windows上的可执行文件…

正则多个不同的值并替换成对应的不同目标值

一、需求 87101010 替换为86411010,88101010替换为86421010,89101010替换为86431010,96101010替换为86441010,如何查找和替换一个表达式实现。 不想要在编辑器里单独查找87101010 替换为86411010,这样要操作五次&…

Sass语法介绍-运算

04 【Sass语法介绍-运算】 1.前言 运算是一种通过已知量可能的组合,获得新的量的行为。Sass 中也为我们提供了各种各样的运算,以便我们更好的处理样式代码。本节我们将学习 Sass 中的数字运算、关系运算、除法运算、颜色运算、字符串运算等等… 2.什么…

OSPF虚链路

原理概述 通常情况下,一个OSPF网络的每个非骨干区域都必须与骨干区域通过ABR路由器直接连接,非骨干区域之间的通信都需要通过骨干区域进行中转。但在现实中,可能会因为各种条件限制,导致非骨干区域和骨干区域无法直接连接&#x…

[muduo网络库]——muduo库三大核心组件之 Poller/EpollPoller类(剖析muduo网络库核心部分、设计思想)

接着上文,[muduo网络库]——muduo库三大核心组件之Channel类(剖析muduo网络库核心部分、设计思想),本章我们来学习muduo网络库中第二大核心组件Poller/EpollPoller类。 先回顾一下三大核心组件之间的关系。 接着我们进入正题。 P…

解决VScode -正在本地下载 VS Code 服务器

不知道怎么回事再次连接服务器的时候一直卡在这里了,查看输出信息发现一直卡在下载处,报错信息如图1,输出信息如图2。 1.报错信息 图1 报错信息 图2 输出信息 2.尝试 【已解决】设置SSH主机:VS Code-正在本地下载 VS Code 服务器…

javascript入门基础(一)

js是什么:是一门运行在客户端(浏览器)的编程语言,实现人机交互的效果 js组成是什么:ECMAScript和web APIs(DOM文档对象模型和BOM浏览器对象模型) console.log():控制台输出语法,程…

代码随想录算法训练营第二十五天 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 题目链接/文章讲解: 代码随想录 视频讲解: 你修剪的方式不对,我来给你纠正一下!| LeetCode:669. 修剪二叉搜索树_哔哩哔哩_bilibili 解题思路 在上一题的删除二叉树节点中,我们通过在…