1. 达梦数据库服务器版本安装前的准备工作
在开始安装达梦数据库服务器版本之前,我们需要做好充分的准备工作。作为国产数据库的佼佼者,达梦数据库在企业级应用中越来越受到重视,特别是在一些对数据安全有特殊要求的场景中。
1.1 系统环境检查
首先需要确认你的服务器满足达梦数据库的最低系统要求。根据达梦官方文档,服务器版本通常需要:
- 操作系统:支持主流Linux发行版(如CentOS 7/8、Ubuntu Server 18.04/20.04、麒麟V10等)
- 内存:建议至少8GB(生产环境推荐16GB以上)
- 磁盘空间:安装目录需要至少10GB可用空间,数据目录根据实际需求规划
- CPU:建议4核以上
提示:虽然达梦也支持Windows Server安装,但生产环境强烈建议使用Linux服务器版本,性能更稳定且资源占用更低。
可以通过以下命令检查Linux服务器的基本配置:
bash复制# 查看CPU信息
cat /proc/cpuinfo | grep "processor" | wc -l
# 查看内存大小(GB)
free -g
# 查看磁盘空间
df -h
1.2 安装包获取与验证
达梦数据库的安装包需要通过官方渠道获取。目前最新稳定版本是DM8,你可以:
- 访问达梦官网下载专区(需注册账号)
- 选择对应的服务器版本安装包(注意区分x86和ARM架构)
- 下载完成后验证文件完整性:
bash复制# 计算MD5值
md5sum dm8_20230101_x86_rh7_64.iso
# 与官网提供的MD5校验值对比
1.3 系统参数调整
为了确保达梦数据库的最佳性能,建议在安装前调整以下系统参数:
- 修改内核参数(/etc/sysctl.conf):
conf复制kernel.sem = 250 32000 100 128
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 4194304
- 修改用户限制(/etc/security/limits.conf):
conf复制dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft stack 32768
dmdba hard stack 32768
- 执行以下命令使修改生效:
bash复制sysctl -p
1.4 创建安装用户和组
达梦数据库不建议直接使用root用户安装和运行,最佳实践是创建专用用户:
bash复制groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
设置安装目录权限:
bash复制mkdir /opt/dmdbms
chown dmdba:dinstall /opt/dmdbms
chmod 775 /opt/dmdbms
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 达梦数据库服务器版本安装步骤
2.1 挂载安装镜像
将下载的ISO安装包挂载到服务器:
bash复制mkdir /mnt/dm
mount -o loop dm8_20230101_x86_rh7_64.iso /mnt/dm
切换到dmdba用户:
bash复制su - dmdba
2.2 命令行安装过程
达梦数据库提供了图形化和命令行两种安装方式,服务器环境推荐使用命令行安装:
- 进入挂载目录:
bash复制cd /mnt/dm
- 执行安装命令:
bash复制./DMInstall.bin -i
- 按照提示进行安装配置:
code复制请选择安装语言(C/c:中文 E/e:英文) [C]:
是否输入Key文件路径? (Y/y:是 N/n:否) [Y]: N
是否设置时区? (Y/y:是 N/n:否) [Y]: Y
请选择时区 [21]: 21 (中国标准时间)
请选择安装类型 (1-典型安装 2-服务器 3-客户端 4-自定义) [1]: 2
请选择安装目录 [/opt/dmdbms]:
可用空间: 98.6GB, 是否继续? (Y/y:是 N/n:否) [Y]: Y
开始安装...
- 安装完成后,会提示执行root脚本:
bash复制exit # 退出dmdba用户回到root
/opt/dmdbms/script/root/root_installer.sh
2.3 初始化数据库实例
安装完成后需要初始化数据库实例:
bash复制su - dmdba
cd /opt/dmdbms/bin
./dminit path=/opt/dmdbms/data db_name=DAMENG instance_name=DMSERVER port_num=5236
关键参数说明:
- path:数据文件存放路径
- db_name:数据库名
- instance_name:实例名
- port_num:监听端口(默认为5236)
2.4 注册数据库服务
为了方便管理,建议将达梦数据库注册为系统服务:
- 使用root用户执行:
bash复制/opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data/DAMENG/dm.ini -p DMSERVER
- 启动数据库服务:
bash复制systemctl start DmServiceDMSERVER
systemctl enable DmServiceDMSERVER
- 检查服务状态:
bash复制systemctl status DmServiceDMSERVER
3. 安装后配置与验证
3.1 环境变量配置
为了方便使用达梦命令行工具,建议配置环境变量:
在dmdba用户的.bashrc文件中添加:
bash复制export DM_HOME=/opt/dmdbms
export PATH=$DM_HOME/bin:$PATH
export LD_LIBRARY_PATH=$DM_HOME/bin:$LD_LIBRARY_PATH
使配置生效:
bash复制source ~/.bashrc
3.2 数据库连接测试
使用达梦自带的disql工具测试连接:
bash复制disql SYSDBA/SYSDBA@localhost:5236
成功连接后,可以执行基本SQL测试:
sql复制SELECT * FROM V$VERSION;
CREATE TABLE test(id INT, name VARCHAR(50));
INSERT INTO test VALUES(1, '达梦测试');
SELECT * FROM test;
3.3 防火墙配置
如果服务器启用了防火墙,需要开放达梦数据库端口:
bash复制firewall-cmd --zone=public --add-port=5236/tcp --permanent
firewall-cmd --reload
3.4 修改默认密码
安装完成后,应立即修改默认的SYSDBA账户密码:
sql复制ALTER USER SYSDBA IDENTIFIED BY "新密码";
4. 常见问题与解决方案
4.1 安装过程中的常见错误
问题1:安装时提示"交换空间不足"
解决方案:
bash复制# 创建交换文件
dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
# 永久生效
echo '/swapfile swap swap defaults 0 0' >> /etc/fstab
问题2:启动服务时报错"共享内存不足"
解决方案:
bash复制# 修改内核参数
echo "kernel.shmmax = 68719476736" >> /etc/sysctl.conf
echo "kernel.shmall = 4294967296" >> /etc/sysctl.conf
sysctl -p
4.2 连接问题排查
问题:客户端无法连接数据库
排查步骤:
- 检查服务是否运行:
bash复制systemctl status DmServiceDMSERVER
- 检查监听端口:
bash复制netstat -tlnp | grep 5236
- 检查防火墙设置:
bash复制firewall-cmd --list-ports
- 检查数据库连接数限制:
sql复制-- 查看最大连接数
SELECT * FROM V$PARAMETER WHERE NAME LIKE '%MAX%SESSION%';
4.3 性能调优建议
- 内存配置调整(修改dm.ini文件):
ini复制MEMORY_TARGET = 4096 # 共享内存大小(MB)
MEMORY_MAX_TARGET = 8192
BUFFER = 1000 # 数据缓冲区大小(MB)
- 定期维护:
sql复制-- 统计信息收集
DBMS_STATS.GATHER_SCHEMA_STATS('SYSDBA');
-- 表空间检查
SELECT TABLESPACE_NAME, STATUS, BYTES/1024/1024 "SIZE(MB)"
FROM DBA_DATA_FILES;
- 备份策略设置:
bash复制# 使用达梦的dmrman工具进行备份
/opt/dmdbms/bin/dmrman CTLSTMT="BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/opt/dmbackup/fulldb_bak'"
5. 进阶配置与管理
5.1 多实例配置
一台服务器可以运行多个达梦数据库实例,每个实例使用不同的端口:
- 初始化新实例:
bash复制/opt/dmdbms/bin/dminit path=/opt/dmdbms/data2 db_name=DAMENG2 instance_name=DMSERVER2 port_num=5237
- 注册新服务:
bash复制/opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data2/DAMENG2/dm.ini -p DMSERVER2
- 启动新实例:
bash复制systemctl start DmServiceDMSERVER2
5.2 远程管理配置
- 启用达梦管理工具远程连接:
修改dm.ini文件:
ini复制ENABLE_REMOTE_OSAUTH = 1 # 启用远程OS认证
ENABLE_ENCRYPT = 1 # 启用通信加密
- 配置客户端连接:
使用达梦管理工具或DBeaver等第三方工具连接时,需要:
- 主机:服务器IP
- 端口:5236(或自定义端口)
- 用户名:SYSDBA
- 密码:安装时设置的密码
5.3 监控与日志管理
- 查看数据库运行状态:
sql复制-- 查看会话信息
SELECT * FROM V$SESSIONS;
-- 查看锁信息
SELECT * FROM V$LOCK;
- 日志文件位置:
- 系统日志:/opt/dmdbms/log/dm_xxx.log
- 跟踪日志:/opt/dmdbms/data/DAMENG/trace/*.trc
- 告警日志:/opt/dmdbms/data/DAMENG/dm_alert_实例名.log
- 设置日志轮转:
修改dm.ini文件:
ini复制MAX_LOG_FILE_SIZE = 1024 # 单个日志文件最大大小(MB)
LOG_FILE_NUM = 10 # 保留的日志文件数量
5.4 备份与恢复策略
- 物理备份(推荐):
bash复制# 全量备份
/opt/dmdbms/bin/dmrman CTLSTMT="BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/opt/dmbackup/fulldb_bak'"
# 增量备份
/opt/dmdbms/bin/dmrman CTLSTMT="BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' INCREMENT WITH BACKUPDIR '/opt/dmbackup' TO INCR_BACKUP_FILE1 BACKUPSET '/opt/dmbackup/incr_bak'"
- 逻辑备份(导出):
bash复制/opt/dmdbms/bin/dexp SYSDBA/SYSDBA@localhost:5236 FILE=db_full.dmp LOG=db_exp.log FULL=Y
- 恢复测试:
bash复制# 关闭数据库
systemctl stop DmServiceDMSERVER
# 使用dmrman恢复
/opt/dmdbms/bin/dmrman CTLSTMT="RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmbackup/fulldb_bak'"
# 启动数据库
systemctl start DmServiceDMSERVER
6. 达梦数据库客户端工具配置
6.1 达梦管理工具安装
- 从官网下载DM管理工具(与服务器版本匹配)
- Windows环境下直接运行安装程序
- 配置连接:
- 主机名:服务器IP
- 端口号:5236
- 用户名:SYSDBA
- 密码:安装时设置的密码
6.2 使用DBeaver连接达梦
- 下载并安装DBeaver
- 下载达梦JDBC驱动(dmjdbc.jar)
- 在DBeaver中创建新连接:
- 驱动类型:Generic
- JDBC URL:jdbc:dm://服务器IP:5236
- 驱动文件:选择下载的dmjdbc.jar
- 用户名/密码:SYSDBA/密码
6.3 Navicat连接配置
- 在Navicat中创建新连接,选择"ODBC"类型
- 配置达梦ODBC驱动(需先安装达梦客户端)
- 连接参数:
- 主机:服务器IP
- 端口:5236
- 用户名:SYSDBA
- 密码:安装时设置的密码
6.4 命令行工具使用技巧
- disql常用命令:
sql复制-- 执行SQL文件
start /path/to/script.sql
-- 输出格式化
set linesize 200
set pagesize 100
-- 查看执行计划
explain SELECT * FROM large_table;
- 批量导入数据:
bash复制/opt/dmdbms/bin/dimp SYSDBA/SYSDBA@localhost:5236 FILE=data.dmp LOG=imp.log FULL=Y
7. 达梦数据库与常用开发环境集成
7.1 Python连接达梦数据库
- 安装Python驱动:
bash复制pip install dmPython
- 示例代码:
python复制import dmPython
conn = dmPython.connect(
user='SYSDBA',
password='yourpassword',
server='192.168.1.100',
port=5236,
autoCommit=True
)
cursor = conn.cursor()
cursor.execute("SELECT * FROM V$VERSION")
for row in cursor:
print(row)
conn.close()
7.2 Java应用集成
- 添加Maven依赖:
xml复制<dependency>
<groupId>com.dameng</groupId>
<artifactId>dmjdbc</artifactId>
<version>8.1.1.126</version>
</dependency>
- JDBC连接示例:
java复制import java.sql.*;
public class DamengDemo {
public static void main(String[] args) {
String url = "jdbc:dm://192.168.1.100:5236";
String user = "SYSDBA";
String password = "yourpassword";
try (Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement()) {
ResultSet rs = stmt.executeQuery("SELECT * FROM V$VERSION");
while (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
7.3 与Spring Boot集成
- 配置application.properties:
properties复制spring.datasource.url=jdbc:dm://192.168.1.100:5236
spring.datasource.username=SYSDBA
spring.datasource.password=yourpassword
spring.datasource.driver-class-name=dm.jdbc.driver.DmDriver
- 配置数据源:
java复制@Configuration
public class DataSourceConfig {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
}
7.4 达梦数据库与Docker集成
- 拉取达梦官方Docker镜像:
bash复制docker pull dameng/dm8:latest
- 运行容器:
bash复制docker run -d --name dm8 \
-p 5236:5236 \
-e PAGE_SIZE=16 \
-e CASE_SENSITIVE=0 \
-e CHARSET=1 \
-e LENGTH_IN_CHAR=1 \
-v /data/dmdata:/opt/dmdbms/data \
dameng/dm8:latest
- 连接容器中的达梦数据库:
bash复制docker exec -it dm8 /opt/dmdbms/bin/disql SYSDBA/SYSDBA@localhost:5236
