news 2026/4/16 21:36:48

DM8共享集群数据库导出及导入之(dexp/dimp)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DM8共享集群数据库导出及导入之(dexp/dimp)

背景:

应用运行时间久了,两个库的数据差异较大,影响部分场景的测试验证工作。故需要将库秦迁移覆盖一下。

思路:

1、从原库A通过dexp方式导出数据文件(以用户的方式)。

2、在导入的库B新建用户及表空间,并赋权。

说明:因为业务还在跑,且数据库由空间,故现导如进来,数据处理完再切换数据源。

3、在B库通过dimp方式导入数据文件(以用户的方式)。

4、登录B库验证库及数据是否有问题。

开干:

1、从原库A通过dexp方式导出数据文件(可选一个相对空闲的节点操作)。

新建需要放置导出的文件目录。

执行导出语句
[qw@dsc2 ~]$ sudo -i [qw@dsc2:/root]# su - dmdba [dmdba@dsc2:/home/dmdba]$ mkir /dmbak/dmp [dmdba@dsc2:/home/dmdba]$ cd /dmbak/dmp [dmdba@dsc2:/dmbak/dmp]$ ll 总用量 0 [dmdba@dsc2:/dmbak/dmp]$ [dmdba@dsc2:/dmbak/dmp]$ cd /data/dmdbms/bin [dmdba@dsc2:/data/dmdbms/bin]$ nohup ./dexp SYSDBA/'"*********"'@127.0.0.1:15236 FILE=/dmbak/dmp/exp_****.dmp OWNER=USER COMPRESS=Y LOG_WRITE=Y LOG=/dmbak/dmp/exp_*****.log &

确认导出无报错,且文件完整可用。

2、在导入的库B新建用户及表空间,并赋权。

--创建表空间及用户 CREATE TABLESPACE ***** DATAFILE '+DMDATA/data/DSC/DAMENG/******.DBF' SIZE 102400 AUTOEXTEND ON NEXT 1024 MAXSIZE 0; create user ******** identified by "*******" DEFAULT TABLESPACE ******; grant public,resource,soi,vti to *****; --验证信息 SELECT * FROM V$TABLESPACE; SELECT * FROM DBA_USERS; --在达梦中,通常创建用户后模式会自动创建。你可以查询一下确认: SELECT * FROM DBA_SCHEMAS WHERE SCHNAME = '****'; --DROP USER MDMPOC CASCADE;

3、在B库通过dimp方式导入数据文件。

将A库导出的数据文件scp传输到B库,并建立相关目录。

执行SQL(可选一个相对空闲的节点操作)
nohup ./dimp SYSDBA/'"******"'@127.0.0.1:15236 FILE=/dmbak/dmp/exp_*****.dmp LOG=/dmbak/dmp/imp_******.log REMAP_SCHEMA=****:**** LOG_WRITE=Y &

确认导入日志文件无明显报错,不影响使用,导入完成。

4、登录B库验证库及数据是否有问题。

至此,完成数据的导出及导入。

总结:

我们的配置较高(128C1024G),整体达到预计,且未对业务造成明显的影响。

类型大小(启用压缩)耗时 s耗时 minCPU内存
dexp74G4564.164 s76.0720C50G
dimp74G12663.426 s211.0610c30G

学习说明:

导出:

nohup ./dexp SYSDBA/'"*********"'@127.0.0.1:15236 FILE=/dmbak/dmp/exp_****.dmp OWNER=USER COMPRESS=Y LOG_WRITE=Y LOG=/dmbak/dmp/exp_*****.log

1、尽量使用有dba账号权限的,避免无端的报错。

2、COMPRESS=Y 启用压缩,会消耗资源,但是文件明显小不少,使用默认的压缩比就可以。

3、LOG_WRITE=Y 实时输出日志到日志文件 本人第一次执行发现日志文件没记录,发现缺少这个参数。

导入:

nohup ./dimp SYSDBA/'"******"'@127.0.0.1:15236 FILE=/dmbak/dmp/exp_*****.dmp LOG=/dmbak/dmp/imp_******.log REMAP_SCHEMA=****:**** LOG_WRITE=Y &

1、注意这里的SCHEMA 如果schema一样,就不用写了

参数说明(重点关注标红的即可,其他保持默认)

./dexp help

[dmdba@dsc3:/data/dmdbms/bin]$ ./dexp help
dexp V8
version: 03134284368-20251212-306679-20149 Pack51
file_version: 29
格式: ./dexp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

