1. 硬件环境检查
在安装dm达梦数据库之前,必须对服务器的硬件环境进行全面检查,确保满足dm达梦8.0的最低要求。更多学习教程www.fgedu.net.cn
# free -h
total used free shared buff/cache available
Mem: 64G 2.2G 60G 9.1M 1.8G 61G
Swap: 32G 0B 32G
# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 9.1M 32G 1% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/sda1 50G 18G 33G 35% /
/dev/sdb1 500G 25G 475G 5% /data
# 检查CPU核心数
# nproc
32
# 检查系统架构
# uname -m
x86_64
2. 操作系统检查
dm达梦8.0支持Red Hat Enterprise Linux 7.0及以上版本。本文以RHEL 9.0为例。学习交流加群风哥微信: itpux-com
# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.0 (Plow)
# 检查内核版本
# uname -r
5.14.0-70.22.1.el9_0.x86_64
# 检查SELinux状态
# getenforce
Disabled
# 关闭SELinux(如未关闭)
# vi /etc/selinux/config
SELINUX=disabled
# 检查防火墙状态
# systemctl status firewalld
# 开放dm达梦默认端口(5236)
# firewall-cmd –permanent –add-port=5236/tcp
# firewall-cmd –reload
3. 安装前准备
安装dm达梦数据库前,需要进行一系列准备工作,包括创建用户、目录结构和配置系统参数。
# groupadd dinstall
# useradd -g dinstall dmdba
# passwd dmdba
Changing password for user dmdba.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
# 创建安装目录
# mkdir -p /data/dm8
# chown -R dmdba:dinstall /data/dm8
# chmod -R 755 /data/dm8
# 创建数据目录和备份目录
# mkdir -p /data/dm8/data
# mkdir -p /backup/dm8
# chown -R dmdba:dinstall /data/dm8/data
# chown -R dmdba:dinstall /backup/dm8
# vi /etc/sysctl.conf
# 添加以下参数
fs.file-max = 6815744
kernel.shmmax = 34359738368
kernel.shmall = 8388608
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
# 使参数生效
# sysctl -p
# vi /etc/security/limits.conf
# 添加以下内容
dmdba soft nproc 2047
dmdba hard nproc 16384
dmdba soft nofile 1024
dmdba hard nofile 65536
dmdba soft stack 10240
dmdba hard stack 32768
4. dm达梦软件安装
dm达梦8.0软件安装可以通过图形化界面或命令行方式进行。本文以命令行安装为例。
# su – dmdba
# 挂载安装光盘或上传安装文件
$ mkdir -p /tmp/dm8
$ mount -o loop dm8_20230101_x86_rh9_64.iso /tmp/dm8
# 执行安装命令
$ cd /tmp/dm8
$ ./DMInstall.bin -i
# 安装过程交互
请选择安装语言 [1.中文 2.English]:1
请输入安装目录 [/home/dmdba/dmdbms]:/data/dm8
请选择安装类型 [1.典型安装 2.服务器安装 3.客户端安装 4.自定义安装]:1
安装前小结
安装位置: /data/dm8
产品目录: /data/dm8
是否确认安装? (Y/y:是 N/n:否):Y
# /data/dm8/script/root_installer.sh
正在执行_root_installer.sh脚本
设置权限…
创建DmAPService服务…
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务…
DmAPService服务启动成功
5. 数据库配置
安装完成后,需要创建和配置数据库实例。
# su – dmdba
# 使用dbca工具创建数据库
$ /data/dm8/bin/dbca.sh
# 图形化界面创建数据库步骤:
# 步骤1:选择”创建数据库” → 点击”下一步”
# 步骤2:输入数据库名称:fgedudb
# 步骤3:输入实例名:fgedudb
# 步骤4:输入端口号:5236
# 步骤5:选择数据文件存放路径:/data/dm8/data
# 步骤6:设置初始大小:100GB
# 步骤7:设置日志文件大小:500MB
# 步骤8:设置SYSDBA密码
# 步骤9:点击”完成”开始创建数据库
$ /data/dm8/bin/dminit PATH=/data/dm8/data DB_NAME=fgedudb INSTANCE_NAME=fgedudb PORT_NUM=5236
# 注册数据库服务
# /data/dm8/bin/dm_service_installer.sh -t dmserver -p fgedudb -dm_ini /data/dm8/data/fgedudb/fgedudb.ini
# 启动数据库服务
# systemctl start DmServicefgedudb
# systemctl enable DmServicefgedudb
# systemctl status DmServicefgedudb
● DmServicefgedudb.service – DM Database Service
Loaded: loaded (/usr/lib/systemd/system/DmServicefgedudb.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2026-03-31 10:00:00 CST; 1min ago
Process: 12345 ExecStart=/data/dm8/bin/dmserver /data/dm8/data/fgedudb/fgedudb.ini (code=exited, status=0/SUCCESS)
Main PID: 12346 (dmserver)
Tasks: 50
Memory: 2.5G
CPU: 1.2%
CGroup: /system.slice/DmServicefgedudb.service
└─12346 /data/dm8/bin/dmserver /data/dm8/data/fgedudb/fgedudb.ini
6. 测试验证
数据库创建完成后,需要进行测试验证,确保数据库正常运行。学习交流加群风哥QQ113257174
$ /data/dm8/bin/disql SYSDBA/SYSDBA@localhost:5236
服务器[localhost:5236]:处于普通打开状态
登录使用时间 : 2.348(ms)
disql V8
SQL>
# 创建测试表
SQL> CREATE TABLE fgedu_employees (
2 emp_id NUMBER(10) PRIMARY KEY,
3 emp_name VARCHAR2(50),
4 salary NUMBER(10,2),
5 hire_date DATE
6 );
操作已执行
# 插入测试数据
SQL> INSERT INTO fgedu_employees VALUES (1, ‘张三’, 5000.00, SYSDATE);
SQL> INSERT INTO fgedu_employees VALUES (2, ‘李四’, 6000.00, SYSDATE);
SQL> COMMIT;
# 查询测试数据
SQL> SELECT * FROM fgedu_employees;
行号 EMP_ID EMP_NAME SALARY HIRE_DATE
———- ———– ———– ———- ——————-
1 1 张三 5000.00 2026-03-31 10:10:00
2 2 李四 6000.00 2026-03-31 10:10:00
已用时间: 2.132(毫秒). 执行号:3.
7. 备份配置
为确保数据安全,需要配置数据库备份策略。
$ /data/dm8/bin/disql SYSDBA/SYSDBA@localhost:5236
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE ADD ARCHIVELOG ‘DEST=/backup/dm8/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400’;
SQL> ALTER DATABASE OPEN;
# 验证归档模式
SQL> SELECT ARCH_MODE FROM V$DATABASE;
行号 ARCH_MODE
———- ———-
1 Y
已用时间: 1.234(毫秒). 执行号:7.
$ vi /data/dm8/scripts/full_backup.sh
#!/bin/bash
BACKUP_DIR=/backup/dm8/full
DATE=$(date +%Y%m%d%H%M%S)
mkdir -p $BACKUP_DIR
/data/dm8/bin/dexp SYSDBA/SYSDBA@localhost:5236 FILE=$BACKUP_DIR/fgedudb_full_$DATE.dmp FULL=Y
# 赋予执行权限
$ chmod +x /data/dm8/scripts/full_backup.sh
# 配置定时任务
$ crontab -e
# 添加每日凌晨2点执行全量备份
0 2 * * * /data/dm8/scripts/full_backup.sh
8. 升级迁移
本节介绍dm达梦数据库的升级和迁移方法。更多学习教程公众号风哥教程itpux_com
8.1 数据库升级
# systemctl stop DmServicefgedudb
# 备份当前数据库
# cp -r /data/dm8/data/fgedudb /backup/dm8/backup_before_upgrade
# 执行升级命令
$ /data/dm8/bin/dmupgradectl upgrade /data/dm8/data/fgedudb
# 启动数据库服务
# systemctl start DmServicefgedudb
# 验证升级结果
$ /data/dm8/bin/disql SYSDBA/SYSDBA@localhost:5236
SQL> SELECT * FROM V$VERSION;
行号 BANNER
———- ——————————
1 DM Database Server 8.0.2.123
2 DB Version: 0x7000a
已用时间: 1.567(毫秒). 执行号:1.
8.2 数据库迁移
$ /data/dm8/bin/dexp SYSDBA/SYSDBA@source_host:5236 FILE=/backup/dm8/migration/fgedudb.dmp FULL=Y
# 将导出文件复制到目标服务器
$ scp /backup/dm8/migration/fgedudb.dmp dmdba@target_host:/backup/dm8/migration/
# 在目标服务器执行导入
$ /data/dm8/bin/dimp SYSDBA/SYSDBA@localhost:5236 FILE=/backup/dm8/migration/fgedudb.dmp FULL=Y
# 验证迁移结果
$ /data/dm8/bin/disql SYSDBA/SYSDBA@localhost:5236
SQL> SELECT COUNT(*) FROM fgedu_employees;
行号 COUNT(*)
———- ———-
2 2
已用时间: 1.234(毫秒). 执行号:3.
9. 性能优化
为提高dm达梦数据库性能,需要进行一系列参数优化。
$ vi /data/dm8/data/fgedudb/fgedudb.ini
# 优化内存参数
MEMORY_POOL = 200
BUFFER = 4096
RECYCLE = 1024
SORT_BUF_SIZE = 512
# 优化日志参数
RLOG_POOL_SIZE = 256
RLOG_SEND_APPLY_MON = 64
# 优化并发参数
MAX_SESSIONS = 1000
MAX_SESSIONS_PER_USER = 100
# systemctl restart DmServicefgedudb
# 验证参数设置
$ /data/dm8/bin/disql SYSDBA/SYSDBA@localhost:5236
SQL> SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME IN (‘MEMORY_POOL’, ‘BUFFER’, ‘RECYCLE’, ‘SORT_BUF_SIZE’);
行号 NAME VALUE
———- ———— ———-
1 MEMORY_POOL 200
2 BUFFER 4096
3 RECYCLE 1024
4 SORT_BUF_SIZE 512
已用时间: 1.345(毫秒). 执行号:1.
10. 故障排查
本节介绍dm达梦数据库常见故障的排查方法。from:fengge
10.1 数据库无法启动
$ cat /data/dm8/data/fgedudb/fgedudb_alert.log
# 检查数据库服务状态
# systemctl status DmServicefgedudb
# 检查端口是否被占用
# netstat -tuln | grep 5236
10.2 连接失败
$ ping localhost
# 检查防火墙设置
# firewall-cmd –list-ports
# 检查数据库监听状态
$ /data/dm8/bin/dmserver /data/dm8/data/fgedudb/fgedudb.ini status
10.3 性能问题
# top
# 查看数据库会话状态
$ /data/dm8/bin/disql SYSDBA/SYSDBA@localhost:5236
SQL> SELECT SESS_ID, USER_NAME, STATUS, SQL_TEXT FROM V$SESSIONS WHERE STATUS=’ACTIVE’;
# 查看慢SQL
SQL> SELECT * FROM V$LONG_EXEC_SQL;
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
