本文为整理型内容:依据达梦官方文档及社区公开资料整理,命令与参数均已注明出处,具体以官方最新文档为准。

结论先给:达梦 DM8 日常运维就是四块——服务启停、disql 管理 SQL、备份恢复(逻辑备份 dexp/dimp + 物理备份联机/dmrman)、性能排查视图。本文按场景给可直接复制的命令,工具都在 $DM_HOME/bin 目录下。

环境信息

项目说明
数据库达梦 DM8(Linux 版)
安装目录/opt/dmdbms(官方安装包默认,下称 $DM_HOME)
数据目录/dmdata/data/DAMENG(dminit 初始化时指定)
服务名DmServiceDMSERVER(默认实例名 DMSERVER)
默认端口5236
运行用户dmdba(官方安装流程建议的数据库用户)

一、服务启停

来源:达梦官方文档《启动、停止数据库》。服务注册成功后,用服务脚本管理(以默认实例 DMSERVER 为例):

cd $DM_HOME/bin
./DmServiceDMSERVER start      # 启动
./DmServiceDMSERVER stop       # 停止
./DmServiceDMSERVER restart    # 重启
./DmServiceDMSERVER status     # 查看状态

排错时需要看前台日志时,可用前台方式启动:

./dmserver /dmdata/data/DAMENG/dm.ini   # 输出 SYSTEM IS READY 表示启动成功

注意:前台方式启动的会话一旦关闭,数据库也会跟着关闭,生产环境应使用服务方式。

二、disql 登录与常用管理 SQL

来源:达梦官方文档、达梦社区《命令行工具和图形化工具的基本操作》《disql 和 dmfdr 的使用》。

登录格式为 用户名/密码@IP:端口,端口为默认 5236 时可直接进入:

cd $DM_HOME/bin
./disql                                   # 默认端口,默认提示符登录
./disql SYSDBA/Abcd1234@127.0.0.1:5236    # 显式指定地址和端口(远程同写法)

已登录后切换账号用 CONN:

SQL> CONN SYSDBA/Abcd1234@192.168.1.10:5236

执行 SQL 脚本用 START:

SQL> START /home/dmdba/init.sql

常用管理 SQL(建表空间 → 建用户 → 授权,社区文档通行写法,密码含特殊字符时用双引号包裹):

-- 建表空间(AUTOEXTEND ON 自动扩展,MAXSIZE 上限 MB)
CREATE TABLESPACE TS_APP DATAFILE '/dmdata/data/DAMENG/TS_APP.DBF' SIZE 300 AUTOEXTEND ON NEXT 100 MAXSIZE 1024;

-- 建用户并指定默认表空间
CREATE USER root IDENTIFIED BY "Abcd1234" DEFAULT TABLESPACE TS_APP;

-- 授权(生产环境按最小权限授权,DBA 角色仅限测试环境)
GRANT DBA TO root;

三、dminit 初始化参数速查

来源:达梦官方文档《查看 dminit 参数》。先看完整参数表:

./dminit HELP    # 或 dminit help,显示版本、示例和全部参数

常用参数(官方文档参数表节选):

参数含义默认值说明
PATH数据库存放路径dminit 所在目录必选
DB_NAME数据库名DAMENG
INSTANCE_NAME实例名DMSERVER
PORT_NUM监听端口5236
PAGE_SIZE数据页大小8可选 4/8/16/32(K),建库后不可改
CHARSET字符集00=GB18030、1=UTF-8
CASE_SENSITIVE大小写敏感Y建库后不可改
EXTENT_SIZE数据文件簇大小16可选 16/32/64(页)
LOG_SIZE日志文件大小4096256M~8G(M)
BUFFER缓冲区大小8000单位 M
SYSDBA_PWDSYSDBA 密码无必选
SYSAUDITOR_PWDSYSAUDITOR 密码无必选
ARCH_FLAG初始化时开启归档01=开启
TIME_ZONE时区+08:00

典型初始化命令(示例组合,密码按实际替换):

./dminit PATH=/dmdata/data DB_NAME=DAMENG INSTANCE_NAME=DMSERVER \
  PORT_NUM=5236 PAGE_SIZE=16 CHARSET=1 CASE_SENSITIVE=N \
  SYSDBA_PWD=Abcd1234 SYSAUDITOR_PWD=Abcd1234

建库完成后,运行期可通过动态视图查看建库参数(官方文档):

SELECT * FROM V$DM_INI WHERE PARA_NAME IN ('PAGE_SIZE','CHARSET');