例程: ./dexp SYSDBA/SYSDBA GRANTS=Y TABLES=(SYSDBA.TAB1,SYSDBA.TAB2,SYSDBA.TAB3)

USERID 必须是命令行中的第一个参数

关键字 说明(默认值)
--------------------------------------------------------------------------------
USERID 用户名/口令
格式: {<username>[/<password>] | /}[@<connect_identifier>][<option>] [<os_auth>]
参数:
<connect_identifier> ::= [<svc_name> | host[:port] | <unixsocket_file>]
<option> ::= #{<extend_option>=<value>[,<extend_option>=<value>]...}
<os_auth> ::= AS { SYSDBA | SYSSSO | SYSAUDITOR | USERS | AUTO }
示例: SYSDBA/SYSDBA@192.168.1.64:5236
注意: option参数的{}是为了封装参数之用,书写时需要保留
FILE 导出文件 (dexp.dmp)
DIRECTORY 导出文件所在目录
FULL 整库导出 (N)
OWNER 以用户方式导出 格式 (user1,user2,...)
SCHEMAS 以模式方式导出 格式 (schema1,schema2,...)
TABLES 以表方式导出 格式 (table1,table2,...)

FUZZY_MATCH TABLES选项是否支持模糊匹配 (N)
QUERY 用于导出表的过滤条件
格式 QUERY=[[schema1.]table1:]cond,[[schema2.]table2:]cond,...
PARALLEL 用于指定导出的过程中所使用的线程数目(1-100, 默认16)
TABLE_PARALLEL 用于指定导出的过程中表内的并发线程数目,MPP模式下会转换成单线程(1-50, 默认8)
TABLE_POOL 用于指定表的缓冲区个数(1-20, 默认8)
EXCLUDE 忽略指定的对象
格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS,VIEWS,PROCEDURE,PACKAGE,SEQUENCE,TABLES) or
EXCLUDE=TYPE:name1,name2 or
EXCLUDE=TYPE:cond,TYPE:cond
TYPE:SCHEMAS,TABLES,VIEWS,PROCEDURE,PACKAGE,SEQUENCE
INCLUDE 包含指定的对象
格式 INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS,VIEWS,PROCEDURE,PACKAGE,SEQUENCE,TABLES) or
INCLUDE=TYPE:name1,name2 or
INCLUDE=TYPE:cond,TYPE:cond
TYPE:SCHEMAS,TABLES,VIEWS,PROCEDURE,PACKAGE,SEQUENCE
CONSTRAINTS 导出约束 (Y)
TABLESPACE 导出表空间、表空间组定义和对象的表空间、表空间组存储项 (N)
GRANTS 导出权限 (Y)
INDEXES 导出索引 (Y)
TRIGGERS 导出触发器 (Y)
ROWS 导出数据行 (Y)
LOG 屏幕输出的日志文件
NOLOGFILE 不使用日志文件(N)
NOLOG 屏幕上不显示日志信息(N)
LOG_WRITE 日志信息实时写入文件(N)
DUMMY 交互信息处理(P): 打印(P),��有交互都按YES处理(Y),所有交互都按NO处理(N)
PARFILE 参数文件名
FEEDBACK 每 x 行显示进度 (0)
COMPRESS 导出数据是否压缩 (N)
COMPRESS_LEVEL 导出数据压缩等级 (0-9 默认1)
ENCRYPT 导出数据是否加密 (N)
ENCRYPT_PASSWORD 导出数据的加密密钥
ENCRYPT_NAME 加密算法的名称
FILESIZE 每个转储文件的最大大小
FILENUM 一个模板可以生成的文件数(1-99, 默认99)
DROP 导出后删除原表,但不级联删除 (N)
DESCRIBE 导出数据文件的描述信息,记录在数据文件中
COL_DEFAULT_SEPARATE 是否单独导出列默认值 (Y)
WITH_UR 是否允许脏读 (N)
SIMPLE_LOG 是否使用简要日志 (N)
FLASHBACK_SCN 用于重置会话快照的LSN
FLASHBACK_TIME 用于查找最接近的相应LSN值的时间
CTRL_INFO 控制信息(1:控制分区表约束在表定义导出,0:分区表约束分开导出,默认0)
CONFIG_FILE 配置文件
FILE_VERSION 指定导出版本(9-29)
HELP 打印帮助信息

