1. 工具是干嘛的:先搞清楚你为什么要用 DM Manager
很多刚接触达梦数据库的人,第一步装完数据库之后,看到开始菜单里一堆组件就懵了。达梦安装完一般会带好几个工具,其中 DM Manager(有的版本叫 DM 管理工具)就是你日常用得最频繁的那个图形化界面。它的定位可以理解成达梦版的“SSMS”,SQL Server 的用户应该一秒就能上手。
这个工具能做的事很集中:连上数据库实例之后,可以查对象、写 SQL、管理用户权限、做备份还原、导入导出数据,甚至图形化看执行计划。也就是说,90% 的日常运维和开发工作,在这个工具里都能完成,不需要你去敲命令行。当然命令行有命令行的好处,但图形化界面对新手和运维来说,效率高得多,尤其是做配置改动和排查问题的时候,看得到、点得着,比凭记忆敲命令稳得多。
适合用这个工具的人主要有几类:一是刚从 Oracle 或者 SQL Server 转过来的开发,需要快速适应达梦的库结构;二是负责部署实施的技术人员,要用它来做数据迁移和初始化;三是刚接触国产数据库的运维,需要有一个直观的工具来管理实例状态。这篇文章我按实际使用的顺序,从安装连接到日常操作再到避坑经验,全部过一遍,最后附上我踩过的几个坑。
注意:达梦数据库在不同版本里,管理工具的名字略有差异,老版本叫 DM Manager,新版本在部分发行版里叫“DM管理工具”。功能基本一致,下文统一叫 DM Manager。
2. 安装和登录细节:别在这一步卡住
2.1 第一次打开可能遇到的界面问题
DM Manager 随数据库安装包一起安装,不需要单独装。但打开的时候有几个细节需要注意。
首先是启动慢。达梦的工具是基于 Java 写的,第一次启动 JVM 要初始化,在配置一般的服务器上可能要等 10 到 20 秒,这个不要以为卡死了。
其次是高分辨率屏幕的显示问题。如果你的电脑是 2K 或者 4K 屏幕,Windows 下缩放比例设置得比较高,DM Manager 的界面可能会发虚或者字体很小。这个是因为 Java 程序没有自适应 DPI 缩放,Windows 对它的缩放处理比较粗糙。解决办法是右键快捷方式,在属性里找“兼容性”,然后选择“更改高 DPI 设置”,勾选“替代高 DPI 缩放行为”,缩放执行选“系统”,实测下来字体会舒服很多。
还有一个细节是登录窗口的主机和端口。DM Manager 默认连接本机的 5236 端口,这是达梦的默认监听端口。如果你在别的机器上装好了库,想远程连过来,先确认两件事:一是目标机器的防火墙有没有放行 5236;二是达梦实例有没有开启远程连接。默认情况下达梦的远程连接是开的,但有些安全加固过的环境会关掉,需要在 sqlnet 这类配置文件里恢复权限。
2.2 一个容易被忽略的概念:模式(Schema)和用户的关系
登录进去之后,很多人会习惯性地找“数据库”节点,想在里面建表,然后发现有点懵。达梦里的层级结构和 Oracle 很像:实例下面是表空间,表空间下面是用户,用户下面有模式,模式下面才是表、视图这些对象。
这里有个关键点:在达梦里,创建一个用户的时候,默认会创建一个同名的模式。你在建表的时候,如果不指定模式名,表就会建到你当前登录用户同名的模式下面。比如你用 SYSDBA 登录,不指定模式建一张表,这张表就会落到 SYSDBA 模式下。
这个机制和 MySQL 完全不同,MySQL 里数据库就是命名空间,用户和库是分开的。达梦继承的是 Oracle 的思路,所以从 MySQL 转过来的人刚开始会比较容易搞混。实际工作中,建业务表的时候建议显式指定模式名,例如CREATE TABLE APS.EMPLOYEE (...),避免后续权限控制出问题。
3. 对象管理实操:建表、建用户、授权一次说清
3.1 用图形界面建表,有哪些隐藏选项值得注意
在 DM Manager 左侧的对象树里,展开“模式”,找到你要建表的那个模式,右键“表”,选择“新建表”,就会弹出建表窗口。这个窗口里字段设计、约束、索引、存储参数都在一个界面里完成,比较直观。
有几个地方我需要专门说一下。
第一,字段类型的选择。达梦兼容 Oracle 的数据类型,所以 VARCHAR2、NUMBER、DATE 这些都是支持的。但如果你是从 MySQL 迁过来的,可能会习惯用 INT、VARCHAR、DATETIME,这些也支持。达梦有一个很实用的功能,就是类型映射,建表的时候可以直接选择 MySQL 类型,系统会自动转换。但因为底层精度还是按达梦的方式处理,所以建完之后要检查一下 VARCHAR 的长度有没有变化,特别是 MySQL 里 VARCHAR(255) 这种,迁移到达梦之后要确认实际占用空间是否符合预期。
第二,存储参数里的“填充因子”和“初始大小”。新手通常忽略这些,但它们会影响表的存储和查询性能。填充因子默认是 90,意思是页面填充到 90% 就换下一页,留一点空间给后续的 UPDATE 操作。如果你的表是只读的,可以把填充因子调高到 100,减少页数,提高扫描效率。反过来,如果这张表会有大量 UPDATE,填充因子可以适当调低,比如 85,减少行迁移。
第三,达梦的表有两种:索引组织表和堆表。前者是默认的,数据按主键物理排序存储,类似 Oracle 的 IOT。大多数业务场景用默认的就行,但如果你要建一张日志表,只有插入和查询,没有主键约束的需求,用堆表反而效率更高。在“选项”里可以指定表的类型,这个选型值得认真想想。
3.2 用户、角色、权限:怎么分配才不给自己挖坑
达梦的权限体系和 Oracle 高度相似,有系统权限和对象权限两层。系统权限就是建表、建视图、建表空间这类全局操作,对象权限是具体某张表上的增删改查。
实际项目中我建议这样分权:
- DBA 账号(SYSDBA)只用来做初始化和管理,所有业务操作不要用它。
- 业务应用用一个专用账号,只授予它访问业务模式所需的最小权限。比如 HR 应用只能访问 HR 模式下的表,那就只给它这些表的 SELECT、INSERT、UPDATE、DELETE 权限,不给 DDL 权限。
- 开发环境可以放宽一点,给开发人员建角色,角色里包含建表和修改表结构的权限,方便调试,但生产环境必须收紧。
在 DM Manager 里,右键用户,选择“新建用户”,有一个“系统权限”标签页,你需要在这里勾选权限。右键“角色”,可以创建角色,然后把权限赋给角色,再把角色赋给用户。这样管理起来比较清晰,如果以后要调整权限,改角色就行,不用挨个用户去改。
提示:达梦有一个内置账号 SYSAUDITOR,负责审计管理,它的权限和 SYSDBA 是分离的。如果企业有等保要求,审计工作应该单独用这个账号来做。这个账号平时不用,但不要删掉或者禁用。
3.3 表、视图、序列、索引:图形化操作怎么提升效率
建表之后,视图、序列、索引这些对象在对象树里都有对应的节点,右键就能新建。这里我不打算每个都展开讲,重点说两个场景。
场景一:批量生成表的查询语句。很多时候你要快速看一张表的数据,但又不想写 SELECT 语句,可以右键点击这张表,选择“生成 SQL 脚本”,下拉菜单里有 SELECT、INSERT、UPDATE、DELETE 的脚本模板,直接复制到查询窗口改条件就能用。这个功能对测试数据、排查数据问题非常方便,比手动敲快得多。
场景二:监控某张表的字段变化。达梦没有 MySQL 那种直接 DESC 看表结构的习惯,但在 DM Manager 里双击表名,会弹出表的属性窗口,里面列出了所有字段、类型、默认值、注释,一目了然。做变更之前,先双击看一眼,不容易出错。
4. 表空间和数据文件管理:理解达梦存储结构的关键一环
4.1 达梦表空间设计的核心逻辑
达梦的表空间在逻辑上相当于 Oracle 的表空间,一个实例可以创建多个表空间,每个表空间由物理数据文件组成。数据文件后缀一般是 .DBF,默认放在安装目录的 DAMENG 子目录下。
创建表空间之前,需要先想清楚一个问题:你打算怎么组织你的存储结构。
我一般建议这样分,特别是生产环境:
- SYSTEM 表空间:放数据字典和系统信息,不要动它。
- ROLL 表空间:放回滚段,达梦默认是自动管理的,不用手工干预。
- MAIN 表空间:默认的表空间,如果你建表的时候不指定表空间,就落到这里。
- 业务表空间:给业务数据单独建一个,比如 TBS_APS,按业务模块划分。
- 索引表空间:如果数据量特别大,索引可以单独放一个表空间,减少磁盘竞争。
为什么要把业务数据单独建表空间?核心原因是管理上的考虑。当你要做备份还原的时候,可以按表空间操作;当某个磁盘分区快满了,你可以通过调整数据文件大小来平滑扩容,而不用动整体结构。如果所有数据都堆在 MAIN 里,后期要做分区维护或者迁移,会很被动。
4.2 新增数据文件时的参数选择
在实际操作中,新增数据文件比创建表空间更常见。比如某张表的数据量涨得很快,原有数据文件快满了,这时候右键表空间,选择“编辑”,在“数据文件”标签页里点“添加”,然后指定新文件的路径和大小。
这里有几个参数有讲究:
- 初始大小:不要设得太大,也不要太小。太小了频繁扩展浪费性能,太大了浪费磁盘空间。一般建议按当前表空间数据量的 1.5 到 2 倍来设。
- 自动扩展:建议打开,但要设置上限,防止日志暴增时把磁盘写满。
- 扩展大小:每次自动扩展增长多少,建议用固定值,比如 128M 或 256M,不要用百分比。用百分比的扩展方式在数据量大的库上可能造成大量文件碎片。
我见过一个案例,某系统表空间没有打开自动扩展,上线半年后某天报表业务突然全部失败,一查就是数据文件满了。所以运维同学要养成定期看表空间使用率的习惯。在 DM Manager 里,可以右键实例,选择“管理服务器”,里面有存储信息,能快速看到各表空间的当前使用情况。
4.3 达梦的页大小到底能不能改
关于页大小,我需要单独提醒。达梦数据库的页大小(page size)是在创建实例的时候确定的,默认是 8K。这个参数决定了数据文件和索引的最小存储单元,直接影响行长度限制和 I/O 效率。
为什么这么重要?因为一旦实例创建完成,页大小就不能改了。如果你初始化实例的时候选了 8K,后来发现业务表行宽度太大,数据存不进去,只能重建实例。
所以初始化实例之前,要预估一下业务场景。如果你的系统要存大量文本类数据,或者一张表的字段特别多,建议直接设成 16K 甚至 32K。代价是单页读入的数据量变大,OLTP 场景下小查询的 I/O 开销会略有上升。反过来,如果都是短小精悍的流水记录,8K 就很合适。拿不准的时候就选 16K,绝大多数场景都合适。
在 DM Manager 里,初始化实例的时候需要指定这个参数,创建完之后在数据库属性里能看到,但是不能修改。
5. 备份还原:用工具做出来的备份,比你想的贵在策略
5.1 物理备份和逻辑备份,什么时候用哪个
达梦数据库支持两种备份方式:物理备份和逻辑备份。物理备份是备份数据文件本身,速度快、恢复粒度细,可以做到按表空间、按数据文件恢复;逻辑备份是用 EXP/IMP 工具导出表结构和数据,生成的是 SQL 或专用格式文件,适合做数据迁移和小规模恢复。
在 DM Manager 里,备份功能比较直观。右键实例,选择“备份”,会弹出备份管理窗口。你可以选择全库备份、表空间备份或者表备份。全库备份是最常用的,建议配合定时任务每周做一次;数据变更频繁的表空间可以每天做一次增量备份。
这里有一个新手常犯的错误:以为做了全库备份就万事大吉。我见过有人全库备份一个月做一次,但中间数据崩了,只能恢复到一个月前。正确的做法是用增量备份策略:每周日全备,周一到周六做增量备份。恢复的时候,先恢复全备文件,再依次应用每天的增量,数据损失就可以控制在一天以内。
物理备份最需要注意的一点是:备份文件不要放在数据库实例所在的同一块磁盘上。很多服务器只有一块系统盘一块数据盘,备份放在数据盘上,一旦数据盘坏了,备份文件也一起没了,等于白备。
5.2 在 DM Manager 中执行备份的完整过程
实际操作步骤是这样的:
- 在对象树中右键点击你要备份的数据库实例,选择“备份”。
- 弹窗里选择备份类型(全库备份 / 增量备份 / 表空间备份)。
- 如果做增量备份,需要指定基准备份集,这个下拉框里会列出之前的全库备份记录。
- 备份路径可以默认,也可以指定目录。备份文件的名字会自动带上时间戳,不需要手动改。
- 设置备份日志级别,默认即可。
- 点击“确定”,等待进度条走完。
备份完成之后,建议验证一下备份文件的完整性。右键备份历史记录,选择“校验”,工具会读一遍备份文件做一致性检查。这一步虽然耗时,但能及早发现备份文件损坏的问题,否则等恢复的时候才发现文件坏了,那才是真正的灾难。
5.3 恢复操作和注意事项
恢复操作和备份是配对的。当你需要恢复的时候:
- 如果实例还在运行,优先考虑表空间级恢复,不用停库。
- 如果是整个数据库崩溃,需要在 DM Manager 里连接到一个脱机状态的服务,或者用命令行工具 DMRMAN 来做恢复。
- 恢复过程中,目标数据库的状态必须一致。如果是全库恢复,要先把数据库关闭或者启动到 mount 状态。
恢复操作我在工具里试过多次,图形界面相比命令行有一个优势是它会自动检查备份链,比如你选择增量备份来恢复,它会自动找到对应的全备文件,不用你自己判断依赖关系。但这也要求你备份的时候不要乱改备份目录,否则工具找不到文件,会直接报错。
注意:在生产环境执行恢复操作之前,一定要先备份当前损坏的数据库文件,防止恢复过程中再出现问题导致数据彻底丢失。这个操作可能让磁盘占用翻倍,但它是保命的一步。
6. 数据迁移:从 Oracle / MySQL / Excel 到达梦
6.1 DTS 工具的使用逻辑
达梦的数据迁移工具叫 DTS,单独在开始菜单里,不影响 DM Manager 的使用。迁移的核心思路是:选择源连接,选择目标连接,选择要迁移的对象,然后执行。
DTS 支持的数据源包括 Oracle、MySQL、SQL Server、PostgreSQL、人大金仓,还有 Excel 和文本文件。从 Oracle 迁移到达梦是最常见的场景,因为达梦本身就是按 Oracle 兼容设计的,语法层面的改动很小。
迁移之前,先把两个连接都配置好:
- 源端:选择数据库类型,填 IP、端口、用户名、密码。
- 目标端:选择达梦数据库,填同样的信息。
然后勾选你要迁移的模式和表,DTS 会自动比对两边字段类型,做类型映射。迁移完成后,建议抽查几张表的行数,和源端比对一下,防止数据在迁移过程中有丢失。
从 MySQL 迁移到达梦也是可行的,但要注意以下几点:
- MySQL 的 ENGINE=InnoDB 建表语句,DTS 会忽略掉。
- MySQL 的 TINYINT、BOOL 类型,在达梦里会映射成 SMALLINT,注意应用代码里有没有对这种类型做特殊处理。
- MySQL 的
AUTO_INCREMENT到达梦会变成IDENTITY列,DTS 会自动处理,但你要在目标表上确认自增列是否被正确设置为主键。
6.2 Excel 导入达梦:常规做法和踩坑点
Excel 导入达梦是比较常见的需求,实际操作中我用过两种方法。
第一种,用 DTS 直接导入。数据源选 Excel,目标选达梦,DTS 会把 Excel 的列映射到表的字段上。这方法对数据量不大(几万行以内)且字段比较简单的情况非常好用,速度快,不用额外写脚本。但要注意,Excel 里的日期格式如果五花八门,DTS 在导入时会因为无法识别而报错,最好在导入前把日期列统一成字符串格式。
第二种,先把 Excel 转成 CSV,再用达梦的文本导入工具导入。如果 Excel 里有特殊字符、换行符、合并单元格,DTS 有时候会识别异常,转成 CSV 反而更干净。
我在导入过程中踩过一个比较深的坑,写出来给大家避一避:当 Excel 列名里有英文括号、空格或者特殊符号时,DTS 会自动帮你改写列名,但目标表的字段名可能和源列名对不上,导致导入后字段错位。所以导入前先检查一下 Excel 表头,尽量用字母、数字、下划线这种规范的字段命名,不要带特殊符号。
6.3 迁移后的校验清单
数据迁移完了,不是结束,要做三件校验:
- 行数校验。抽查核心表,源端和目标端的计数要一致。
- 数据内容校验。随机看几条记录,重点看日期、金额、状态这类关键字段有没有位移。
- 应用功能校验。让业务人员在测试环境跑一遍主要流程,确认功能正常。
这三步做完,迁移才算真正完成。跳过校验直接上线,等生产环境出问题再排查,代价就要大好几个数量级。
7. 调试和性能分析:DM Manager 里被低估的功能
7.1 存储过程和函数调试
DM Manager 内置了存储过程的调试功能,这点比命令行强得多。你可以在工具里直接创建或者打开一个存储过程,然后右键选择“调试”,就能像 Visual Studio 一样设置断点、单步执行、查看变量值。
调试窗口的具体操作是:
- 在存储过程编辑窗口里,点击代码行左侧,会设置一个断点(红色的点)。
- 点击工具栏的“调试”按钮,开始执行。
- 执行到断点处会停下来,此时可以鼠标悬停看变量值,也可以在下方的“变量”窗口里查看所有变量的当前值。
- 通过“单步跳过”、“单步进入”控制执行流。
这个功能对排查存储过程中的逻辑错误特别有用。我遇到过一次,某个存储过程执行时间很久,但数据结果不对,用调试功能逐步执行,发现是循环变量初始化位置写错了,在循环体外和循环体内各初始化了一次,导致第二次循环数据被覆盖。这个逻辑用 SQL 日志是很难看出来的,但在调试器里一目了然。
7.2 执行计划怎么看:SQL 慢在哪,一查就知道
达梦的优化器会根据统计信息生成执行计划。在 DM Manager 里,查询窗口写好 SQL 之后,按快捷键 F9 是执行查询,Ctrl+E 或者通过工具栏的“执行计划”按钮,可以查看执行计划。
执行计划显示的是每种操作的代价比例。你需要重点关注几类标志性的操作:
- 全表扫描(TABLE ACCESS FULL):如果大表上出现这个且查询频繁,说明缺少合适的索引。
- 嵌套循环连接(NESTED LOOP JOIN):小表驱动大表时可以接受,但如果驱动表很大,会产生大量循环查询。
- 排序操作(SORT ORDER BY / SORT GROUP BY):大量数据的排序会占用临时表空间,如果SQL经常排序,要考虑索引是否能消除排序。
看执行计划的时候有个技巧:从执行计划里代价最大的节点往下看,找到瓶颈操作对应的表,然后根据 WHERE 条件检查该表有没有可用索引。绝大多数慢 SQL 问题都是因为索引缺失或者统计信息过期。
7.3 统计信息更新:一个容易被忽视的性能杀手
统计信息对 Optimizer 的决策影响非常大。如果统计信息不准确,优化器可能会选择错误的执行计划,导致本来应该走索引的查询变成了全表扫描。
在我实际维护的达梦库里,每个月数据变动超过 30% 的表,我会统一更新一次统计信息。DM Manager 里没有像 Oracle 那样自动收集统计信息的默认任务,需要手动做,或者写一个定时作业。
操作方式是:右键目标表,选择“更新统计信息”,或者打开“包含全部对象”的统计信息管理窗口,勾选要更新的表,统一执行。对数据量大的表,更新统计信息会消耗一定的 I/O 和 CPU,建议在业务低峰期执行。
8. 常见问题排查:我攒下来的几个印象最深的坑
8.1 连接不上的 4 种典型原因
连接 DM Manager 时遇到“连接失败,网络通信异常”这类报错,排查顺序很关键。我按概率从高到低列一下:
- 端口没通。检查目标机器的 5236 端口是否开放,
telnet 目标IP 5236试一下,不通就是防火墙层面的问题。 - 账号锁定。达梦默认连续登录失败多次会锁定账号,锁定了连接会直接失败。需要管理员解锁。
- 实例没启动。服务端数据库实例可能因为异常断电或者其他原因停了,用
ps -ef | grep dmserver看看进程在不在。 - 客户端和服务端版本不兼容。版本差异过大时,工具可能无法连接服务器,建议保持客户端和服务端的版本一致,至少是大版本一致。
8.2 SQL 执行报错“无法解析的列名”
这个问题多半是因为你在 SELECT 语句里用了 Oracle 风格的双引号别名,或者列名大小写不一致。达梦默认将列名转换为大写存储,你写select "Name" from ...会创建一个名为 Name 的对象,和数据库里的大写列名对不上,就报错。解决办法是不要用双引号包裹列名,让它统一按大写处理。
8.3 导入数据时中文乱码
达梦数据库的字符集在初始化时指定,常用的有 UTF-8 和 GBK。如果你用 DTS 从 Excel 导入中文数据,导入后乱码,大概率是 DTS 的客户端字符集和目标数据库的字符集不一致。
解决方法是:
- 确认数据库字符集:
SELECT * FROM V$INSTANCE查看。 - 在 DTS 里配置连接时,把字符集设置为和目标库一致。
- 如果你用的是文本文件导入,文件本身的编码格式也需要和目标库一致。
还有一个小技巧:导入前用文本编辑器(比如 VS Code)看导出文件的编码,确保不是带 BOM 的 UTF-8,有些工具对带 BOM 的处理有兼容问题。
8.4 Oracle 迁移过来之后,空字符串变成了 NULL
这是达梦兼容 Oracle 的一个特性:空字符串会被当成 NULL 处理。Oracle 的语义就是这样,达梦为了最大程度兼容 Oracle,也沿用了这个行为。但从 MySQL 迁移过来的数据就不一样了,MySQL 里空字符串和 NULL 是不同的值。
如果你的应用代码里有类似WHERE column = ''的判断,迁移到达梦之后可能查不到数据。排查的时候要意识到这一点,把条件改成WHERE column IS NULL或者用NVL函数处理。这个问题在迁移项目里特别常见,提前在应用层处理掉,能省很多排障的时间。
8.5 常见问题速查表
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| 打开 DM Manager 后对象树空白 | 权限不够,或实例未启动 | 用 SYSDBA 登录,检查实例状态 |
| 查询大表一直转圈 | 统计信息过旧,执行计划走偏 | 更新统计信息,查看执行计划 |
| 备份任务执行失败 | 备份目录权限不足或磁盘空间满 | 检查目录权限和磁盘剩余空间 |
| 存储过程调试不了 | 没有调试权限或对象是只读 | 授权 DEBUG CONNECT SESSION |
| 导入 Excel 后数字变成了科学计数 | Excel 单元格格式问题 | 先转 CSV,再改字段类型为字符串 |
9. 日常使用技巧与配置建议
9.1 会话连接管理和断线重连
DM Manager 左侧对象树上方有一个连接管理区域,这里列出了当前所有的连接会话。当你做了大量操作发现工具响应变慢,可以先断开重连,释放掉之前积累的会话资源。尤其是你通过工具跑了大量 DML 操作但没有提交,事务可能一直占着锁,别人操作同一张表时就容易卡住。
如果你需要在不同环境切换,建议把常用连接保存在连接列表里。DM Manager 支持导出连接配置,配置一次,换电脑直接导入,不用重新填写 IP 和密码。
9.2 查询结果窗口的几个高效用法
查询结果窗口除了显示数据,还有几个容易忽略的功能:
- 结果集右键菜单里可以选择“导出到 Excel”,实际上底层走的是 CSV 导出,遇到特殊字符可能出现格式错乱。
- 字段显示不全时,可以拖动列调整宽度;如果列太多看不清,可以在查询语句里只 SELECT 需要的字段。
- 结果集右上角的搜索框,可以在当前结果集里快速定位关键字,不用滚轮翻。
9.3 定时备份作业的图形化配置
前面说了备份策略,这里说怎么让备份自动化。DM Manager 的“作业”功能可以创建定时任务:
- 在对象树里找到“代理”节点,右键“作业”,选择“新建作业”。
- 设置作业名称,比如“每日增量备份”。
- 在“作业步骤”里添加步骤,类型选“备份数据库”,备份方式选“增量备份”。
- 在“调度”里设置执行时间,比如每天凌晨 2 点。
- 确定后,作业会在指定时间自动执行,执行结果可以在“作业历史”里查看。
我实际用下来,DM Manager 的作业功能比命令行定时脚本要方便,因为它把调度器配置和备份操作集成在一个界面里,不用自己写 shell 脚本配合 crontab。但要注意:作业执行依赖于数据库服务处于运行状态,如果数据库此时恰好重启了,作业会被跳过。有条件的单位建议同时配置一个独立的外部监控脚本,双保险。
9.4 DM Manager 不同版本的功能差异
达梦近几年迭代速度比较快。如果你用的是 8.1 版本,功能相对保守,一些新特性比如 JSON 支持、部分兼容性参数需要更晚的版本才提供。如果遇到某个功能菜单找不到,优先检查一下版本。官方文档对版本差异有说明,建议以你安装的版本对应的文档为准,网上搜到的一些旧资料不一定适用。
10. 工具选型和生态扩展:达梦管理还有哪些配套
DM Manager 是达梦官方的主力管理工具,但不是唯一的选择。实际工作中我还会搭配几个工具用。
达梦数据迁移工具 DTS 前面提过,专门做数据迁移;达梦性能监控工具(DEM)可以监控多个实例的关键指标,适合管理数据库集群;如果只是执行 SQL,达梦命令行工具 DISQL 也很方便,适合写脚本批量执行。
另外,很多企业要求连接达梦的时候使用统一运维平台,或者需要对接国产化的监控平台。DM Manager 支持 JDBC 连接,所以如果你的运维平台上能跑 JDBC,也可以绕过 DM Manager 直接接入数据库进行操作,只是少了图形化的便利。
还有一个经常被问到的问题:Navicat 能连接达梦吗?答案是能。Navicat 新版支持达梦数据库,创建连接时选“达梦”类型,填主机、端口、用户名、密码即可。但要注意,第三方工具的兼容性始终不如官方工具,个别功能可能显示不一致,日常我用 DM Manager 作为主力,Navicat 只用来做快速浏览。
对于账号密码的管理,企业如果有安全要求,建议启用达梦的密码复杂度策略和登录失败限制,这些在 DM Manager 的安全配置里都可以设置。
11. 一点个人体会
用 DM Manager 这几年,最深刻的感受是它和数据库本身是配套设计的,数据库支持什么,工具就能操作什么。相比命令行,它让你在熬夜排查问题的时候有一种“看得见摸得着”的踏实感,特别是备份还原、执行计划、存储过程调试这些场景,图形化界面提供的直观反馈是命令行替代不了的。
但我也建议,和学习任何数据库工具一样,刚开始用 DM Manager 的时候,不要只停留在点点鼠标。每做一次操作,留意一下工具下方有没有生成对应的 SQL 语句,有的话就复制出来看一遍。达梦的图形界面大部分操作最终都是转换成 SQL 执行的,看懂这些 SQL,你对数据库的理解会比只点鼠标的人深一个层次。等以后要写自动化脚本、要排查疑难杂症的时候,这些积累都会派上用场。