标签: datapump

数据泵导出如何在 linux 上限制其资源使用?

导出多个用户会导致 CPU 和 I/O 使用率过高。我可以使用资源管理器减轻 CPU 使用率的影响并将导出会话设置为低优先级组,但如何限制磁盘 I/O?我没有并行运行该操作,并且已经阅读了 Oracle 的Datapump Performance文档。还有什么我可以做的吗?

oracle oracle-11g-r2 linux datapump export

8
推荐指数
1
解决办法
988
查看次数

EXPDB 参数文件中的注释

有没有办法在数据泵导出参数文件中添加注释?

oracle oracle-11g-r2 datapump export comments

8
推荐指数
1
解决办法
8094
查看次数

如何查找数据泵 dmp 文件的模式名称?

我获得了一个 DMP 数据泵导出文件,可以导入到我的本地 Oracle 实例中。我试过运行这个命令行:

impdp full=Y 目录=DATA_PUMP_DIR dumpfile=MyDumpFile.dmp logfile=import.log

我收到错误:

ORA-31655: 没有为作业选择数据或元数据对象

ORA-39154: 来自外部模式的对象已从导入中删除

并且不会导入任何数据。

从我在谷歌上搜索到的,一个可能的原因是我需要指定remap_schama. 但我不知道 dmp 文件中架构的名称是什么。有什么简单的方法可以查到吗?

编辑:我没有找到解决这个问题,但我没有找到一个解决办法......我就找到了谁做的DMP的家伙,并且了模式名出来了。remap_schema根据他的定义指定,Hey Presto!

oracle oracle-11g-r2 datapump impdp

8
推荐指数
1
解决办法
2万
查看次数

数据泵导出如何在 Windows 上限制其资源使用?

导出多个用户会导致 CPU 和 I/O 使用率过高。我可以使用资源管理器减轻 CPU 使用率的影响并将导出会话设置为低优先级组,但是如何限制磁盘 I/O?我没有并行运行该操作,并且已经阅读了 Oracle 的 Datapump Performance 文档。还有什么我可以做的吗?

这是在 Windows 2008 R2 x64 上。

oracle windows oracle-11g-r2 datapump export

7
推荐指数
1
解决办法
2185
查看次数

如何使用impdp替换和覆盖Oracle中的所有现有对象以进行完整的数据库导入?

我想将数据库中的所有现有对象,而不仅仅是表,替换到我当前的数据库中。

我使用参数full=yes作为系统用户运行 expdp ,我datapump_imp_full_database在以 sysdba 登录时授予了系统用户,从我从中导入的实例。我使用参数在目标数据库上运行了impdp table_exists_action=replace,但是(可以理解)只替换了现有表,而没有替换过程、函数、视图。

是否有table_exists_action所有对象的等价物?如果没有,我怎样才能做到这一点?

这两个数据库都是 Windows 10 上的 Oracle 12c。

oracle datapump impdp expdp oracle-12c

7
推荐指数
2
解决办法
4万
查看次数

如何终止陷入 DEFINING 状态的 Oracle DataPump expdp 作业?

我的工作失败,因为转储文件已经存在。现在它停留在 DEFINING 状态。

我该如何阻止/杀死它?

declare
h1 number;
BEGIN
h1 := DBMS_DATAPUMP.ATTACH('EXPORT_TABLE_2017_1205_1402',user);
--DBMS_DATAPUMP.STOP_JOB (h1,1,0);
DBMS_DATAPUMP.stop_job (h1, 1);
DBMS_DATAPUMP.detach (h1);
END;
/

  2    3    4    5    6    7    8    9  declare
*
ERROR at line 1:
ORA-31626: job does not exist
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_DATAPUMP", line 1137
ORA-06512: at "SYS.DBMS_DATAPUMP", line 3873
ORA-06512: at line 4
Run Code Online (Sandbox Code Playgroud)

