注册
达梦数据库逻辑备份还原实战
专栏/技术分享/ 文章详情 /

达梦数据库逻辑备份还原实战

xixi 2026/09/18 286 0 0
摘要

1. 概述

逻辑备份还原是达梦数据库运维体系中的重要组成部分。与物理备份侧重于数据文件的整体复制不同,逻辑备份关注的是数据库中的逻辑对象,如表、视图、存储过程、函数等。

它通过 dexp 工具将数据库对象的结构定义和数据内容提取为独立于物理存储格式的 .dmp 文件,再通过 dimp 工具将备份文件中的内容重新导入目标数据库。

这种备份方式的最大优势在于其灵活性——支持跨平台数据迁移、特定对象的细粒度恢复,且能够在数据库正常运行期间联机执行。达梦的逻辑备份还原工具支持数据库级(FULL)、用户级(OWNER)、模式级(SCHEMAS)和表级(TABLES)四种独立的操作级别,可灵活应对不同场景下的备份与恢复需求。

2. 操作环境

本次实验的操作环境如下:

项目 配置
操作系统 CentOS Linux 7 x86_64
CPU x86_64
内存 4GB
磁盘 40GB
处理器 2*2
数据库版本 DM8 V8(dm8_20260710_x86_CentOS7_64.zip)

3. 准备工作

在开始逻辑备份还原之前,需要先完成实例初始化和服务注册。

1)初始化实例

./dminit path=/dmdata/data INSTANCE_NAME=DMSERVER01 DB_NAME=DMDBA PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 SYSDBA_PWD=Dmdba123 SYSAUDITOR_PWD=Dmdba123

2)注册服务

su - root cd /home/dmdba/dmdbms/script/root/ ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMDBA/dm.ini -p DMSERVER

4. 四种级别的导入与导出

逻辑导出和导入分为四种级别,四种级别独立互斥,不能同时存在。

4.1 数据库级(FULL)

导出或导入整个数据库中的所有对象。

适用场景:

  • 全库备份,作为物理备份的补充
  • 完整迁移,特别是跨平台迁移
  • 克隆环境,搭建与生产环境一致的测试环境

执行要点:

  • 使用 FULL=Y 参数,会导出所有对象(含系统对象和用户对象)
  • 全库导入需要较高权限(通常用 SYSDBA 执行)
  • 备份文件较大,建议在业务低峰期进行

4.1.1 导出

./dexp USERID=SYSDBA/Dmdba123@localhost:5236 FILE=full_db.dmp LOG=full_export.log FULL=Y DIRECTORY=/dmdata/dmbak

4.1.2 导入

./dimp USERID=SYSDBA/Dmdba123@localhost:5236 FILE=/dmdata/dmbak/full_db.dmp LOG=full_import.log FULL=Y DIRECTORY=/dmdata/dmbak

4.2 用户级(OWNER)

导出或导入一个或多个用户所拥有的所有对象。

适用场景:

  • 迁移特定用户数据
  • 针对重要业务用户的单独备份
  • 用户重部署

执行要点:

  • 使用 OWNER 参数指定一个或多个用户名,多个用户名用逗号分隔
  • 导入前,目标库需提前创建同名用户并授予相应权限
  • 支持跨用户映射:可使用 REMAP_SCHEMA 将源用户映射到目标端的不同用户

4.2.1 导出

-- 查看所有用户(用户与模式名通常相同) SELECT USERNAME FROM ALL_USERS; -- 或查看当前库中所有模式 SELECT OWNER FROM ALL_OBJECTS GROUP BY OWNER;

image.png
image.png

./dexp USERID=SYSDBA/Dmdba123@localhost:5236 FILE=user_data.dmp LOG=user_export.log OWNER=TEST_USER DIRECTORY=/dmdata/dmbak

4.2.2 导入

./dimp USERID=SYSDBA/Dmdba123@localhost:5236 FILE=/dmdata/dmbak/user_data.dmp LOG=user_import.log OWNER=TEST_USER DIRECTORY=/dmdata/dmbak

4.3 模式级(SCHEMAS)

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

