外观
DM 核心配置参数
配置参数的分类
根据功能和用途,DM数据库的配置参数可以分为以下几类:
- 系统参数:控制数据库系统的基本行为
- 性能参数:影响数据库性能的参数
- 安全参数:控制数据库安全性的参数
- 存储参数:控制数据库存储行为的参数
- 网络参数:控制数据库网络行为的参数
- 日志参数:控制数据库日志行为的参数
配置参数的管理
DM数据库的配置参数可以通过以下方式管理:
- 修改dm.ini配置文件
- 使用SP_SET_PARA_VALUE存储过程动态修改
- 使用DM管理工具图形化配置
- 使用dmctl命令行工具配置
系统核心参数
1. 实例基本信息
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| INSTANCE_NAME | 实例名称,用于标识数据库实例 | DMSERVER | 根据实际环境设置 |
| PORT_NUM | 数据库服务端口 | 5236 | 根据实际环境设置,建议使用非默认端口 |
| SVR_VERSION | 服务器版本号,只读参数 | - | - |
| DB_NAME | 数据库名称 | DAMENG | 根据实际环境设置 |
| INI_FILE_PATH | dm.ini文件路径,只读参数 | - | - |
2. 数据库模式
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| COMPATIBLE_MODE | 兼容模式,0:不兼容,1:兼容Oracle,2:兼容MS SQL,3:兼容MySQL | 0 | 根据应用需求设置 |
| CHARSET | 字符集,0:GB18030,1:UTF-8,2:EUC-KR | 0 | 根据应用需求设置 |
| LENGTH_IN_CHAR | VARCHAR类型长度是否按字符计算 | 0 | 建议设置为1,按字符计算 |
| CASE_SENSITIVE | 标识符大小写敏感,0:不敏感,1:敏感 | 1 | 根据应用需求设置 |
性能核心参数
1. 内存管理
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| MEMORY_POOL | 内存池大小(MB) | 100 | 根据服务器内存大小设置,建议为物理内存的10% |
| BUFFER | 数据缓冲区大小(MB) | 100 | 根据服务器内存大小设置,建议为物理内存的50% |
| DICT_BUF_SIZE | 字典缓冲区大小(MB) | 10 | 根据数据库大小设置,建议为50-200 |
| SORT_BUF_SIZE | 排序缓冲区大小(MB) | 6 | 根据应用需求设置,建议为50-200 |
| HJ_BUF_SIZE | 哈希连接缓冲区大小(MB) | 12 | 根据应用需求设置,建议为100-500 |
| USE_PLN_POOL | 是否使用执行计划池 | 0 | 建议设置为1,提高重复SQL的执行效率 |
| PLAN_POOL_SIZE | 执行计划池大小 | 100 | 根据SQL复杂度设置,建议为500-2000 |
2. 并发控制
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| MAX_SESSIONS | 最大会话数 | 100 | 根据并发需求设置,建议为500-2000 |
| MAX_SESSIONS_PER_USER | 每个用户的最大会话数 | 50 | 根据用户需求设置 |
| WORKER_THREADS | 工作线程数 | 4 | 根据CPU核心数设置,建议为CPU核心数的1-2倍 |
| TASK_THREADS | 任务线程数 | 4 | 根据CPU核心数设置,建议为CPU核心数的1-2倍 |
| IO_THR_GROUPS | I/O线程组数 | 1 | 根据存储设备类型设置,建议为2-4 |
| IO_THR_PER_GRP | 每组I/O线程数 | 4 | 根据存储设备类型设置,建议为4-8 |
3. 优化器
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| OPTIMIZER_MODE | 优化器模式,0:规则优化,1:代价优化 | 1 | 建议使用代价优化 |
| OPTIMIZER_LEVEL | 优化器级别,0-5,级别越高,优化越充分 | 2 | 根据SQL复杂度设置,建议为3-4 |
| JOIN_ORDER_MODE | 连接顺序选择模式,0:用户指定顺序,1:优化器选择顺序 | 1 | 建议使用优化器选择顺序 |
| HINT_FLAG | 是否启用HINT | 1 | 建议启用 |
| PARALLEL_PLAN_ENABLE | 是否启用并行计划 | 0 | 对于复杂查询,建议设置为1 |
存储核心参数
1. 数据文件管理
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| EXTENT_SIZE | 数据文件默认扩展大小(页),16:64KB,32:128KB,64:256KB | 16 | 根据数据库规模设置,建议为32或64 |
| PAGE_SIZE | 数据页大小,4:4KB,8:8KB,16:16KB,32:32KB | 8 | 根据应用需求设置,建议为8或16 |
| DBFILE_PATH | 数据文件默认路径 | ./ | 根据实际环境设置 |
| MAX_DB_SIZE | 数据库最大大小(GB) | 16384 | 根据存储设备大小设置 |
| LOG_SIZE | 日志文件大小(MB) | 256 | 根据事务量设置,建议为1024-4096 |
2. 日志管理
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| ARCH_INI | 是否启用归档配置 | 0 | 生产环境建议设置为1 |
| ARCH_DEST | 归档文件默认路径 | ./ | 根据实际环境设置 |
| ARCH_FILE_SIZE | 归档文件大小(MB) | 128 | 根据事务量设置,建议为1024 |
| ARCH_SPACE_LIMIT | 归档空间限制(MB),0:无限制 | 0 | 根据存储设备大小设置,建议为102400 |
| RLOG_SEND_APPLY_MON | 是否启用日志发送和应用监控 | 0 | 建议设置为1 |
3. 备份恢复
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| BAK_FILE_PATH | 备份文件默认路径 | ./ | 根据实际环境设置 |
| BAK_USE_APPLY | 备份过程中是否使用并行应用 | 0 | 建议设置为1,提高备份速度 |
| BAK_SEQ_NO | 备份序列号 | 0 | 自动生成,无需手动设置 |
| RECOVERY_PARALLEL | 恢复并行度 | 1 | 根据CPU核心数设置,建议为CPU核心数的1-2倍 |
安全核心参数
1. 认证授权
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| PWD_POLICY | 密码策略,0:无策略,1:禁止与用户名相同,2:至少包含一位数字,3:至少包含一位大写字母、一位小写字母和一位数字,4:至少包含一位特殊字符 | 0 | 生产环境建议设置为3或4 |
| PWD_MIN_LEN | 密码最小长度 | 8 | 生产环境建议设置为12 |
| PWD_EXPIRY_TIME | 密码过期时间(天) | 90 | 根据安全需求设置 |
| PWD_INI_CHANGE | 是否强制首次登录修改密码 | 0 | 生产环境建议设置为1 |
| PWD_LOCK_TIMES | 密码连续错误次数 | 0 | 生产环境建议设置为5 |
| PWD_LOCK_TIME | 密码锁定时间(分钟) | 10 | 根据安全需求设置 |
2. 审计
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| AUDIT_SWITCH | 是否启用审计功能 | 0 | 生产环境建议设置为1 |
| AUDIT_FILE_PATH | 审计文件路径 | ./ | 根据实际环境设置 |
| AUDIT_FILE_SIZE | 单个审计文件大小(MB) | 100 | 根据审计量设置,建议为1024 |
| AUDIT_FILE_NUM | 审计文件个数 | 10 | 根据审计量设置,建议为20-50 |
| AUDIT_TRAIL | 审计记录存储方式,0:仅存储在文件,1:同时存储在文件和系统表 | 0 | 根据审计需求设置 |
3. 加密
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| ENABLE_ENCRYPT | 是否启用加密功能 | 0 | 生产环境建议设置为1 |
| ENCRYPT_NAME | 加密算法名称 | AES128_ECB | 根据安全需求设置 |
| ENCRYPT_KEY_FILE | 加密密钥文件路径 | ./ | 根据实际环境设置 |
| SSL_FLAG | 是否启用SSL加密连接 | 0 | 生产环境建议设置为1 |
| SSL_KEYFILE | SSL私钥文件路径 | ./server.key | 根据实际环境设置 |
| SSL_CERTFILE | SSL证书文件路径 | ./server.crt | 根据实际环境设置 |
网络核心参数
1. 监听配置
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| LISTENER_ADDRESS | 监听地址,0.0.0.0:监听所有地址 | 0.0.0.0 | 生产环境建议设置为特定IP |
| LISTEN_PORT | 监听端口,与PORT_NUM相同 | - | - |
| TCP_KEEPALIVE | 是否启用TCP keepalive | 1 | 建议启用 |
| TCP_KEEPIDLE | TCP keepalive空闲时间(秒) | 7200 | 建议设置为300 |
| TCP_KEEPINTVL | TCP keepalive间隔时间(秒) | 75 | 建议设置为60 |
| TCP_KEEPCNT | TCP keepalive重试次数 | 9 | 建议设置为3 |
2. 连接管理
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| MAX_CONNECTIONS | 最大连接数,与MAX_SESSIONS相同 | 100 | 根据并发需求设置 |
| CONN_IDLE_TIME | 连接空闲超时时间(秒) | 1800 | 根据应用需求设置 |
| CONNECTION_TIMEOUT | 连接超时时间(秒) | 30 | 根据网络环境设置 |
| DISCONNECT_SCAN_INTERVAL | 断开连接扫描间隔(秒) | 60 | 建议设置为30-60 |
| MAX_SESSIONS_PER_IP | 每个IP的最大会话数 | 0 | 根据安全需求设置 |
高可用性核心参数
1. DMDataWatch
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| DW_INI | 是否启用DataWatch配置 | 0 | 启用DataWatch时设置为1 |
| DW_TYPE | 数据库角色,PRIMARY:主库,STANDBY:备库 | NONE | 根据实际角色设置 |
| DW_MODE | 同步模式,ASYNC:异步,SEMISYNC:半同步,FULLSYNC:全同步,ASYNCREAL:异步实时 | ASYNC | 根据业务需求设置 |
| DW_ERROR_TIME | 故障检测时间(秒) | 30 | 根据网络环境设置,建议为30-60 |
| OGUID | 集群唯一标识 | 0 | 启用DataWatch时设置为唯一值 |
| MAL_INI | 是否启用MAL配置 | 0 | 启用DataWatch时设置为1 |
2. DMDSC
| 参数名 | 描述 | 默认值 | 建议值 |
|---|---|---|---|
| DSC_INI | 是否启用DMDSC配置 | 0 | 启用DMDSC时设置为1 |
| DSC_SEQNO | 节点序号 | 0 | 启用DMDSC时设置为节点序号 |
| DSC_VTD_PATH | VTD文件路径 | ./ | 启用DMDSC时设置为VTD文件路径 |
| DSC_VIP | 虚拟IP地址 | - | 启用DMDSC时设置为虚拟IP |
| DSC_PORT | 虚拟IP端口 | 5236 | 启用DMDSC时设置为虚拟IP端口 |
配置参数的管理
1. 参数修改方法
使用SP_SET_PARA_VALUE存储过程
sql
-- 修改静态参数,需要重启数据库生效
SP_SET_PARA_VALUE(2, 'BUFFER', 2048);
-- 修改动态参数,立即生效
SP_SET_PARA_VALUE(1, 'MAX_SESSIONS', 1000);使用DM管理工具
- 启动DM管理工具
- 连接到数据库实例
- 选择"配置" -> "参数配置"选项
- 找到需要修改的参数,修改后保存
- 根据参数类型,决定是否需要重启数据库
2. 参数查看方法
使用V$DM_INI视图
sql
-- 查看所有参数
SELECT * FROM V$DM_INI;
-- 查看特定参数
SELECT NAME, VALUE, TYPE FROM V$DM_INI WHERE NAME = 'BUFFER';
-- 查看性能相关参数
SELECT NAME, VALUE, TYPE FROM V$DM_INI WHERE NAME LIKE '%BUFFER%' OR NAME LIKE '%MEMORY%';使用DM管理工具
- 启动DM管理工具
- 连接到数据库实例
- 选择"配置" -> "参数配置"选项
- 查看所有参数或搜索特定参数
3. 参数备份和恢复
备份dm.ini文件
bash
# 备份dm.ini文件
cp /dm/data/DAMENG/dm.ini /dm/backup/dm.ini.bak恢复dm.ini文件
bash
# 恢复dm.ini文件
cp /dm/backup/dm.ini.bak /dm/data/DAMENG/dm.ini配置参数的最佳实践
1. 遵循最小配置原则
- 只修改必要的参数
- 避免过度配置
- 根据实际环境调整参数
- 定期评估参数配置效果
2. 性能参数调优
- 根据服务器硬件配置调整内存参数
- 根据CPU核心数调整并发参数
- 根据存储设备类型调整I/O参数
- 根据应用需求调整优化器参数
3. 安全参数配置
- 启用密码策略,使用强密码
- 启用审计功能,监控数据库活动
- 启用加密功能,保护敏感数据
- 配置合适的网络参数,限制访问
4. 高可用性参数配置
- 启用归档功能,确保数据安全
- 配置合适的备份策略,定期备份数据库
- 启用高可用功能,提高系统可用性
- 配置合适的故障检测参数,及时发现故障
5. 定期监控和调整
- 定期监控数据库性能
- 分析性能瓶颈,调整相关参数
- 定期备份参数配置
- 记录参数修改历史
常见问题(FAQ)
Q1: 如何确定参数的最佳值?
A1: 确定参数最佳值的方法:
- 参考DM官方文档的建议值
- 根据服务器硬件配置调整
- 根据应用需求调整
- 进行性能测试,找到最佳值
- 参考类似环境的配置经验
Q2: 修改参数后需要重启数据库吗?
A2: 参数是否需要重启数据库取决于参数类型:
- 静态参数(TYPE=2):需要重启数据库生效
- 动态参数(TYPE=1):立即生效,无需重启
- 只读参数(TYPE=0):无法修改
Q3: 如何监控参数修改对性能的影响?
A3: 监控参数修改对性能影响的方法:
- 使用DM性能监控工具
- 查看性能视图
- 分析SQL执行计划
- 监控系统资源使用率
- 进行性能测试,对比修改前后的性能
Q4: 如何备份和恢复参数配置?
A4: 备份和恢复参数配置的方法:
- 备份dm.ini文件
- 使用DM管理工具导出参数配置
- 记录参数修改历史
- 恢复dm.ini文件
- 使用DM管理工具导入参数配置
Q5: 如何处理参数配置错误?
A5: 处理参数配置错误的方法:
- 恢复备份的dm.ini文件
- 使用dmctlsys工具重置参数
- 重新初始化数据库(极端情况)
- 记录错误信息,分析原因
- 咨询DM技术支持
版本差异说明
| 版本 | 主要变化 |
|---|---|
| DM 7 | 支持基本的参数配置,参数数量较少 |
| DM 8 | 增强了参数配置功能,增加了大量参数 |
| DM 8.1 | 优化了参数配置,增加了高可用性相关参数 |
在配置参数时,需要注意以下几点:
- 遵循最小配置原则,只修改必要的参数
- 根据服务器硬件配置和应用需求调整参数
- 定期监控参数配置对性能的影响
- 定期备份参数配置,以便在配置错误时恢复
- 记录参数修改历史,便于分析问题
通过合理的参数配置和管理,可以充分发挥DM数据库的优势,为业务提供高效、可靠的数据服务。