./dimp help

[dmdba@dsc3:/data/dmdbms/bin]$ ./dimp help
dimp V8
version: 03134284368-20251212-306679-20149 Pack51
file_version: 29
格式: ./dimp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

例程: ./dimp SYSDBA/SYSDBA IGNORE=Y ROWS=Y FULL=Y

USERID 必须是命令行中的第一个参数

关键字 说明(默认值)
--------------------------------------------------------------------------------
USERID 用户名/口令
格式: {<username>[/<password>] | /}[@<connect_identifier>][<option>] [<os_auth>]
参数:
<connect_identifier> ::= [<svc_name> | host[:port] | <unixsocket_file>]
<option> ::= #{<extend_option>=<value>[,<extend_option>=<value>]...}
<os_auth> ::= AS { SYSDBA | SYSSSO | SYSAUDITOR | USERS | AUTO }
示例: SYSDBA/SYSDBA@192.168.1.64:5236
注意: option参数的{}是为了封装参数之用,书写时需要保留
FILE 导入文件名称 (dexp.dmp)
DIRECTORY 导入文件��在目录
FULL 整库导入 (N)
OWNER 以用户方式导入 格式 (user1,user2,...)
SCHEMAS 以模式方式导入 格式 (schema1,schema2,...)
TABLES 以表名方式导入 格式(table1,table2,...)

PARALLEL 用于指定导入的过程中所使用的线程数目(1-100, 默认16)
TABLE_PARALLEL 用于指定导入的过程中每个表所使用的子线程数目,在FAST_LOAD为Y时有效(1-16, 默认8)
IGNORE 忽略创建错误 (N)
TABLE_EXISTS_ACTION 需要的导入表在目标库中存在时采取的操作[SKIP | APPEND | TRUNCATE | REPLACE | TRUNCATE_CASCADE]
FAST_LOAD 是否使用dmfldr来导数据(N)
FLDR_ORDER 使用dmfldr是否需要严格按顺序来导数据(Y)
COMMIT_ROWS 批量提交的行数(5000)
EXCLUDE 忽略指定的对象
格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS,VIEWS,PROCEDURE,PACKAGE,SEQUENCE,TABLES,JOB) or
EXCLUDE=TYPE:name1,name2
TYPE:SCHEMAS,TABLES,VIEWS,PROCEDURE,PACKAGE,SEQUENCE
INCLUDE 包含指定的对象
格式 INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS,VIEWS,PROCEDURE,PACKAGE,SEQUENCE,TABLES,JOB) or
INCLUDE=TYPE:name1,name2
TYPE:SCHEMAS,TABLES,VIEWS,PROCEDURE,PACKAGE,SEQUENCE
GRANTS 导入权限 (Y)
CONSTRAINTS 导入约束 (Y)
INDEXES 导入索引 (Y)
TRIGGERS 导入触发器 (Y)
ROWS 导入数据行 (Y)
LOG 指定日志文件
NOLOGFILE 不使用日志文件(N)
NOLOG 屏幕上不显示日志信息(N)
LOG_WRITE 日志信息实时写入文件(N)
DUMMY 交互信息处理(P): 打印(P),所有交互都按YES处理(Y),所有交互都按NO处理(N)
PARFILE 参数文件名
FEEDBACK 每 x 行显示进度 (0)
COMPILE 编译过程, 程序包和函数(Y)
INDEXFILE 将表的索引/约束信息写入指定的文件
INDEXFIRST 导入时先建索引(N)
REMAP_SCHEMA 格式(SOURCE_SCHEMA:TARGET_SCHEMA)
将SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA中
ENCRYPT_PASSWORD 数据的加密密钥
ENCRYPT_NAME 加密算法的名称
SHOW/DESCRIBE 打印出指定文件的信息(N)
TASK_THREAD_NUMBER 用于设置dmfldr处理用户数据的线程数目
BUFFER_NODE_SIZE 用于设置dmfldr读入文件缓冲区大小(10)
TASK_SEND_NODE_NUMBER 用于设置dmfldr发送节点个数[16,65535]
LOB_NOT_FAST_LOAD 如果一个表含有大字段,那么不使用dmfldr,因为dmfldr是一行一行提交的(N)
PRIMARY_CONFLICT 主键冲突的处理方式[IGNORE|OVERWRITE|OVERWRITE2],默认报错
TABLE_FIRST 是否先导入表(N)
SHOW_SERVER_INFO 是否打印服务器信息(N)
IGNORE_INIT_PARA 忽略建库参数差异(0): CASE_SENSITIVE(1),LENGTH_IN_CHAR(2)
AUTO_FREE_KEY 导入数据完成后, 是否释放密钥(N)
REMAP_TABLE 格式(SOURCE_SCHEMA.SOURCE_TABLE:TARGET_TABLE)
将SOURCE_TABLE中的数据导入到TARGET_TABLE中
REMAP_TABLESPACE 格式(SOURCE_TABLESPACE:TARGET_TABLESPACE)
将SOURCE_TABLESPACE表空间映射到TARGET_TABLESPACE表空间中
SIMPLE_LOG 是否使用简要日志 (N)
DATA_ONLY 仅导入数据 (N)
INDEX_OPTION 索引选项 (2)
1 不刷新二级索引,数据按照索引先排序,装载完后再
将排序的数据插入索引
2 不刷新二级索引,数据装载完成后重建所有二级索引
3 刷新二级索引, 数据装载的同时将数据插入二级索引
CTRL_INFO 控制信息(1:导入表空间; 2:校验MD5; 4:校验MD5不导入; 8:导入时忽略or replace;
16:remap替换列默认值中序列模式名; 32:remap_schema设置报错终止导入,默认0)
CONFIG_FILE 配置文件
FILE_VERSION 指定降级的目标文件版本(9-28)
HELP 打印帮助信息

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 16:45:01