使用 expdp 获取分段错误:

 expdp stgdata@ORADB1S attach=EXPORT_TABLE_2017_1205_1402

Export: Release 11.2.0.3.0 - Production on Tue Dec 5 14:56:11 2017

Copyright (c) 1982, 2011, Oracle …
Run Code Online (Sandbox Code Playgroud)

oracle datapump

5
推荐指数
1
解决办法
1万
查看次数

从包内调用 DBMS_DATAPUMP 所需的权限

我正在尝试编写一个过程(在包内),该过程调用DBMS_DATAPUMP将现有模式复制到不同的模式中。该代码在从匿名块执行时有效,但从过程中我收到以下错误。

[Error] Execution (1: 1): ORA-31626: job does not exist
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_DATAPUMP", line 1137
ORA-06512: at "SYS.DBMS_DATAPUMP", line 5285
ORA-06512: at "UTILITY.MANAGE_SCHEMA", line 71
ORA-06512: at line 1
Run Code Online (Sandbox Code Playgroud)

此错误是从DBMS_DATAPUMP.OPEN调用中生成的。由于它在匿名块中工作,我假设这实际上是一个权限问题(即需要通过角色授予的一个或多个权限)。但是,我找不到有关使用数据泵所需的权限的任何文档。

这个问题归结为:需要明确授予用户/模式哪些权限才能使该模式中的包能够调用DBMS_DATAPUMP


包的主人既有IMP_FULL_DATABASEEXP_FULL_DATABASE角色,以及该DBA角色。

