DM8数据库逻辑导出工具dexp/dimp中EXCLUDE参数详解

 更新时间:2026年07月28日 10:57:55   作者:Seal^_^  
逻辑导出dexp和逻辑导入dimp是DM数据库的两个命令行工具,分别用来实现对DM数据库的逻辑备份和逻辑还原,这篇文章主要介绍了DM8数据库逻辑导出工具dexp/dimp中EXCLUDE参数的相关资料,需要的朋友可以参考下

一、EXCLUDE参数概述

在DM8数据库的逻辑导出(dexp)和导入(dimp)工具中,EXCLUDE参数是一个非常实用的功能,它允许我们在导出或导入过程中排除特定的数据库对象。这个参数特别适合以下场景:

  • 需要排除临时表或测试表
  • 不想导出索引或约束等对象
  • 需要选择性迁移部分数据库对象
  • 排除特定模式下的对象

二、EXCLUDE参数语法详解

EXCLUDE参数支持三种语法格式:

1. 基本排除语法

EXCLUDE=[(]<对象种类名>{,<对象种类名>}[)]

支持排除的对象类型

  • CONSTRAINTS(约束)
  • INDEXES(索引)
  • ROWS(数据行)
  • TRIGGERS(触发器)
  • GRANTS(权限)
  • VIEWS(视图)
  • PROCEDURE(存储过程)
  • PACKAGE(包)
  • SEQUENCE(序列)
  • TABLES(表)

示例

# 排除约束和索引
EXCLUDE=(CONSTRAINTS,INDEXES)

# 排除触发器和权限
EXCLUDE=TRIGGERS,GRANTS

2. 类型指定语法

EXCLUDE=TYPE:name1,name2

示例

# 排除table1和table2表
EXCLUDE=TABLES:table1,table2

# 排除sch1和sch2模式
EXCLUDE=SCHEMAS:sch1,sch2

3. 条件过滤语法

EXCLUDE=TYPE:cond{,TYPE:cond}

条件类型

  • LIKE:模糊匹配
  • IN:精确匹配

示例

# 排除以TEMP开头的表和TEST1表
EXCLUDE="TABLES:\"LIKE 'TEMP%'\",TABLES:\"IN ('TEST1')\""

三、不同导出模式下的EXCLUDE使用

1. 全库导出(FULL)模式

在全库导出模式下,可以使用所有EXCLUDE语法格式。

示例

./dexpdp USERID=SYSDBA/SYSDBA@192.168.234.10:5237 DIRECTORY=DM_BACKUP FILE=full.dmp LOG=full.log FULL=Y EXCLUDE="TABLES:\"LIKE 'TEMP%'\",SCHEMAS:\"LIKE 'SYS%'\""
  • TABLES:“LIKE ‘TEMP%’”:排除所有表名以 TEMP 开头的表(如 TEMP_TABLE、TEMP_DATA 等)。
  • SCHEMAS:“LIKE ‘SYS%’”:排除所有模式名以 SYS 开头的模式(如 SYSDBA、SYSTEM 等系统模式下的对象)。

2. 模式级(SCHEMAS)导出

在模式级导出时,EXCLUDE=SCHEMAS:<模式名>将无效。

示例

./dexpdp USERID=SYSDBA/SYSDBA@192.168.234.10:5237 DIRECTORY=DM_BACKUP FILE=schema.dmp LOG=schema.log SCHEMAS=MYDMDB EXCLUDE="TABLES:\"IN ('EMPLOYEES','DEPARTMENTS')\""

3. 表级(TABLES)导出

在表级导出时,可以使用EXCLUDE排除特定的列、约束等。

示例

./dexpdp USERID=SYSDBA/SYSDBA@192.168.234.10:5237 DIRECTORY=DM_BACKUP FILE=tables.dmp LOG=tables.log TABLES=MYDMDB.EMPLOYEES,MYDMDB.DEPARTMENTS EXCLUDE="(CONSTRAINTS,INDEXES)"
  • 指定仅导出 MYDMDB 模式下的 EMPLOYEES 和 DEPARTMENTS 表。
  • 排除导出表的约束(如主键、外键)和索引。