经典算法题型之扫雷游戏(二)

解决方案方法一&#xff1a;深度优先搜索 模拟思路与算法由于题目要求你根据规则来展示执行一次点击操作后游戏面板的变化&#xff0c;所以我们只要明确该扫雷游戏的规则&#xff0c;并用代码模拟出来即可。那我们着眼于题目的规则&#xff0c;会发现总共分两种情况&#xff1…

作者头像 李华
网站建设 2026/4/16 6:24:05

电动汽车动力系统匹配与整车经济性计算模型

1、电动汽车动力系统匹配计算模型&#xff1a;输入整车参数及性能要求&#xff0c;一键生成驱动系统的扭矩功率峰值转速等参数。 2、整车动力经济性计算模型&#xff1a;包含NEDC/WLTC/CLTC工况&#xff0c;输入整车参数可生成工况电耗、百公里电耗、匀速工况续航、百公里电耗等…

作者头像 李华
网站建设 2026/4/16 13:40:40

探秘文件包含漏洞:从本地挖掘到远程威胁,PHP伪协议成“帮凶”

引入 文件包含是编程中常用的一种技术&#xff0c;它允许一个程序包含并执行另一个文件的内容&#xff0c;本意是为了提高代码的复用性和可维护性。然而&#xff0c;当这种包含机制没有得到正确的安全控制时&#xff0c;就可能引发文件包含漏洞。攻击者可以利用这个漏洞&#…

作者头像 李华
网站建设 2026/4/16 2:09:53

基于springboot房屋租赁管理系统(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦房屋租赁行业传统管理模式中信息不对称、租赁流程繁琐、合同管理不规范、租金监管缺失等痛点&#xff0c;设计并实现基于Spring Boot框架的房屋租赁管理系统。系统以Spring Boot为后端核心开发框架&#xff0c;整合MyBatis-Plus实现租赁数据高效持久化&#…

作者头像 李华
网站建设 2026/4/16 13:35:00

国密算法开发实战:基于GMSSL快速集成SM2、SM3、SM4加密体系!

随着国家密码标准在各行业的深入推广&#xff0c;SM2、SM3、SM4算法已成为构建安全系统的基石。借助GMSSL这一轻量级、高兼容性的开源密码库&#xff0c;开发者能够以较低成本实现三大国密算法的工程化落地。聚焦于SM2非对称加密、SM3哈希摘要与SM4对称加密在实际项目中的协同应…

作者头像 李华
网站建设 2026/4/16 15:37:25

STM32F103 学习笔记-21-串口通信(第1节)-串口通信协议简介

引言 上节章我们讲解了通信的基本概念&#xff0c;包括并行通信、串行通信、同步和异步通信等。本章&#xff0c;我们正式进入串口通信的学习。串口通信是嵌入式开发中最常用的通信方式之一&#xff0c;理解其原理对后续实践至关重要。本节重点讲解串口通信协议的理论部分&…

作者头像 李华