程序代码如下。

   PROCEDURE copy_schema (p_source_schema VARCHAR2,
                          p_target_schema VARCHAR2,
                          p_asynchronous BOOLEAN := FALSE,
                          p_link_name VARCHAR2 := 'prddb') IS
      dph NUMBER;
      v_source_schema VARCHAR2 (30)
         := UPPER (DBMS_ASSERT.simple_sql_name (p_source_schema));
      v_target_schema VARCHAR2 (30)
         := UPPER (DBMS_ASSERT.simple_sql_name …
Run Code Online (Sandbox Code Playgroud)

oracle oracle-11g-r2 datapump

4
推荐指数
1
解决办法
2万
查看次数

impdp 期望错误的文件路径

概括:

我正在使用 expdp / impdp 从测试/演示数据库 (Oracle 11.2) 导出数据库,并将其导入到我自己机器上的 Oracle Express (11g) 实例中。

导入失败,因为它尝试在源服务器的位置创建导入的数据库文件。从字面上看,我的源 temo / test 数据库位于带有 E:\ 驱动器的机器上。但是我的电脑只有一个 C:\ 驱动器。我收到错误,因为它在 E:\ 驱动器上找不到东西。

这个错误感觉就像一条红鲱鱼。要么我误用了我的工具,要么我收到了一条稍微虚假的错误消息。

问题:

  • 我是否运行 expdp 错误,并以某种方式包含完整文件路径
  • 我真正的问题是 SID 不对齐(“演示”与“XE”)
  • 如果我需要重新映射某些东西,那具体是什么?

非常感谢。

完整说明

我在演示服务器上运行这个命令:

expdp name/password@localhost:1521/demo full=y directory=DATA_PUMP_DIR dumpfile=demo.dmp logfile=exportDemo.log
Run Code Online (Sandbox Code Playgroud)

我已将该文件复制到我的笔记本中,复制到 Oracle 中的相应文件夹 (C:\oraclex\app\oracle\admin\XE\dpdump)。然后我运行这个命令:

impdp SYSTEM/password@localhost:1521/XE  directory=DATA_PUMP_DIR dumpfile=demo.dmp logfile=impdpDemo.log full=y
Run Code Online (Sandbox Code Playgroud)

该命令运行了一段时间,但出现错误:

;;; 
Import: Release 11.2.0.2.0 - Production on Sat Jun 11 10:32:21 2016

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

    ;;; 
    Connected …
Run Code Online (Sandbox Code Playgroud)

oracle datapump oracle-xe

2
推荐指数
1
解决办法
3493
查看次数

Oracle expdp 将 INDEXES 置于 LOGGING 模式

我在架构 LARRY 中创建了一个表

create global temporary table TT1 (N number);
create index TT_IX1 on TT1 (N);
Run Code Online (Sandbox Code Playgroud)

然后导出它,并尝试在架构 LARRY2 中导入:

expdp LARRY/LARRY   directory=DATA_PUMP_DIR dumpfile=01.dmp logfile=01.dmp.exp tables=TT1
impdp LARRY2/LARRY2 directory=DATA_PUMP_DIR dumpfile=01.dmp logfile=01.dmp.imp remap_schema=LARRY:LARRY2 transform=DISABLE_ARCHIVE_LOGGING:Y,oid:N
Run Code Online (Sandbox Code Playgroud)

但是我在 Oracle 12c 中遇到了一个错误:

Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
ORA-39083: Object type INDEX:"LARRY2"."TT_IX1" failed to create with error:
ORA-14451: unsupported feature with temporary table
Failing sql is:
 ALTER INDEX "LARRY2"."TT_IX1"  LOGGING
Run Code Online (Sandbox Code Playgroud)

我也检查过

SELECT force_logging FROM v$database;
Run Code Online (Sandbox Code Playgroud)

它给NO.

我试图在互联网上搜索这个问题,但没有找到答案。我很好奇为什么 Oracle 尝试将 INDEXES(以及 TEMPORARY 表的索引)置于 …

oracle datapump impdp

2
推荐指数
1
解决办法
2155
查看次数

从转储文件加载外部表

我已经使用EXPDPprocess创建了一个转储文件。

我正在尝试使用上述转储文件创建一个外部表。

我正在使用以下语句来创建外部表:

CREATE TABLE HR.DATA_LOAD
(
"EMP_NO" NUMBER(10,0) NOT NULL ENABLE, 
    "EMP_NAME" VARCHAR2(20 BYTE), 
    "DEPT_ID" NUMBER(10,0), 
    "DEPT_NM" VARCHAR2(20 BYTE), 
    "DOJ" VARCHAR2(20 BYTE), 
    "LOCATION" VARCHAR2(20 BYTE), 
    "PHN_NUM" NUMBER(20,0), 
    "EMAIL" VARCHAR2(20 BYTE), 
    "COL1" VARCHAR2(20 BYTE), 
    "COL2" VARCHAR2(20 BYTE)
)
ORGANIZATIONAL EXTERNAL
(
  TYPE ORACLE_DATAPUMP
  DEFAULT DIRECTORY DATA_PUMP_DIR
  LOCATION ('exp_dumpfile.dmp')
);
Run Code Online (Sandbox Code Playgroud)

执行上述语句后,表已创建,但是当我发出SELECT语句查看数据时,出现以下错误:

CREATE TABLE HR.DATA_LOAD
(
"EMP_NO" NUMBER(10,0) NOT NULL ENABLE, 
    "EMP_NAME" VARCHAR2(20 BYTE), 
    "DEPT_ID" NUMBER(10,0), 
    "DEPT_NM" VARCHAR2(20 BYTE), 
    "DOJ" VARCHAR2(20 BYTE), 
    "LOCATION" VARCHAR2(20 BYTE), 
    "PHN_NUM" NUMBER(20,0), 
    "EMAIL" …
Run Code Online (Sandbox Code Playgroud)

oracle datapump

2
推荐指数
1
解决办法
1081
查看次数

导入后 Oracle DB 大小减少

我的数据库大小为 1TB,其完整导出大小为 300GB。

将数据库导入新环境后,数据库大小减少到 700GB。这可能是什么原因?

oracle datapump

1
推荐指数
1
解决办法
955
查看次数