五、注意事项

  1. 转义字符:在Linux/Unix系统中,特殊字符如括号、引号需要正确转义

    # 正确写法
    EXCLUDE=\"TABLES:\\\"LIKE \'TEMP%\'\\\"\"
    
    # 或使用单引号
    EXCLUDE='TABLES:"LIKE ''TEMP%''"'
    
  2. 模式前缀:在表级导出时,表名需要包含模式前缀;但在EXCLUDE中不需要

  3. 权限要求:执行导出的用户需要有足够的权限访问要导出的对象

  4. 性能影响:排除大量对象可能会影响导出性能

六、常见问题解答

Q1:为什么我的EXCLUDE参数没有生效?
A:可能原因:

  • 在模式级导出中使用了EXCLUDE=SCHEMAS
  • 表名拼写错误
  • 特殊字符没有正确转义

Q2:如何同时排除多种类型的对象?
A:使用逗号分隔:

EXCLUDE="TABLES:\"LIKE 'TEMP%'\",CONSTRAINTS,INDEXES"

Q3:能否在dimp导入时也使用EXCLUDE?
A:可以,语法与dexp相同

七、总结

EXCLUDE参数是DM8逻辑导出工具中非常强大的功能,掌握它的使用方法可以让我们更灵活地控制导出过程。记住关键点:

  1. 根据导出模式选择合适的EXCLUDE语法
  2. 注意特殊字符的转义
  3. 在生产环境使用前,先在小规模测试环境验证

到此这篇关于DM8数据库逻辑导出工具dexp/dimp中EXCLUDE参数的文章就介绍到这了,更多相关DM8逻辑导出dexp/dimp内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • sql连接查询语句中on、where筛选的区别总结

    sql连接查询语句中on、where筛选的区别总结

    接触Sql语句时间挺长时间了,听他人说过sql语句的连接查询,但一直没有认真研究和使用过!下面这篇文章主要给大家介绍了关于sql连接查询语句中on、where筛选两者之间区别的相关资料,文中通过图文介绍的非常详细,需要的朋友们下面来一起看看吧。
    2017-07-07
  • 安装navicat最新详细流程

    安装navicat最新详细流程

    Navicat是一款独立的数据库管理工具,支持多种数据库管理系统,包括MySQL、MariaDB、Oracle、PostgreSQL、SQLite等,下面这篇文章主要给大家介绍了关于安装navicat最新详细流程,需要的朋友可以参考下
    2023-06-06
  • 使用navicat导入sql文件的方法步骤

    使用navicat导入sql文件的方法步骤

    这篇文章主要介绍了使用navicat导入sql文件的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 使用 Navicat 创建数据库并用JDBC连接的操作方法

    使用 Navicat 创建数据库并用JDBC连接的操作方法

    这篇文章主要介绍了使用 Navicat 创建数据库并用JDBC连接的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • sql left join 命令详解

    sql left join 命令详解

    左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
    2009-07-07
  • GaussDB数据库使用COPY命令导入导出数据的场景分析

    GaussDB数据库使用COPY命令导入导出数据的场景分析

    使用COPY命令可以方便地导入数据到GaussDB,GaussDB还提供了其他数据导入工具和功能,如使用GDS导入数据、使用INSERT多行插入、使用gsql元命令导入数据、ETL工具集成等,以满足不同场景下的数据导入需求,对GaussDB COPY命令相关知识感兴趣的朋友一起看看吧
    2024-01-01
  • clickhouse系统表日志清理方式详解

    clickhouse系统表日志清理方式详解

    这篇文章主要为大家介绍了clickhouse系统表日志清理方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 常见的SQL优化面试专题大全

    常见的SQL优化面试专题大全

    面试中如何被问到SQL优化,看这篇就对了,下面这篇文章主要给大家介绍了关于SQL优化面试的相关资料,文中将答案介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • 图文详解如何在navicat中导入excel表格数据

    图文详解如何在navicat中导入excel表格数据

    Navicat可以方便的操作各种数据库,也提供了丰富的导入导出功能,下面这篇文章主要给大家介绍了关于如何在navicat中导入excel表格数据的相关资料,需要的朋友可以参考下
    2023-02-02
  • 利用Navicat Premium导出数据库表结构信息至Excel的方法

    利用Navicat Premium导出数据库表结构信息至Excel的方法

    这篇文章主要介绍了利用Navicat Premium导出数据库表结构信息至Excel的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论