四、逻辑备份恢复:dexp / dimp

来源:达梦官方文档《逻辑备份还原》。逻辑备份和逻辑还原都在联机方式下完成(数据库正常运行即可执行),dimp 导入的是 dexp 生成的备份文件。

dexp 导出

参数:USERID 必选;FILE 缺省为 dexp.dmp;DIRECTORY 指定导出目录;LOG 指定日志文件;导出级别 FULL/OWNER/SCHEMAS/TABLES 四者选一,缺省为 SCHEMAS;QUERY 可过滤数据,PARALLEL 设置线程数。

cd $DM_HOME/bin
# 全库导出
./dexp USERID=SYSDBA/Abcd1234 FILE=db_full.dmp LOG=db_full.log FULL=Y DIRECTORY=/backup

# 按用户导出
./dexp USERID=SYSDBA/Abcd1234 FILE=user01.dmp LOG=user01.log OWNER=USER01 DIRECTORY=/backup

# 按模式导出
./dexp USERID=SYSDBA/Abcd1234 FILE=sch01.dmp LOG=sch01.log SCHEMAS=USER01 DIRECTORY=/backup

# 按表导出(多表用逗号分隔)
./dexp USERID=SYSDBA/Abcd1234 FILE=tabs.dmp LOG=tabs.log TABLES=table1,table2 DIRECTORY=/backup

dimp 导入

参数:USERID、FILE 必选;DIRECTORY 指定导入文件目录;LOG 指定日志;导入级别同 dexp(FULL/OWNER/SCHEMAS/TABLES);目标表已存在时用 TABLE_EXISTS_ACTION 指定行为(SKIP/APPEND/TRUNCATE/REPLACE);IGNORE 忽略创建错误;FAST_LOAD 控制是否使用 dmfldr 导入。

cd $DM_HOME/bin
# 全库导入
./dimp USERID=SYSDBA/Abcd1234 FILE=/backup/db_full.dmp LOG=db_full.log FULL=Y DIRECTORY=/backup

# 按用户导入
./dimp USERID=SYSDBA/Abcd1234 FILE=/backup/user01.dmp LOG=user01.log OWNER=USER01 DIRECTORY=/backup

# 按表导入,表已存在时替换
./dimp USERID=SYSDBA/Abcd1234 FILE=/backup/tabs.dmp LOG=tabs.log TABLES=table1,table2 DIRECTORY=/backup TABLE_EXISTS_ACTION=REPLACE

注意事项(官方文档):TABLES 级别导入不支持外部表;导入需要相应对象的创建权限,日常用 SYSDBA 执行。

五、物理备份与恢复

5.1 联机备份(数据库运行中,SQL 方式)

来源:达梦官方文档《备份还原实战》。联机备份数据库前必须先配置归档:

ALTER DATABASE MOUNT;
ALTER DATABASE NORMAL;
ALTER DATABASE ARCHIVELOG;
-- 配置本地归档(DEST 目录需提前创建,FILE_SIZE/SPACE_LIMIT 单位 MB)
ALTER DATABASE ADD ARCHIVELOG 'DEST = /backup, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 2048';
ALTER DATABASE OPEN;

全量备份:

-- 指定备份集路径
BACKUP DATABASE FULL BACKUPSET '/backup/DB_FULL_20260824';
-- 省略 FULL 时默认为全量
BACKUP DATABASE BACKUPSET '/backup/DB_FULL_01';
-- 压缩(LEVEL 0~9)/ 并行 / 限制备份片大小(MB,最小 128MB)
BACKUP DATABASE BACKUPSET '/backup/DB_FULL_02' COMPRESSED LEVEL 5;
BACKUP DATABASE BACKUPSET '/backup/DB_FULL_03' PARALLEL 8;
BACKUP DATABASE BACKUPSET '/backup/DB_FULL_04' MAXPIECESIZE 300;

增量备份(WITH BACKUPDIR 指定基备份搜索目录):

BACKUP DATABASE INCREMENT WITH BACKUPDIR '/backup' BACKUPSET '/backup/DB_INC_01';

表空间 / 表备份:

BACKUP TABLESPACE MAIN FULL BACKUPSET '/backup/TS_MAIN_01';
BACKUP TABLE TAB_01 BACKUPSET '/backup/TAB_01';

5.2 dmrman 脱机备份与恢复

来源:达梦官方文档《备份还原实战》、达梦社区《物理备份还原速查手册》。脱机备份要求数据库实例已关闭。

