DM数据库逻辑备份还原
本文于 13 天前发布,最后更新于 10 天前

一、前言

1.1 概念

逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,即在数据库服务器正常运行过程中进行的备份和还原。

1.2 术语

  • 逻辑导出:使用 dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。
  • 逻辑导入:dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp 导入是 dexp 导出的相反过程。

1.3 适用范围

本文所涉及的内容适用于 DM8 数据库的逻辑备份还原。

二、dexp 逻辑导出

dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。备份的内容非常灵活,可以选择是否备份索引、数据行和权限,是否忽略各种约束(外键约束、非空约束、唯一约束等),在备份前还可以选择生成日志文件,记录备份的过程以供查看。

2.1 使用 dexp 工具

dexp 工具需要从命令行启动。以数据库软件安装目录为 /dm8/bin 为例,在 /dm8/bin 路径下输入 dexp 和参数后回车。参数在下一节详细介绍。

##语法如下
dexp PARAMETER=<value> { PARAMETER=<value> } 

2.2 dexp 相关参数含义

参数 含义 备注
USERID 数据库的连接信息 必选
FILE 明确指定导出文件名称 可选。如果缺省该参数,则导出文件名为dexp.dmp
DIRECTORY 导出文件所在目录 可选
FULL 导出整个数据库(N) 可选,四者中选其一。缺省为SCHEMAS
OWNER 用户名列表,导出一个或多个用户所拥有的所有对象
SCHEMAS 模式列表,导出一个或多个模式下的所有对象
TABLES 表名列表,导出一个或多个指定的表或者表分区
FUZZY_MATCH TABLES 选项是否支持模糊匹配(N) 可选
QUERY 用于指定对导出表的数据进行过滤的条件 可选
PARALLEL 用于指定导出的过程中所使用的线程数目 可选
TABLE_PARALLEL 用于指定导出每张表所使用的线程数,在MPP模式下会转换成单线程 可选
TABLE_POOL 用于设置导出过程中存储表的缓冲区个数 可选

此处列举参数为 dexp 部分参数,更多参数详细说明可以参考数据库安装路径 doc 目录下《DM8_dexp 和 dimp 使用手册》。

2.3 四种级别导出功能

2.3.1 FULL

FULL 方式导出数据库的所有对象。

##设置 FULL=Y,导出数据库的所有对象,导出数据库文件和日志文件放在路径 /mnt/data/dexp下。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp

2.3.2 OWNER

OWNER 方式导出一个或多个用户拥有的所有对象。

##设置 OWNER=USER01,导出用户 USER01 所拥有的对象全部导出。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY=/mnt/data/dexp

2.3.3 SCHEMAS

SCHEMAS 方式的导出一个或多个模式下的所有对象。

##设置 SCHEMAS=USER01,导出模式 USER01 模式下的所有对象。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log SCHEMAS=USER01 DIRECTORY=/mnt/data/dexp

2.3.4 TABLES

TABLES 方式导出一个或多个指定的表或表分区。导出所有数据行、约束、索引等信息。

##设置 TABLES=table1,table2,导出 table1,table2 两张表的所有数据和信息。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dexp

和 TABLES 导出有关的参数还有 QUERY、EXCLUDE 和 INCLUDE,都是用来设置过滤条件的。

2.4 使用示范

2.4.1 环境准备

导出库:环境为 Linux,服务器为 192.168.0.248,用户名和密码均为 SYSDBA。导出的是 DM 数据库系统安装时自带的名为 BOOKSHOP 的示例库,端口号 5236。

2.4.2 dexp 逻辑导出

导出数据库的所有对象 (FULL=Y),导出文件为 dexp01.dmp ,导出日志为 dexp01.log,导出文件和日志文件都存放在 /emc_2/data/dexp 目录中。

./dexp SYSDBA/SYSDBA@192.168.0.248:5236 FILE=dexp01.dmp LOG=dexp01.log DIRECTORY=/emc_2/data/dexp FULL=Y

##若使用加密参数对备份进行加密,可使用加密参数 ENCRYPT、ENCRYPT_PASSWORD、ENCRYPT_NAME 。
##具体使用方法如下:
./dexp SYSDBA/SYSDBA@192.168.0.248:5236 FILE=dexp03.dmp LOG=dexp03.log DIRECTORY=/emc_2/data/dexp FULL=Y  ENCRYPT=Y ENCRYPT_PASSWORD=damengren  ENCRYPT_NAME= DES_CBC
##导出数据库的所有对象 (FULL=Y),导出文件为 dexp03.dmp,导出日志为 dexp03.log,导出文件和日志文件都存放在 /emc_2/data/dexp 目录中。

三、dimp 逻辑导入

dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp 导入是 dexp 导出的相反过程。还原的方式可以灵活选择,例如是否忽略对象存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日志等。

3.1 使用 dimp 工具

