欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

达梦数据库数据泵使用简介

程序员文章站 2022-06-02 20:12:37
...

达梦数据库数据泵的使用

达梦数据库的数据泵即dexp和dimp。用来进行数据的导入和导出。与oracle不同的是,达梦数据库的数据泵工具不需要建立一个逻辑目录,而且命令启动时需要在安装目录的bin目录下以./dexp或者./dimp为启动命令。
达梦数据库的导入导出分为四种级别:

  1. 数据库级(FULL):导出或导入整个数据库中的所有对象。
  2. 用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。 
  3. 模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。 
  4. 表级(TABLE):导出或导入一个或多个指定的表或表分区
    下面举个例子
    例如,将用户名和密码均为SYSDBA,IP地址为192.168.0.248,端口号为8888的 数据库采用FULL方式完全导出。导出文件名为db_str.dmp, 导出的日志文件名为db_str.log,导出文件的路径为/mnt/dexp/data。
./dexp USERID=SYSDBA/SYSDBA@192.168.0.248:8888 FILE=db_str.dmp DIRECTORY=/mnt/dexp/data  LOG=db_str.log FULL=Y  

这里是全库导出,也可以按照用户owen=owernname,或者按照schemas=shcemasname,或者tables=tablename1,tablename2等实现按级别导出。如果file后面跟着文件所在路径,则directory可以省略掉不用再加。log后面可以接路径,将导出的日志放到指定的log文件夹内。
支持QUERY过滤条件导出数据

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=OTHER.READER QUERY="WHERE AGE=19" 

支持多线程导出文件
PARALLEL用于指定导出的过程中所使用的线程数目。可选参数,缺省为单线程。如果 CPU核心数为N的话,那一般来说PARALLEL为N或者N+1最合适。

./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp PARALLEL=2 

导入方式与导出类似,用哪种方式导出的就需要用哪种方式导入。
例如,之前导出的文件路径为:FILE=/mnt/data/dexp/db_str.dmp,那么导入文件 可以写成如下所示:

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log DIRECTORY=/mnt/data/dimp

导入也是分为四个级别
数据库级别

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dimp

用户级别

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY=/mnt/data/dimp

模式级别

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log SCHEMAS=USER01DIRECTORY=/mnt/data/dimp

表级别

./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dimp

其实只要遵循一个原则就是用何种方式导出的就需要用何种方式导入。
在我们导入数据时可能会发生导入表已存在的情况,这时候我们需要用到一个参数table_exists_action={skip,append,truncate,replace}
SKIP:跳过此表。
APPEND:直接向现有表中导入数据
TRUNCATE:先删除现有表中的数据,再向表中导入数据 REPLACE:先删除现有表,再导数据