1 版本介绍
达梦数据库支持在多个平台部署,摘取部分信息如下,详细可以去该链接了解https://eco.dameng.com/document/dm/zh-cn/start/dm-version-differences.html

2 部署环境
2.1 部署环境信息
用途 | 类别 | 配置 | 数量 |
数据库服务器 | 硬件 | 处理器架构:Power10 处理器规格:IBM,9080-HEX(共享预分2核16线程,最大12核96线程) 内存规格:256GB 硬盘规格:1.6TB | 1 |
软件 | 操作系统:AIX 7.2 TL5 SP4 数据库:达梦V8 |
2.2 单机部署规划
IP规划:
主机名 | 服务ip | 数据库名 | 实例名 |
dmdb | dmdb |
端口规划:
实例名 | 实例端口 |
dmdb | 5236 |
本地存储LVM磁盘规划:(按实际需求调整磁盘空间)
磁盘 | LVM磁盘名/用途 |
/dev/sdc(100G) | /dev/dmappvg/dmapplv (数据库安装磁盘) |
/dev/sde(500G) | /dev/dmdatavg/dmdatalv (数据磁盘) |
/dev/sdf(500G) | /dev/dmbakvg/dmbaklv (备份磁盘) |
目录规划:(在对应服务器上创建目录owner为dmdba组为dinstall)
数据库软件安装目录 | /home/dmdba/dmdbms |
实例安装目录 | /dmdata |
归档日志存放目录 | /dmdata/arch |
备份文件存放目录 | /dmdata/dmbak |
3 系统参数配置
3.1 创建数据库用户和组
mkgroup dinstall useradd -g dinstall -d /home/dmdba -m dmdba passwd dmdba --密码自己定义即可 Dameng123 |
3.2 创建目录并授权
mkdir -p /dmdata/arch mkdir -p /dmdata/dmbak chown -R dmdba:dinstall /dmdata chmod -R 775 /dmdata |
3.3 配置环境变量
切换到dmdba用户配置环境变量,添加字符集否则disql登录使用中文会乱码
su - dmdba vi ~/.profile export LANG=zh_CN.UTF8 export DM_HOME=/dmdata/dmdbms export PATH=$PATH:$DM_HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin:/opt/freeware/lib64 --使环境变量生效 . ~/.profile |
4 数据库部署
4.1 挂载数据库软件iso文件
需要使用root用户挂载数据库软件的iso文件,创建dmiso挂载目录
mkdir -p /dmiso
loopmount -i /dmdata/dm8_20220620_ppc_aix7_64.iso -o "-V cdrfs -o ro" -m /dmiso
4.2 安装数据库软件
切换到dmdba用户下安装
$ cd /dmiso $ ls -l total 1730648 -r-xr-xr-x 1 root system 2802614 Jun 20 17:28 dm8 install.pdf -r-xr-xr-x 1 root system 883286342 Jun 20 17:32 dminstall.bin $ |
安装方式与linux环境相同,使用dminstall.bin -i命令安装,如安装的安全版本,安装时一定要放key文件。
$ ./dminstall.bin -i 请选择安装语言(C/c:中文 E/e:英文) [C/c]:c 解压安装程序......... 欢迎使用达梦数据库安装程序 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n 是否设置时区? (Y/y:是 N/n:否) [Y/y]:y 设置时区: [ 1]: GTM-12=日界线西 [ 2]: GTM-11=萨摩亚群岛 [ 3]: GTM-10=夏威夷 [ 4]: GTM-09=阿拉斯加 [ 5]: GTM-08=太平洋时间(美国和加拿大) [ 6]: GTM-07=亚利桑那 [ 7]: GTM-06=中部时间(美国和加拿大) [ 8]: GTM-05=东部部时间(美国和加拿大) [ 9]: GTM-04=大西洋时间(美国和加拿大) [10]: GTM-03=巴西利亚 [11]: GTM-02=中大西洋 [12]: GTM-01=亚速尔群岛 [13]: GTM=格林威治标准时间 [14]: GTM+01=萨拉热窝 [15]: GTM+02=开罗 [16]: GTM+03=莫斯科 [17]: GTM+04=阿布扎比 [18]: GTM+05=伊斯兰堡 [19]: GTM+06=达卡 [20]: GTM+07=曼谷,河内 [21]: GTM+08=中国标准时间 [22]: GTM+09=汉城 [23]: GTM+10=关岛 [24]: GTM+11=所罗门群岛 [25]: GTM+12=斐济 [26]: GTM+13=努库阿勒法 [27]: GTM+14=基里巴斯 请选择设置时区 [21]:21 安装类型: 1 典型安装 2 服务器 3 客户端 4 自定义 请选择安装类型的数字序号 [1 典型安装]:1 所需空间: 1618M 请选择安装目录 [/home/dmdba/dmdbms]:/dmdata/dmdbms 可用空间: 1326G 是否确认安装路径(/dmdata/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y 安装前小结 安装位置: /dmdata/dmdbms 所需空间: 1618M 可用空间: 1326G 版本信息: 有效日期: 安装类型: 典型安装 是否确认安装? (Y/y:是 N/n:否):y 2022-11-24 12:16:43 [INFO] 安装达梦数据库... 2022-11-24 12:16:43 [INFO] 安装 基础 模块... 2022-11-24 12:16:47 [INFO] 安装 服务器 模块... 2022-11-24 12:16:48 [INFO] 安装 客户端 模块... 2022-11-24 12:16:53 [INFO] 安装 驱动 模块... 2022-11-24 12:16:54 [INFO] 安装 手册 模块... 2022-11-24 12:16:55 [INFO] 安装 服务 模块... 2022-11-24 12:16:56 [INFO] 移动日志文件。 2022-11-24 12:16:57 [INFO] 安装达梦数据库完成。 请以root系统用户执行命令: /dmdata/dmdbms/script/root/root_installer.sh 当前用户环境变量已修改。如需环境变量立即生效,请执行". ~/.profile"或"source ~/.profile"命令或重新打开终端。 安装结束 $ |
切换到root用户注册root脚本
# /dmdata/dmdbms/script/root/root_installer.sh 移动 /dmdata/dmdbms/bin/dm_svc.conf 到/etc目录 修改服务器权限 创建DmAPService服务 移动服务脚本文件(/dmdata/dmdbms/bin/DmAPService 到 /etc/rc.d/init.d/DmAPService 创建服务(DmAPService)完成 启动DmAPService服务 Starting DmAPService: [ OK ] |
4.3 使用dminit工具初始化实例
切换到dmdba用户操作,执行以下命令
su - dmdba
cd /dmdata/dmdbms/bin
./dminit path=/dmdata page_size=32 case_sensitive=1 extent_size=32 LENGTH_IN_CHAR=1 charset=1 log_size=2048 db_name=dmdb instance_name=dmdb SYSDBA_PWD="Dameng123" SYSAUDITOR_PWD="Dameng123"注意:
初始化参数中除了 path 参数必须指定,其它参数都有默认值,如果需求与默认值不同,初始化的时候请指定需要的值。因为部分参数初始化后是无法修改的例如:page_size(页大小),charset(字符集),case_sensitive(大小写敏感)等。更多参数./dminit help 查看,是否无法修改的参数可以查询 v$dm_ini 视图,para_type=’READ ONLY’ 表示无法修改。
数据库初始化过程如下
$ $ HAR=1 charset=1 log_size=2048 db_name=dmdb instance_name=dmdb SYSDBA_PWD="Dameng123" SYSAUDITOR_PWD="Dameng123" < initdb V8 db version: 0x7000c file dm.key not found, use default license! License will expire on 2023-05-12 Normal of FAST Normal of DEFAULT Normal of RECYCLE Normal of KEEP Normal of ROLL log file path: /dmdata/dmdb/dmdb01.log log file path: /dmdata/dmdb/dmdb02.log write to dir [/dmdata/dmdb]. create dm database success. 2022-11-24 13:04:54 $ |
4.4 注册数据库服务
以系统服务方式启动实例,DM 提供脚本将数据库实例注册为操作系统服务。
root 用户下切换到 cd /dmdata/dmdbms/script/root/:
cd /dmdata/dmdbms/script/root/ |
执行以下命令,执行脚本注册服务:
./dm_service_installer.sh -t dmserver -p dmdb -dm_ini /dmdata/dmdb/dm.ini
# cd /dmdata/dmdbms/script/root/ # ./dm_service_installer.sh -t dmserver -p dmdb -dm_ini /dmdata/dmdb/dm.ini 移动服务脚本文件(/dmdata/dmdbms/bin/DmServicedmdb 到 /etc/rc.d/init.d/DmServicedmdb) 创建服务(DmServicedmdb)完成 # |
执行以下命令,以服务方式启动实例:
/etc/rc.d/init.d/DmServicedmdb start
# su - dmdba $ /etc/rc.d/init.d/DmServicedmdb start Starting DmServicedmdb: [ OK ] $ |
5 数据库参数优化
完成以上步骤之后,还需对实例参数优化。可通过手动方式和自动方式进行调整。为增强参数优化的适用性,降低参数修改的过程风险,建议使用达梦数据库提供的 AutoParaAdj.sql 脚本进行实例参数优化,调整完成之后重启数据库使参数生效。
6 配置慢SQL日志
数据文件存放目录修改sqllog.ini(实例路径下),相关参数含义参考管理员手册。
vi /dmdata/dmdb/sqllog.ini
BUF_TOTAL_SIZE = 10240 #SQLs Log Buffer Total Size(K)(1024~1024000) BUF_SIZE = 1024 #SQLs Log Buffer Size(K)(50~409600) BUF_KEEP_CNT = 6 #SQLs Log buffer keeped count(1~100) [SLOG_ALL] FILE_PATH = ../log PART_STOR = 1 SWITCH_MODE = 2 SWITCH_LIMIT = 512 ASYNC_FLUSH = 1 FILE_NUM = 5 ITEMS = 0 SQL_TRACE_MASK = 2:3:25 MIN_EXEC_TIME = 1500 USER_MODE = 0 USERS = |
7 配置归档日志
dmdba用户下执行以下命令:
./disql SYSDBA/'"Hn@dameng123"'@localhost:5236 |
说明:密码使用单引号+双引号包围起来
生产环境必须开启归档日志(在线方式配置归档),且必须限制归档日志保留量,限制方法:
1.设置归档空间大小限制即指定 SPACE_LIMIT 参数(单位是 MB)。
2.定期删除归档日志(设置定时作业)。
例如开启归档并限制归档空间为 100G(按实际存储空间给合适的值),如下所示
alter database mount;
alter database add archivelog 'dest=/dmdata/arch ,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=102400';
alter database archivelog;
alter database open;8 配置备份策略
根据应用需求,定制备份策略如下所示
l 执行以下命令,创建作业系统表:(提前规划备份的路径)
SP_INIT_JOB_SYS(1);l 全量备份(每周六 23 点全备):其中有1分钟后的一次性全备调度,执行完成后检查备份是否成功。
call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'每周六 23 点全备');
call SP_JOB_CONFIG_START('bakfull');
call SP_ADD_JOB_STEP('bakfull', 'bak1', 6, '01020000/dmdata/dmbak', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakfull', 'std1', 1, 2, 1, 64, 0, '23:00:00', NULL, '2021-12-27 11:52:22', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakfull');l 增量备份(每周除周六外每天 23 点增量备份):
call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'每周除周六外每天 23 点增量备份');
call SP_JOB_CONFIG_START('bakincr');
call SP_ADD_JOB_STEP('bakincr', 'bak2', 6, '41010000/dmdata/dmbak|/dmdata/dmbak', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakincr', 'std2', 1, 2, 1, 63, 0, '23:00:00', NULL, '2021-12-27 11:52:22', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakincr');l 备份定期删除(每天 23:30 删除 14 天前备份):
call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'每天 23:30 删除 14 天前备份');
call SP_JOB_CONFIG_START('delbak');
call SP_ADD_JOB_STEP('delbak','bak1',0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmdata/dmbak'');call sp_db_bakset_remove_batch(''DISK'',now()-14);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '23:30:00', NULL, '2021-12-27 11:52:22', NULL, '');
call SP_JOB_CONFIG_COMMIT('delbak');l 另外添加自动收集统计信息的任务(每天1点收集全库统计信息)
call SP_CREATE_JOB('statistics',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('statistics');
call SP_ADD_JOB_STEP('statistics', 'statistics1', 0, 'begin
for rs in (select ''sf_set_SESSION_para_value(''''HAGR_HASH_SIZE'''',(select cast(
case when max(table_rowcount(owner,table_name))<=(select max_value from v$dm_ini
where para_Name=''''HAGR_HASH_SIZE'''') and max(table_rowcount(owner,table_name))>=(
select min_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') then
max(table_rowcount(owner,table_name)) when max(table_rowcount(owner,table_name))<(
select min_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') then
(select min_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') else
(select max_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') end as bigint)
from dba_tables where owner=''''''||NAME||''''''));''
sql1,''DBMS_STATS.GATHER_SCHEMA_STATS(''''''||NAME||'''''',100,TRUE,''''FOR ALL COLUMNS SIZE AUTO'''');''
sql2
from SYS.SYSOBJECTS where TYPE$=''SCH'' ) loop
execute immediate rs.sql1;
execute immediate rs.sql2;
end loop;
end;', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('statistics', 'statistics1', 1, 2, 1, 64, 0, '01:00:00', NULL, '2021-12-27 11:52:22', NULL, '');
call SP_JOB_CONFIG_COMMIT('statistics');9 数据库启停
切换到dmdba用户启停数据库服务
执行以下命令,以服务方式启停dmap服务: /etc/rc.d/init.d/DmAPService start /etc/rc.d/init.d/DmAPService stop 执行以下命令,以服务方式启停数据库实例: /etc/rc.d/init.d/DmServicedmdb start /etc/rc.d/init.d/DmServicedmdb stop |




