DM8单实例部署

发布时间:2026/10/12 5:34:22
DM8单实例部署
达梦数据库统一化安装部署需求定制统一部署规范其中包含标准化安装实例创建参数优化归档和备份。一、部署环境要求1. 硬件环境要求1.1 服务器要求生产环境数据库服务器配置要求如下所示名称参数规格性能要求数量DM数据库服务器CPUARM、X86架构芯片、16核-1​内存32GB-​​网卡千兆以上网卡一块供应用访问ss-​​本地磁盘500GB块大小32K文件 随机读速度60MB/S 随机写速度30MB/S​​操作系统XXXX-​Windows客户端普通windows客户端符合安装DM数据库的基本要求主要用来做数据迁移时使用。要求所在网络能访问到源端mysql、Oracle数据库服务器和目的端服务器DM数据库服务器。迁移完毕后资源可释放​​1备注**对于没有配置UPS备用电源的数据库服务器建议关闭存储阵列RAID卡上的磁盘缓存。1.2 存储要求分类规划大小说明数据库服务器本地磁盘/dmdbms50G数据库软件安装目录根据现场情况设置​/dmdata700G数据文件目录根据现场情况设置​/dmarch300G归档目录根据现场情况设置​/dmbak700G数据库备份目录根据现场情况设置​/coredump700G系统core目录根据现场情况设置​/sqllog100Gsql日志根据现场情况设置备注**/dmdata、/dmarch、/dmbak应分开独立磁盘预防磁盘故障。1.3 网络要求名称参数规格性能指标数量备注网络业务网络交换机万兆交换机上传、下载速度100MB/S1-数据库服务器名称db业务服务名dmdb业务IPxx.xx.xx.xx针对不同的集群方案对网络配置的要求不同需按照如下要求对于DSC集群要求心跳网络至少采用万兆网络心跳网络采用双网卡绑定。尽量采用独立的心跳网络与业务网分离。对于数据守护集群建议使用独立的心跳网络同时心跳网络采用双网卡绑定。如采用自动切换模式务必使用独立心跳网络。2. 软件环境要求2.1 系统环境要求名称版本备注/命令操作系统麒麟nkvers系统时钟服务ntp包含数据服务器及集群监视器字符集字符集: zh_CNecho $LANG系统包C开发类gccgcc-4.4.7-3.el6.x86_64rpm –q gcc系统C运行库Linuxglibc 2.12 以上内核 2.6ldd --version系统C开发类GC​系统C开发类gdbgdb-7.2-60.el6.x86_64​系统包 JAVA开发类JDKjava version 1.7.0_09-icedteaJava -version系统命令处理器GNU bash, version 4.1.2(1)-release(x86_64-redhat-linux-gnu)bash --versuion系统安全外壳协议SSHssh -V远程终端协议telnettelnet输入/输出统计iostatiostatODBC组件UnixODBC2.3.1以上版本nmonnmonnmonperfperfperfpstackpstackPstackgdbgdbgdb**注意**推荐采用64位的CPU和操作系统为方便后期维护时分析问题建议安装perf、gdb、nmon、pstack等工具包。2.2 系统配置要求编号说明1创建用户组dinstall和dmdba用户1创建用户组groupadd dinstall2创建dmdba用户useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba3修改dmdba密码passwd dmdbaNWdameng.com2修改/dmdbms、/dmdata、/backup、/coredump、/sqllog几个目录的所属用户为dmdba所属组为dinstallchown -R dmdba:dinstall /dmdbmschown -R dmdba:dinstall /dmdatachown -R dmdba:dinstall /dmarchchown -R dmdba:dinstall /dmbakchown -R dmdba:dinstall /coredumpchown -R dmdba:dinstall /sqllog3修改dmdba用户资源限制vim /etc/security/limits.conf文件末尾添加如下内容dmdba soft fsize unlimiteddmdba hard fsize unlimiteddmdba soft nproc 65536dmdba hard nproc 65536dmdba soft nofile 65536dmdba hard nofile 65536dmdba soft core unlimiteddmdba hard core unlimiteddmdba soft nice 0dmdba hard nice 0dmdba soft as unlimiteddmdba hard as unlimiteddmdba soft stack 65536dmdba hard stack 65536注意通过systemctl或者systemd service方式设定随服务器自启动的数据库服务其能打开的最大文件描述符、proc数量等不受limits.conf控制需要修改/etc/systemd/system.conf文件增加类似DefaultLimitNOFILE65535修改完成后执行systemctl daemon-reexec才有效果如下DefaultLimitFSIZEunlimitedDefaultLimitDATAunlimitedDefaultLimitCOREunlimitedDefaultLimitNOFILE65535DefaultLimitASunlimitedDefaultLimitNPROC10240DefaultLimitNICE0修改完成后执行systemctl daemon-reexecsystemctl show --propertyDefaultLimitNOFILE检查是否修改成功在数据库运行之后可通过cat /proc/pid号/limits检查实际资源限制是否生效#3606 为进程的PID4关闭数据库服务的防火墙并将防火墙服务设置为开机不自动启动1关闭防火墙systemctl stop firewalld.service2防火墙开机不启systemctl disable firewalld.service5查看网络配置将网卡都设置为开机自动激活1查看网络配置情况ifconfig –a2确认网卡带宽是否为万兆ethtool eth03测试网络传输速度注意要测试双向的网络传输速度scp local_file remote_usernameremote_ip:remote_folder4检查所有的网卡都设置为开机自动激活cat /etc/sysconfig/network-scripts/ifcfg-eth1 |grep ONBOOTONBOOTyes6调整core文件生成路径vi /etc/sysctl.conf添加以下内容kernel.core_pattern /coredump/core.%e.%p.%tkernel.core_uses_pid 0vm.overcommit_memory0vm.swappiness 10执行生效sysctl -p##检查core文件生成是否正常su - dmdbakill -s SIGSEGV $$检查配置的core文件目录中是否有生产core文件。7关闭selinux1执行Getenforce检查selinux状态如果是enforceing代表开启disabled代表关闭2修改配置文件/etc/selinux/config修改SELINUXdisabled如果需要永久修改要重启机器临时关闭setenforce 08修改磁盘调度算法为deadline特别是ARM平台cat /sys/block/{DEVICE-NAME}/queue/scheduler注意把{DEVICE-NAME}替换会数据库所使用的对应的磁盘名称以下以sda为例。cat /sys/block/sda/queue/scheduler注意上图选中的调度算法是[cfq]需要修改调度算法为deadline。执行脚本set_deadline.sh注意这里的脚本会对服务器上的所有划分的盘都修改调度算法如果该服务器不是DM数据库独享那么需要评估一下风险。设置开机自启动将set_deadline.sh拷贝至/etc/rc.d/rc.loacl9关闭swap#临时关闭swapoff -a#防止自动挂载sed -ri s/.*swap.*/#/ /etc/fstab10ARENA参数检查为避免arena分配区开辟过多造成内存损耗在安装部署时需设置环境变量来限制arena的最大数量将其写入到dmdba环境变量设置中。vi /etc/profile加入以下内容export MALLOC_ARENA_MAX13. 磁盘性能测试磁盘性能测试DSC集群可以不用执行随机写nohup fio -filename/mnt/data01/test1 -ioenginesync -direct1 -rwrandwrite -bs64k -size10G -numjobs5 -runtime60 -group_reporting -namefio_test_job1 随机读nohup fio -filename/mnt/data01/test1 -ioenginesync -direct1 -rwrandread -bs64k -size10G -numjobs5 -runtime60 -group_reporting -namefio_test_job1 随机读写nohup fio -filename/mnt/data01/test1 -ioenginesync -direct1 -rwrandrw -bs64k -size10G -numjobs5 -runtime60 -group_reporting -namefio_test_job1 如果没有fio工具可以使用DD命令进行磁盘性能测试dd if/dev/zero of/xxx/dbdata/disktest.d bs32k count10k oflagdsync使用dstat或者pidstat -d 3查看磁盘速率。二、数据库软件安装及实例化1. 挂载安装镜像切换到root用户将上传的.iso文件挂载到一个临时目录以便访问其中的安装程序。# 创建挂载点 mkdir -p /mnt/dm8 挂载 ISO 文件 mount -o loop /root/dm8_20260710_x86_kylin10_sp3_64.iso /mnt/dm8 查看挂载内容确认有 DMInstall.bin 文件 ls -l /mnt/dm82. 开始命令行安装切换到dmdba用户进入挂载目录执行安装。# 切换到 dmdba 用户 su - dmdba 进入挂载点 cd /mnt/dm8 执行命令行安装-i 参数代表命令行模式 ./DMInstall.bin -i3. 根据提示进行交互执行后安装程序会进行一系列交互式问答关键点如下选择语言输入1选择简体中文。是否输入 Key 文件路径测试环境可输入n跳过。选择时区输入21选择中国标准时间。选择安装类型建议输入1选择典型安装。指定安装目录输入/dm8/dmdbms或你之前创建的目录。确认信息无误后等待安装完成。4. 执行配置脚本关键步骤安装过程中或结束时终端会提示使用root用户执行一个脚本以完成配置。# 切换到 root 用户另开一个终端或退出当前会话 # 执行安装日志中提示的脚本通常路径如下 /dm8/dmdbms/script/root/root_installer.sh5. 卸载安装镜像安装完成后卸载挂载的路径。umount /mnt/dm8三、初始化数据库实例并注册为系统服务1. 初始化数据库实例使用dminit工具创建数据库实例。# 切换到 dmdba 用户 su - dmdba 进入数据库的 bin 目录 cd /dm8/dmdbms/bin 执行初始化请根据需求调整参数 ./dminit path/home/dmdba/dm/dbdata/dmdata page_size32 log_size2048 charset0 case_sensitive1 rlog_gen_for_huge0 blank_pad_mode0 sysdba_pwdDmdb2026 sysauditor_pwdDmdb2026 syssso_pwdDmdb2026注意大小写敏感和字符集参数case_sensitive参数 1 表示大小写敏感、0 表示大小写不敏感charset参数 0 表示 GB18030、1 表示 UTF-8blank_pad_mode参数 0 表示不填充、1 表示填充。管理员、审计员、安全账号密码均为Dmdb2026。2. 配置数据库启动脚本su - dmdba cd /home/dmdba/dm/dmdbms/bin cp service_template/DmService dmserverd vim dmserverd将INI_PATH参数值改成/home/dmdba/dm/dmdbms/bin/dm.ini将MALLOC_ARENA_MAX修改为 1没有就加上。关注参数PORT_NUM、COMPATIBLE_MODE、EXCLUDE_RESERVED_WORDS3. 拷贝配置文件拷贝提供的dmarch.ini、sqllog.ini文件到/home/dmdba/dm/dbdata/dmdata/DAMENG假设这两个文件放在/home/dmdba/dm/dmsoft下。cp /home/dmdba/dm/dmsoft/dmarch.ini /home/dmdba/dm/dbdata/dmdata/DAMENG cp /home/dmdba/dm/dmsoft/sqllog.ini /home/dmdba/dm/dbdata/dmdata/DAMENG4. 启动数据库服务su - dmdba cd /home/dmdba/dm/dmdbms/bin ./dmserverd start注意检查dm.ini和dmarch.ini中的文件路径。5. 创建定时全量备份任务每周日凌晨 1:15 做 1 次全备保留 2 份。su - dmdba cd /home/dmbda/dm/dmdbms/bin ./disql SYSDBA/Dmdb2026登录数据库后全选执行以下 SQLSP_INIT_JOB_SYS(1); call SP_CREATE_JOB(DB_BAK,1,0,,0,0,,0,); call SP_JOB_CONFIG_START(DB_BAK); call SP_ADD_JOB_STEP(DB_BAK, BAK, 6, 01000000/home/dmdba/dm/dbbak/dmbak, 3, 1, 0, 0, NULL, 0); call SP_ADD_JOB_STEP(DB_BAK, DEL, 0, SF_BAKSET_BACKUP_DIR_ADD(DISK,/home/dmdba/dm/dbbak/dmbak); call SP_DB_BAKSET_REMOVE_BATCH(DISK,SYSDATE-15);, 1, 1, 0, 0, NULL, 0); call SP_ADD_JOB_SCHEDULE(DB_BAK, SCHEDULE, 1, 2, 1, 1, 0, 01:15:00, NULL, 2024-09-24 11:58:44, NULL, ); call SP_JOB_CONFIG_COMMIT(DB_BAK);6. 创建定时增量备份任务每周一、周二、周三、周四、周五和周六凌晨 1:15 执行一次。su - dmdba cd /home/dmbda/dm/dmdbms/bin ./disql SYSDBA/Dmdb2026登录数据库后全选执行以下 SQLcall SP_CREATE_JOB(INCREBACKUP,1,0,,0,0,,0,); call SP_JOB_CONFIG_START(INCREBACKUP); call SP_ADD_JOB_STEP(INCREBACKUP, BAK, 6, 11000000/home/dmdba/dm/dbbak/dmbak|/home/dmdba/dm/dbbak/dmbak, 1, 1, 0, 0, NULL, 0); call SP_ADD_JOB_SCHEDULE(INCREBACKUP, SCHEDULE, 1, 2, 1, 126, 0, 01:15:00, NULL, 2024-09-25 11:35:41, NULL, ); call SP_JOB_CONFIG_COMMIT(INCREBACKUP);7. 创建定时收集统计信息任务cd /home/dmdba/dm/dmdbms/bin ./disql SYSDBA/Dmdb2026:5237复制以下内容粘贴执行每周六凌晨 1 点执行收集索引列统计信息、每周六凌晨 2 点执行收集系统表统计信息create or replace procedure SYSDBA.PRO_STAT_COLUMN as declare v_sq1 varchar(1000); begin for v_i in (select a.owner,a.table_name,b.column_name from dba_indexes a join dba_ind_columns b on (a.index_name b.index_name and a.table_owner b.table_owner and a.table_name b.table_name) where a.table_owner not in (SYSAUDITOR,SYSSSO,SYS) and a.table_name not like %MTAB% and a.table_name not like %MLOG% order by 1,2) loop v_sq1 : stat 100 on ||v_i.owner||.||v_i.table_name||(||v_i.column_name||);; begin execute immediate v_sq1; exception when others then null; end; for v_j in (select cache_item from v$cachepln where upper(sqlstr) like %||v_i.table_name||%) loop begin execute immediate begin sp_clear_plan_cache(:1);end; using v_j.cache_item; exception when others then null; end; end loop; end loop; end; call SP_CREATE_JOB(PRO_STATS_COLUMN,1,0,,0,0,,0,); call SP_JOB_CONFIG_START(PRO_STATS_COLUMN); call SP_ADD_JOB_STEP(PRO_STATS_COLUMN, STEP1, 0, CALL SYSDBA.PRO_STAT_COLUMN();, 1, 1, 0, 0, NULL, 0); call SP_ADD_JOB_SCHEDULE(PRO_STATS_COLUMN, SCHEDULE, 1, 2, 1, 64, 0, 01:00:00, NULL, 2025-08-28 14:06:19, NULL, ); call SP_JOB_CONFIG_COMMIT(PRO_STATS_COLUMN); call SP_CREATE_JOB(PRO_STATS_SYS,1,0,,0,0,,0,); call SP_JOB_CONFIG_START(PRO_STATS_SYS); call SP_ADD_JOB_STEP(PRO_STATS_SYS, STEP1, 0, DBMS_STATS.GATHER_SCHEMA_STATS(SYS,100,TRUE,FOR ALL COLUMNS SIZE AUTO);, 1, 1, 0, 0, NULL, 0); call SP_ADD_JOB_SCHEDULE(PRO_STATS_SYS, SCHEDULE, 1, 2, 1, 64, 0, 02:00:00, NULL, 2026-06-09 14:16:22, NULL, ); call SP_JOB_CONFIG_COMMIT(PRO_STATS_SYS);8. 配置开机自启动su - root cp /home/dmdba/dm/dmdbms/bin/dmserverd /etc/init.d cd /etc/init.d chkconfig dmserverd on较新的系统可以使用systemctl enable dmserverd.service。检查启动项chkconfig --list9. 服务器配置 nmon上传 nmon 工具设置每天 0、6、12、18 点开启采集间隔 5 秒采集一次一次采集 4320 次日志文件保留 7 天。# 上传 nmon_x86_64_linux 到 /home/dmdba/dm/nmon mkdir -p /home/dmdba/dm/nmon/nmon_log使用 root 用户设置 crontabcrontab -e 0 0,6,12,18 * * * /home/dmdba/dm/nmon/nmon_x86_64_linux -f -t -s 5 -c 4320 -m /home/dmdba/dm/nmon/nmon_log 0 0 * * * find /home/dmdba/dm/nmon/nmon_log -type f -name *.nmon -mtime 7 -exec rm -f {} \;10. 优化备份速度修改 dmbr 的值避免备份执行时间变长。select para_name,para_value from v$dm_ini where para_name ENABLE_BRCFG;通过 disql 工具执行以下 SQL 开启 dmbr 功能SP_SET_PARA_VALUE(1,ENABLE_BRCFG,1);执行完成后到 SYSTEM_PATH 路径下确认是否生成dmcfg.ctl文件确认生成后再执行下列 SQL调整备份的线程和备份池大小backup configure read size 1024; backup configure task thread 16; backup configure parallel 1; backup configure package size 16; backup configure pool size 4096;11. 注册数据库服务到系统为了便于管理需将数据库服务注册到系统中。# 切换到 root 用户 # 进入服务注册脚本目录 cd /dm8/dmdbms/script/root 执行注册命令-p 后的 DMSERVER 是服务名后缀 ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DAMENG/dm.ini -p DMSERVER12. 登录数据库进行最终验证# 切换到 dmdba 用户使用 disql 工具连接 su - dmdba /dm8/dmdbms/bin/disql SYSDBA/Dameng123456localhost:5236参考链接达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台