达梦数据库逻辑备份(dexp/dimp)介绍
2020-06-01 本文已影响0人
喵咪很生气
达梦数据库中dexp/dimp工具可用于对数据进行迁移。dimp命令用于把dmp文件从本地导入到远程数据库服务器,而dexp命令则是把数据从远程数据库服务器导出到本地的dmp文件。其功能相当于dm数据库的逻辑备份与还原。利用dimp/dexp工具可以轻松的实现对数据库的迁移工作,甚至是跨平台的数据库迁移。
达梦数据库支持库级,模式级,用户级和表级导入导出。下面整理常用的4种级别的导入导出使用方法。
一、导出
格式: ./dexp KEYWORD=value 或 KEYWORD=(value1,value2,…,valueN)
例程: ./dexp SYSDBA/SYSDBA GRANTS=Y TABLES=(SYSDBA.TAB1,SYSDBA.TAB2,SYSDBA.TAB3)
USERID 必须是命令行中的第一个参数
关键字 | 说明(默认值) |
---|---|
USERID | 用户名/口令 格式:USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD |
FILE | 导出文件 (test.dmp) |
DIRECTORY | 导出文件所在目录 |
FULL | 整库导出 (N) |
OWNER | 以用户方式导出 格式 (user1,user2,…) |
SCHEMAS | 以模式方式导出 格式 (schema1,schema2,…) |
TABLES | 以表方式导出 格式 (table1,table2,…) |
FUZZY_MATCH | TABLES选项是否支持模糊匹配 (N) |
QUERY | 用于导出表的子集的select 子句 |
PARALLEL | 用于指定导出的过程中所使用的线程数目 |
TABLE_PARALLEL | 用于指定导出的过程中表内的并发线程数目,MPP模式下会转换成单线程 |
TABLE_POOL | 用于指定表的缓冲区个数 |
EXCLUDE | 忽略指定的对象 格式:EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or EXCLUDE=TABLES:table1,table2 or EXCLUDE=SCHEMAS:sch1,sch2 |
INCLUDE | 包含指定的对象 格式:INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or INCLUDE=TABLES:table1,table2 |
CONSTRAINTS | 导出约束 (Y) |
TABLESPACE | 导出对象带有表空间 (N) |
GRANTS | 导出权限 (Y) |
INDEXES | 导出索引 (Y) |
TRIGGERS | 导出触发器 (Y) |
ROWS | 导出数据行 (Y) |
LOG | 屏幕输出的日志文件 |
NOLOGFILE | 不使用日志文件(N) |
NOLOG | 屏幕上不显示日志信息(N) |
DUMMY | 交互信息处理: 打印(P),所有交互都按YES处理(Y),NO(N) |
PARFILE | 参数文件名 |
FEEDBACK | 每 x 行显示进度 (0) |
COMPRESS | 导出数据是否压缩 (N) |
ENCRYPT | 导出数据是否加密 (N) |
ENCRYPT_PASSWORD | 导出数据的加密密钥 |
ENCRYPT_NAME | 加密算法的名称 |
FILESIZE | 每个转储文件的最大大小 |
FILENUM | 一个模板可以生成的文件数 |
DROP | 导出后删除原表,但不级联删除 (N) |
DESCRIBE | 导出数据文件的描述信息,记录在数据文件中 |
LOCAL | MPP模式下登录使用MPP_LOCAL方式(N) |
HELP | 打印帮助信息 |
1、整库导出
[dmdba@dm7 ~]$ dexp USERID=sysdba/dameng123@localhost:5236 file=dexp.dmp DIRECTORY=/dm7 FULL=y
2、基于模式导出
[dmdba@dm7 ~]$ dexp USERID=sysdba/dameng123@localhost:5236 file=dmhr.dmp DIRECTORY=/dm7 SCHEMAS=DMHR
3、基于用户导出
[dmdba@dm7 ~]$ dexp USERID=sysdba/dameng123@localhost:5236 file=test.dmp DIRECTORY=/dm7 OWNER=TEST
4、基于表导出
[dmdba@dm7 ~]$ dexp USERID=sysdba/dameng123@localhost:5236 file=test1.dmp DIRECTORY=/dm7 TABLES=TEST.test1
二、导入
格式: ./dimp KEYWORD=value 或 KEYWORD=(value1,value2,…,vlaueN)
例程: ./dimp SYSDBA/SYSDBA IGNORE=Y ROWS=Y FULL=Y
USERID 必须是命令行中的第一个参数
关键字 | 说明(默认值) |
---|---|
USERID | 用户名/口令 格式:USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLP |
WDFILE | 导入文件名称 (dexp.dmp) |
DIRECTORY | 导入文件所在目录 |
FULL | 整库导入 (N) |
OWNER | 以用户方式导入 格式 (user1,user2,…) |
SCHEMAS | 以模式方式导入 格式 (schema1,schema2,…) |
TABLES | 以表名方式导入 格式(table1,table2,…) |
PARALLEL | 用于指定导入的过程中所使用的线程数目 |
TABLE_PARALLEL | 用于指定导入的过程中每个表所使用的子线程数目,在FAST_LOAD为Y时有效 |
IGNORE | 忽略创建错误 (N) |
TABLE_EXISTS_ACTION | 需要的导入表在目标库中存在时采取的操作[SKIP APPEND TRUNCATE REPLACE] |
FAST_LOAD | 是否使用dmfldr来导数据(N) |
FLDR_ORDER | 使用dmfldr是否需要严格按顺序来导数据(Y) |
COMMIT_ROWS | 批量提交的行数(5000) |
EXCLUDE | 忽略指定的对象 格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) |
GRANTS | 导入权限 (Y) |
CONSTRAINTS | 导入约束 (Y) |
INDEXES | 导入索引 (Y) |
TRIGGERS | 导入触发器 (Y) |
ROWS | 导入数据行 (Y) |
LOG | 指定日志文件 |
NOLOGFILE | 不使用日志文件(N) |
NOLOG | 屏幕上不显示日志信息(N) |
LOG_WRITE | 日志信息实时写入文件(N): 是(Y),否(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) |
LOCAL | MPP模式下登录使用MPP_LOCAL方式(N) |
TASK_THREAD_NUMBER | 用于设置dmfldr处理用户数据的线程数目 |
BUFFER_NODE_SIZE | 用于设置dmfldr读入文件缓冲区大小 |
TASK_SEND_NODE_NUMBER | 用于设置dmfldr发送节点个数[16,65535] |
LOB_NOT_FAST_LOAD | 如果一个表含有大字段,那么不使用dmfldr,因为dmfldr是一行一行提交的 |
PRIMARY_CONFLICT | 主键冲突的处理方式[IGNORE |
TABLE_FIRST | 是否先导入表(N):是(Y),否(N) |
HELP | 打印帮助信息 |
1、 整库导入
[dmdba@dm7 ~]$ dimp USERID=sysdba/dameng123@localhost:5236 file=dexp.dmp DIRECTORY =/dm7 FULL=y
2、导入用户
[dmdba@dm7 ~]$ dimp USERID=sysdba/dameng123@localhost:5236 file=dexp.dmp DIRECTORY =/dm7 OWNER=TEST
3、导入表
[dmdba@dm7 ~]$ dimp USERID=sysdba/dameng123@localhost:5236 file=test1.dmp DIRECTORY=/dm7 TABLES=TEST.test1
4、 基于模式导入
[dmdba@dm7 ~]$ dimp USERID=sysdba/dameng123@localhost:5236 file=dmhr.dmp DIRECTORY=/dm7 SCHEMAS=DMHR
周期性的逻辑备份可以使用系统的定时计划任务执行特定的备份脚本,比如每周六23点导出特定模式,可以灵活使用
#!/bin/bash
THISDAY=$(date +%Y%m%d)
BASEDIR='/dm7'
dexp USERID=sysdba/dameng123@localhost:5236 file=$THISDAY.dmp DIRECTORY=$BASEDIR
FULL=y
加入定时任务就完成啦O_O
[dmdba@dm7 ~]$ crontab -l
00 23 * * 6 sh /dm7/bak.sh