达梦常用命令
一、常用命令处理
1.1、用户操作
-
连接库
bashcd 达梦安装/bin ./disql 用户/密码@主机 -
创建用户
-
创建用户以及授权
bash# 使用SYSDBA登录,创建用户: create user 用户名 ; # 使用SYSSSO登录,修改用户口令,设置表空间 alter user 用户名 identified by "密码" ; # 使用SYSDBA授权 grant "DBA","PUBLIC","RESOURCE" to 用户名; # 专机需要在授权: grant soi to 用户名 # 完整示例 create user "用户" identified by "密码" limit failed_login_attemps 10, password_lock_time 1, password_grace_time 10; grant "DBA" to "用户"; CREATE SCHEMA "模式名" AUTHORIZATION "用户"; -
命令行创建用户
bash# 找到ksql ../bin/ksql -p54321 -USYSTEM TEST -c 'create user 用户名 CONNECTION LIMIT -1 PASSWORD '密码';'
-
-
用户密码定义
bash# 初始用户密码 通用机上的默认密码 SYSDBA/SYSDBA # 口令过期配置 alter user TEST limit password_life_time unlimited; # 有效期(七天必须修改密码) alter user 用户名 limit password_life_time 7; # 五分钟在manager界面无操作自动超时退出 alter user 用户 limit connect_idle_time 5; # 密码错误输入次数最多5次 alter user 用户 limit failed_login_attemps 5; # 密码定义 alter user SYSDBA limit password_life_time unlimited; alter user SYSDBA limit failed_login_attemps unlimited; alter user SYSDBA limit PASSWORD_REUSE_TIME unlimited; alter user SYSDBA limit PASSWORD_REUSE_MAX unlimited; alter user SYSSSO limit password_life_time unlimited; alter user SYSSSO limit failed_login_attemps unlimited; alter user SYSSSO limit PASSWORD_REUSE_TIME unlimited; -
密码复杂度配置
-
密码复杂度配置(有字母,特殊符号,数字,大小写)
bash# 1) 使用如下SQL查询PWD_POLICY(密码策略),语句如下: SELECT PARA_NAME,PARA_VALUE FROM v$dm_ini where para_name='PWD_POLICY' # 参数值说明如下参数值 策略说明 0 无策略 1 禁止与用户名相同 2 口令长度不小于 9 4 至少包含一个大写字母 8 至少包含一个数字 16 至少包含一个英文标点符号 备注:组合数值为各项数值相加,例 3=1+2,同时启用对应两项策略
-
配置密码复杂度
bash# 2、使用 sp_set_para_values()修改PWD_POLICY值 sp_set_para_value(1,'PWD_POLICY',29) # 说明 29 = 1 + 4 + 8 + 16
-
1.2、数据库操作
-
创建模式与表空间
-
查看达梦版本
bashselect * from v$version; -
创建模式(模式就是数据库)
bash# disql 中创建 CREATE SCHEMA "模式名称" AUTHORIZATION "用户名"; # 命令行创建 ../bin/ksql -p54321 -USYSTEM TEST -c 'create database 数据库 with owner=用户 ENCODING UTF8;' -
创建表空间
bash# 使用SYSDBA登陆,创建表空间 create tablespace 表空间名 datafile '数据库文件名称.DBF' size 128 CACHE = NORMAL; # 使用SYSSO登录,授予用户默认表空间 alter user 用户名 default tablespace 表空间名 default index tablespace 表空间名;
-
-
查询相关
-
表与模式
bash# 统计当前用户模式下所有表跟序列的总数 select object_type,count(*) from user_objects group by object_type; # 查看所有表,比如查看这个EIM模式下的所有表 select TABLE_NAME as tbName from all_tables where OWNER ='EIM' # 查看文件大小和表空间大小 select * from v$datafile; select * from v$tablespace; # 或者 select * from dba_data_files; select * from SYS.DBA_FREE_SPACE; # 查看所有数据库模式 SELECT USERNAME AS SCHEMA_NAME FROM DBA_USERS ORDER BY USERNAME; -
统计表的总行数
bashcreate table TAB_COUNT_DM(OWNER varchar(100),tablename varchar(100),tab_count int,c_time TIMESTAMP DEFAULT sysdate); create or REPLACE PROCEDURE P_TABLE_COUNT(OWN IN VARCHAR(100)) is v_count int; cursor v_tab_count is select owner,table_name,'SELECT COUNT(*) FROM '||OWNER||'."'||table_name||'";' s_sql from all_tables where owner = OWN; begin for cnt_rec in v_tab_count LOOP execute immediate cnt_rec.s_sql into v_count; insert into TAB_COUNT_DM(OWNER,tablename,tab_count) values(cnt_rec.owner,cnt_rec.table_name,v_count); commit; END LOOP; end; / call P_TABLE_COUNT('模式名');
-
-
查询-性能
bash# 查询数据库证书 select * from v$license;(EXPIRED_DATA) # 监控sql select * from v$SQL_STAT # 会话处理,先查看 select * from v$license; # 操作系统查看端口会话数 lsof -i:5236 |grep dmserver|wc -l # 安装lsof工具 yum -y install lsof # 查看锁信息 select * from v$trx; # 查看事务等待记录 select * from v$trxwait; # 查看阻塞锁状态 select * from v$lock; # 查看数据库内存信息 SELECT * FROM v$mem_pool; # 查看缓冲区信息 SELECT * FROM v$bufferpool; # 查看历史SQL统计 select * from v$SQL_STAT_HISTORY # 开启SQL日志 SP_SET_PARA_VALUE(1,'SVR_LOG',1) # 关闭SQL日志 SP_SET_PARA_VALUE(1,'SVR_LOG',0) # 查看数据库参数 select * from v$dm_ini select * from v$parameter;
二、达梦静默安装
2.1、静默-手动安装
-
准备文件
bashdm8_20251027_FTarm_kylin10_sp1_64.iso mkdir /mnt/dm8-1027 mount -t iso9660 dm8_20251027_FTarm_kylin10_sp1_64.iso /mnt/dm8-1027/ groupadd dinstall -g 2001 useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba if grep -q "dmdba soft nice" /etc/security/limits.conf ; then cat >> /etc/security/limits.conf << EOF dmdba soft nice 0 dmdba hard nice 0 dmdba soft as unlimited dmdba hard as unlimited dmdba soft fsize unlimited dmdba hard fsize unlimited dmdba soft nproc 65536 dmdba hard nproc 65536 dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba soft core unlimited dmdba hard core unlimited dmdba soft data unlimited dmdba hard data unlimited EOF fi mkdir -p /opt/dm8/dmdbms chown -R dmdba:dinstall /opt/dm8 chmod -R 755 /opt/dm8 -
dm.xml
xml# 自行修改密码 vim /mnt/dm.xml <?xml version="1.0"?> <DATABASE> <!--安装数据库的语言配置,安装中文版配置 ZH,英文版配置 EN,不区分大小写。不允许为空。--> <LANGUAGE>ZH</LANGUAGE> <!--安装程序的时区配置,默认值为+08:00,范围:-12:59 ~ +14:00 --> <TIME_ZONE>+08:00</TIME_ZONE> <!-- key 文件路径 --> <KEY></KEY> <!--安装程序组件类型,取值 0、1、2,0 表示安装全部,1 表示安装服务器,2 表示安装客户端。默认为 0。 --> <INSTALL_TYPE>0</INSTALL_TYPE> <!--安装路径,不允许为空。 --> <INSTALL_PATH>/opt/dm8/dmdbms</INSTALL_PATH> <!--是否初始化库,取值 Y/N、y/n,不允许为空。 --> <INIT_DB>Y</INIT_DB> <!--数据库实例参数 --> <DB_PARAMS> <!--初始数据库存放的路径,不允许为空 --> <PATH>/opt/dm8/dmdbms/data</PATH> <!--初始化数据库名字,默认是 DAMENG,不超过 128 个字符 --> <DB_NAME>DAMENG</DB_NAME> <!--初始化数据库实例名字,默认是 DMSERVER,不超过 128 个字符 --> <INSTANCE_NAME>DMSERVER</INSTANCE_NAME> <!--初始化时设置 dm.ini 中的 PORT_NUM,默认 5236,取值范围:1024~65534 --> <PORT_NUM>5236</PORT_NUM> <!--初始数据库控制文件的路径,文件路径长度最大为 256 --> <CTL_PATH></CTL_PATH> <!--初始数据库日志文件的路径,文件路径长度最大为 256 --> <LOG_PATHS> <LOG_PATH>/opt/dm8/dmdbms/data/dm01.log</LOG_PATH> <LOG_PATH>/opt/dm8/dmdbms/data/dm02.log</LOG_PATH> </LOG_PATHS> <!--数据文件使用的簇大小,只能是 16 页或 32 页之一,缺省使用 16 页 --> <EXTENT_SIZE>16</EXTENT_SIZE> <!--数据文件使用的页大小,缺省使用 8K,只能是 4K、8K、16K 或 32K 之一 --> <PAGE_SIZE>8</PAGE_SIZE> <!--日志文件使用的簇大小,默认是 256,取值范围 64 和 2048 之间的整数 --> <LOG_SIZE>256</LOG_SIZE> <!--标识符大小写敏感,默认值为 Y。只能是'Y', 'y', 'N', 'n', '1', '0'之一 --> <CASE_SENSITIVE>N</CASE_SENSITIVE> <!--字符集选项,默认值为 0。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR--> <CHARSET>0</CHARSET> <!--字符类型在计算 HASH 值时所采用的 HASH 算法类别。0:原始 HASH 算法;1:改进的HASH 算法。默认值为 1。 --> <USE_NEW_HASH>1</USE_NEW_HASH> <!--初始化时设置 SYSDBA 的密码,默认为 SYSDBA,长度在 9 到 48 个字符之间 --> <SYSDBA_PWD>写密码</SYSDBA_PWD> <!--初始化时设置 SYSAUDITOR 的密码,默认为 SYSAUDITOR,长度在 9 到 48 个字符之间 --> <SYSAUDITOR_PWD>写密码</SYSAUDITOR_PWD> <!--初始化时设置 SYSSSO 的密码,默认为 SYSSSO,长度在 9 到 48 个字符之间,仅在安全版本下可见和可设置 --> <SYSSSO_PWD>写密码</SYSSSO_PWD> <!--初始化时设置 SYSDBO 的密码,默认为 SYSDBO,长度在 9 到 48 个字符之间,仅在安全版本下可见和可设置 --> <SYSDBO_PWD>写密码</SYSDBO_PWD> <!--初始化时区,默认是东八区。格式为:正负号小时:分钟,范围:-12:59 ~ +14:00--> <TIME_ZONE>+08:00</TIME_ZONE> <!--是否启用页面内容校验,0:不启用;1:简单校验;2:严格校验(使用 CRC16 算法生成校验码)。默认 0 --> <PAGE_CHECK>0</PAGE_CHECK> <!--设置默认加密算法,不超过 128 个字符 --> <EXTERNAL_CIPHER_NAME></EXTERNAL_CIPHER_NAME> <!--设置默认 HASH 算法,不超过 128 个字符 --> <EXTERNAL_HASH_NAME></EXTERNAL_HASH_NAME> <!--设置根密钥加密引擎,不超过 128 个字符 --> <EXTERNAL_CRYPTO_NAME></EXTERNAL_CRYPTO_NAME> <!--全库加密密钥使用的算法名。算法可以是 DM 内部支持的加密算法,或者是第三方的加密算法。默认使用"AES256_ECB"算法加密,最长为 128 个字节 --> <ENCRYPT_NAME></ENCRYPT_NAME> <!--指定日志文件是否加密。默认值 N。取值 Y/N,y/n,1/0 --> <RLOG_ENC_FLAG>N</RLOG_ENC_FLAG> <!--用于加密服务器根密钥,最长为 48 个字节 --> <USBKEY_PIN></USBKEY_PIN> <!--设置空格填充模式,取值 0 或 1,默认为 0 --> <BLANK_PAD_MODE>0</BLANK_PAD_MODE> <!--指定 system.dbf 文件的镜像路径,默认为空 --> <SYSTEM_MIRROR_PATH></SYSTEM_MIRROR_PATH> <!--指定 main.dbf 文件的镜像路径,默认为空 --> <MAIN_MIRROR_PATH></MAIN_MIRROR_PATH> <!--指定 roll.dbf 文件的镜像路径,默认为空 --> <ROLL_MIRROR_PATH></ROLL_MIRROR_PATH> <!--是否是四权分立,默认值为 0(不使用)。仅在安全版本下可见和可设置。只能是 0 或 1--> <PRIV_FLAG>0</PRIV_FLAG> <!--指定初始化过程中生成的日志文件所在路径。合法的路径,文件路径长度最大为 257(含结束符),不包括文件名--> <ELOG_PATH></ELOG_PATH> </DB_PARAMS> <!--是否创建数据库实例的服务,值 Y/N y/n,不允许为空,不初始化数据库将忽略此节点。非 root 用户不能创建数据库服务。 --> <CREATE_DB_SERVICE>Y</CREATE_DB_SERVICE> <!--是否启动数据库,值 Y/N y/n,不允许为空,不创建数据库服务将忽略此节点。 --> <STARTUP_DB_SERVICE>Y</STARTUP_DB_SERVICE> </DATABASE> -
静默安装
bash./DMInstall.bin -q /mnt/dm.xml # 以下是安装过程 Extract install files.......... Hardware architecture verification passed! 2026-03-12 13:35:14 [INFO] 安装达梦数据库... 2026-03-12 13:35:14 [INFO] 安装 基础 模块... 2026-03-12 13:35:30 [INFO] 安装 服务器 模块... 2026-03-12 13:35:38 [INFO] 安装 客户端 模块... 2026-03-12 13:35:59 [INFO] 安装 驱动 模块... 2026-03-12 13:36:10 [INFO] 安装 手册 模块... 2026-03-12 13:36:12 [INFO] 安装 服务 模块... 2026-03-12 13:36:16 [INFO] 移动日志文件。 2026-03-12 13:36:20 [INFO] 正在启动DmAPService服务... 2026-03-12 13:36:24 [INFO] 启动DmAPService服务成功。 2026-03-12 13:36:24 [INFO] 安装达梦数据库完成。 2026-03-12 13:36:27 [INFO] 开始初始化数据库... 2026-03-12 13:36:28 [INFO] 初始化数据库完成。 2026-03-12 13:36:28 [INFO] 开始创建数据库服务... 2026-03-12 13:36:29 [INFO] 创建数据库服务完成。 2026-03-12 13:36:29 [INFO] 开始启动数据库实例服务(DmServiceDMSERVER)... 2026-03-12 13:36:44 [INFO] 启动数据库实例服务(DmServiceDMSERVER)完成。-
安装完成
bash用 达梦工具 直接连接测试即可 /opt/dm8/tools/manager 服务器如果有图形化也能直接打开 -
自启服务 - DmAPService.service
bashvim DmAPService.service [Unit] Description=DM Assistant Plug-In Service After=network-online.target remote-fs.target Wants=network-online.target [Service] Type=forking PIDFile=/opt/dm8/dmdbms/bin/pids/DmAPService.pid ExecStart="/opt/dm8/dmdbms/bin/DmAPService" start ExecStop="/opt/dm8/dmdbms/bin/DmAPService" stop PrivateTmp=true User=greatwall TasksMax=infinity LimitCORE=infinity LimitNOFILE=100000 LimitNPROC=100000 [Install] WantedBy=multi-user.target -
自启服务 - DmServiceDMSERVER.service
bashvim DmServiceDMSERVER.service [Unit] Description=DM Instance Service After=network-online.target remote-fs.target Wants=network-online.target [Service] Type=forking PIDFile=/opt/dm8/dmdbms/bin/pids/DmServiceDMSERVER.pid ExecStart="/opt/dm8/dmdbms/bin/DmServiceDMSERVER" start ExecStop="/opt/dm8/dmdbms/bin/DmServiceDMSERVER" stop PrivateTmp=true User=greatwall TasksMax=infinity LimitCORE=infinity LimitNOFILE=100000 LimitNPROC=100000 [Install] WantedBy=multi-user.target -
自启配置
bashcp 两个.service /usr/lib/systemd/system/ systemctl enable DmAPService.service systemctl enable DmServiceDMSERVER.service
-