disql 是什么
disql 是达梦数据库自带的命令行客户端,位于安装目录的 bin 下,用于登录实例、交互执行 SQL、跑脚本文件。迁移验收与日常巡检中,它是核对对象数量、表行数、索引与约束是否与源库一致的常用工具,不依赖任何图形客户端。
脚本化的价值
人工登录逐个敲命令既慢又容易遗漏,disql 支持把 SQL 写进脚本批量执行并输出结果,便于把对账项固化成可重复运行的检查集。迁移项目里,把核验语句整理成脚本并归档输出,比口头确认更能支撑验收结论。
基本信息
| 所属产品 | 达梦数据库(DM8 等版本) |
|---|---|
| 程序位置 | 安装目录下的 bin 目录,如 /opt/dmdbms/bin/disql |
| 默认端口 | 5236,以实际实例配置为准 |
| 权限要求 | 使用具备查询权限的数据库账号登录 |
典型使用场景
- 迁移后核对表、索引、约束数量是否与源库一致
- 快速查一条业务数据确认迁移结果正确
- 批量执行核验 SQL 并把输出留档作为验收材料
- 故障排查时查看实例内当前会话与对象状态
- 日常运维中做结构变更前后的对象清单比对
登录与交互
登录与交互
cd /opt/dmdbms/bin
./disql SYSDBA/口令@localhost:5236 # 按实际账号与端口登录
# 登录后可直接执行单行 SQL:
# SELECT COUNT(*) FROM dba_tables;
# DESC 表名; 查看表结构
# EXIT 退出交互脚本化执行
脚本化执行
echo 'SELECT COUNT(*) FROM T1;' > /tmp/check.sql
./disql SYSDBA/口令@localhost:5236 -e "SELECT COUNT(*) FROM dba_tables;" # 语法按版本核对
./disql SYSDBA/口令@localhost:5236 # 登录后用 start /tmp/check.sql 执行脚本
# 输出重定向留档:> /var/log/dm/check-$(date +%F).log迁移对账常用核对项
| 核对项 | 目的 | 说明 |
|---|---|---|
| 对象数量 | 确认表、视图、序列未遗漏 | 与源库按类型分别统计 |
| 表行数 | 确认数据完整搬移 | 大表可比对总数与抽样记录 |
| 索引与约束 | 确认性能与业务规则未丢 | 迁移工具常在此处有差异 |
| 字符集与排序 | 确认中文与排序行为一致 | 影响检索结果与唯一性判断 |
| 作业与定时任务 | 确认调度一并迁移 | 容易漏项,需单独清点 |
口令不要散落在脚本与命令历史里:走受控的配置文件或环境变量,并在交付文档中记录脚本化执行的语法,不同版本的参数写法存在差异,上线前先在测试库验证。