dimp 工具需要从命令行启动。以数据库软件安装目录为 /dm8/bin 为例,在 /dm8/bin 路径下输入 dimp 和参数后回车。参数在下一节详细介绍。

##语法如下
dimp PARAMETER=value { PARAMETER=value }

##将逻辑备份采用 FULL 方式完全导入到用户名和密码为 SYSDBA,IP 地址为 192.168.0.248,端口号为 8888 的数据库。导入文件名为 db_str.dmp,导入的日志文件名为 db_str.log,路径为/mnt/data/dexp
./dimp USERID=SYSDBA/SYSDBA@192.168.0.248:8888 FILE=db_str.dmp DIRECTORY=/mnt/data/dexp LOG=db_str.log FULL=Y

3.2 dimp 相关参数含义

参数 含义 备注
USERID 数据库的连接信息 必选
FILE 输入文件,即 dexp 导出的文件 必选
DIRECTORY 导入文件所在目录 可选
FULL 导入整个数据库 (N) 可选,四者中选其一。缺省为SCHEMAS
OWNER 导入指定的用户名下的模式
SCHEMAS 导入的模式列表
TABLES 表名列表,指定导入的 tables 名称。不支持对外部表进行导入
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) 可选

此处列举参数为 dimp 部分参数,更多参数详细说明可以参考数据库安装路径 doc 目录下《DM8_dexp 和 dimp 使用手册》。

3.3 四种级别导入功能

3.3.1 FULL

FULL 方式导入整个数据库。

##设置 FULL=Y,导入数据库,导入的数据库文件在 /mnt/data/dexp,即将生成的日志文件放在 /mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dimp

3.3.2 OWNER

OWNER 方式导入一个或多个用户拥有的所有对象。

##设置 OWNER=USER01,导入用户 USER01 所拥有的对象全部导出。导入的数据库文件在 /mnt/data/dexp,即将生成的日志文件放在 /mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log OWNER=USER01  DIRECTORY=/mnt/data/dimp

3.3.3 SCHEMAS

SCHEMAS 方式的导入一个或多个模式下的所有对象。

##设置 SCHEMAS=USER01,导入模式 USER01 模式下的所有对象。导入的数据库文件在/mnt/data/dexp,即将生成的日志文件放在 /mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log SCHEMAS=USER01  DIRECTORY=/mnt/data/dimp

3.3.4 TABLES

TABLES 方式导入一个或多个指定的表或表分区。导入所有数据行、约束、索引等信息。

##设置 TABLES=table1,table2,导入 table1,table2 两张表的所有数据和信息。导入的数据库文件在 /mnt/data/dexp,即将生成的日志文件放在 /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

与 TABLES 导入有关的参数还有 EXCLUDE,用来指定导入时过滤某类对象。

3.4 使用示范

3.4.1 环境准备

导入库:环境为 Linux,服务器为 192.168.0.248,用户名和密码均为 SYSDBA。准备一个空数据库作为导入库,端口号为 8888。

3.4.2 dimp 逻辑导入

导入 SYSDBA、OTHER、PERSON 模式中的数据 (SCHEMAS = SYSDBA,OTHER,PERSON),导入文件就是上一步导出的文件 dexp01.dmp ,导入日志 dimp02.log 放入 /emc_2/data/dimp 目录中。

./dimp SYSDBA/SYSDBA@192.168.0.248:8888 FILE=/emc_2/data/dexp/dexp01.dmp LOG=dimp02.log DIRECTORY=/emc_2/data/dimp SCHEMAS=SYSDBA,OTHER,PERSON

四、使用图形化工具进行逻辑导入导出

使用方式:打开数据库管理工具,右键选择【导入】/【导出】即可进行逻辑导入导出。

4.1 逻辑导出

以下图片为逻辑导出的选项界面,包含导出目录、导出文件、日志文件和导出选项。

  1. 导出目录可以选择逻辑导出的文件存储位置,例如下图中导出目录为 D:\DM8\data\DAMENG\dexp
  2. 导出文件的命名格式为 .dmp。
  3. 日志文件与导出文件存储在同一导出目录下。

导出选项可以根据逻辑导出的实际需要设置。包括设置文件大小、文件数、描述信息、权限、压缩等等。

4.2 逻辑导入

以下图片为逻辑导入的选项界面,包含导入目录、导入文件、日志文件和导入选项。

  1. 导入目录可以选择逻辑导入的文件存储位置,例如下图中导入目录为 D:\DM8\data\DAMENG\dexp
  2. 导入文件选择逻辑导出的文件。例如,逻辑导出表的相关数据,导出文件的格式为 test.dmp,逻辑导入时,导入文件选择为 test.dmp。
  3. 日志文件不能与旧文件同名。

导入选项可以根据逻辑导入的实际需要设置。包括数据行,是否选择索引约束、并发数等等。

五、参考

若以上内容无法解决您的问题,可到 达梦技术社区 提问交流。

官方文档地址

https://eco.dameng.com/document/dm/zh-cn/ops/logical-backup-restore.html

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