脱机备份(三种执行方式):

cd $DM_HOME/bin
# 方式一:交互式
./dmrman
RMAN> BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini';

# 方式二:命令行单条执行
./dmrman CTLSTMT="BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini';"

# 方式三:脚本文件(内容为上述 BACKUP 语句)
./dmrman CTLFILE=/home/dmdba/cmd_rman.txt

还原到新目录并恢复(推荐流程,先还原验证再切换):

# 1. 还原到新目录
./dmrman CTLSTMT="RESTORE DATABASE TO '/dmdata/DAMENG_NEW' FROM BACKUPSET '/backup/DB_FULL_20260824'"

# 2. 恢复归档日志到指定时间点
./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/DAMENG_NEW/dm.ini' WITH ARCHIVEDIR '/backup' UNTIL TIME '2026-08-24 10:30:00'"

# 3. 或恢复到最后状态(应用全部归档)
./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/DAMENG_NEW/dm.ini' WITH ARCHIVEDIR '/backup'"

# 4. 更新数据库魔数
./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/DAMENG_NEW/dm.ini' UPDATE DB_MAGIC"

注意(官方文档):原地覆盖还原(RESTORE DATABASE ‘原 ini 路径’ FROM BACKUPSET)要求目标实例已关闭,且操作不可逆——生产环境优先采用"还原到新目录 → 验证 → 再切换"的方式。

六、性能排查基础

来源:达梦官方文档《数据库优化》FAQ、官方文档《管理事务》。

定位执行时间较长的活动会话(慢 SQL):

SELECT TIMESTAMPDIFF(SECOND, S.LAST_RECV_TIME, SYSDATE) T, S.* FROM V$SESSIONS S WHERE STATE='ACTIVE';

官方文档示例以 T > 1 过滤,即超过 1 秒的会话即为嫌疑对象,可进一步用 V$CACHEPLN 查看缓存中的执行计划:

SELECT * FROM V$CACHEPLN WHERE SQLSTR LIKE '%关键字%';

开启 SQL 监控(官方文档):

SP_SET_PARA_VALUE(1,'ENABLE_MONITOR',1);
SP_SET_PARA_VALUE(1,'MONITOR_TIME',1);
SP_SET_PARA_VALUE(1,'MONITOR_SQL_EXEC',1);

查看锁与事务(官方文档《管理事务》——死锁时 DM 会选择牺牲其中一个事务,日常排查锁等待主要看这两个视图):

SELECT ADDR, LTYPE, LMODE FROM V$LOCK;
SELECT * FROM V$TRX;   -- status 字段标识事务状态

查看运行期参数(官方文档):

SELECT * FROM V$DM_INI WHERE PARA_NAME IN ('RS_CAN_CACHE','BUILD_FORWARD_RS');

社区实践(来源:达梦社区/CSDN 帖子):查看当前会话连接数:

SELECT COUNT(*) FROM V$SESSIONS;

来源

  1. 达梦官方文档《启动、停止数据库》:https://eco.dameng.com/document/dm/zh-cn/start/dm-start-stop-linux.html
  2. 达梦官方文档《查看 dminit 参数》:https://eco.dameng.com/document/dm/zh-cn/pm/view-dminit-parameters.html
  3. 达梦官方文档《逻辑备份还原》:https://eco.dameng.com/document/dm/zh-cn/ops/logical-backup-restore.html
  4. 达梦官方文档《备份还原实战》:https://eco.dameng.com/document/dm/zh-cn/pm/backup-restore-combat.html
  5. 达梦官方文档《数据库优化》(FAQ):https://eco.dameng.com/document/dm/zh-cn/faq/faq-optimizing
  6. 达梦官方文档《管理事务》:https://eco.dameng.com/document/dm/zh-cn/pm/management-affairs.html
  7. 达梦社区《命令行工具和图形化工具的基本操作》:https://eco.dameng.com/community/post/20260719211553D6M1TFPPU2ZFA1IJY3
  8. 达梦社区《disql 和 dmfdr 的使用》:https://eco.dameng.com/community/post/20260730091240VBGHRL3RDVC8MV85QP
  9. 达梦社区《物理备份还原速查手册(极简实操版)》:https://eco.dameng.com/community/article/20250925100802533I44YMNFQ60J0EIU
  10. 达梦社区《DM8 备份操作全攻略:DMRMAN 脱机备份工具详解》:https://eco.dameng.com/community/post/20260803173258G3RPJ4QXBKQSK252L6