适用场景:

  • 特定业务模块迁移
  • 模式重命名迁移
  • 部分数据同步

执行要点:

  • 使用 SCHEMAS 参数指定一个或多个模式名
  • 模式与用户有对应关系,但不等同:一个用户可以拥有多个模式
  • 一般情况下,OWNER 与 SCHEMAS 导入导出是相同的。但用户可以包含多个模式,此时 SCHEMAS 是 OWNER 的子集

4.3.1 导出

-- 查看当前库中所有模式 SELECT OWNER FROM ALL_OBJECTS GROUP BY OWNER;

image.png

./dexp USERID=SYSDBA/Dmdba123@localhost:5236 FILE=schema_data.dmp LOG=schema_export.log SCHEMAS=TEST_USER DIRECTORY=/dmdata/dmbak

4.3.2 导入

./dimp USERID=SYSDBA/Dmdba123@localhost:5236 FILE=/dmdata/dmbak/schema_data.dmp LOG=schema_import.log SCHEMAS=TEST_USER DIRECTORY=/dmdata/dmbak

4.4 表级(TABLES)

导出或导入一个或多个指定的表或表分区。

适用场景:

  • 只迁移一张或几张特定的表
  • 误删表的快速恢复
  • 部分数据同步

高级过滤参数:

  • QUERY:对导出表的数据进行过滤
  • EXCLUDE:排除特定对象
  • INCLUDE:只包含特定对象

4.4.1 导出

-- 查看当前库中所有模式 SELECT OWNER FROM ALL_OBJECTS GROUP BY OWNER; -- ALL_TABLES 视图包含了当前用户可以访问的所有表的信息 SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = 'TEST_USER';

image.png
image.png

./dexp USERID=SYSDBA/Dmdba123@localhost:5236 FILE=table_data.dmp LOG=table_export.log TABLES=TEST_USER.EMPLOYEES,TEST_USER.SALES DIRECTORY=/dmdata/dmbak

4.4.2 导入

./dimp USERID=SYSDBA/Dmdba123@localhost:5236 FILE=/dmdata/dmbak/table_data.dmp LOG=table_import.log TABLES=TEST_USER.EMPLOYEES,TEST_USER.SALES DIRECTORY=/dmdata/dmbak

5. 将指定模式数据导入到不同模式(REMAP_SCHEMA)

REMAP_SCHEMA 参数用于将一个模式的备份导入到另一个不同的模式中,实现模式级别的数据迁移和重命名。

场景: 将源库中 TEST_USER 模式的数据,导入到目标库的 TEST_USER 模式中。

关键说明:

  • SCHEMAS=DM 必须指定,且值必须与导出时的源模式名保持一致
  • REMAP_SCHEMA=DM:DMHR 告诉工具将原本属于 DM 模式的所有对象导入到目标数据库的 DMHR 模式中
  • 如需同时更换表空间,可加上 REMAP_TABLESPACE=<旧表空间>:<新表空间> 参数
  • 用户级导入也支持类似的跨用户映射

5.1 导出(源库)

./dexp USERID=SYSDBA/Dmdba123@192.168.218.157:5236 \ FILE=schema_dm.dmp \ LOG=dm_export.log \ SCHEMAS=TEST_USER \ DIRECTORY=/dmdata/dmbak

5.2 导入(目标库)

./dimp USERID=SYSDBA/'"Dameng@123"'@192.168.218.149:5236 \ FILE=/dmdata/dmbak/schema_dm.dmp \ LOG=dm_import.log \ SCHEMAS=TEST_USER \ REMAP_SCHEMA=TEST_USER:TEST_USER \ DIRECTORY=/dmdata/dmbak

6. 总结

通过本次对达梦数据库逻辑备份还原机制的系统学习与实践,深入掌握了 dexp 和 dimp 两款核心工具的使用方法,并完成了四种级别的导出与导入操作验证。在操作过程中,认识到模式名的大小写敏感性对命令执行结果有直接影响,也理解了 REMAP_SCHEMA 参数在跨模式数据迁移中的关键作用。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服