内容简介:本文档风哥主要介绍DM达梦数据库实例的创建与参数初始化过程,涵盖实例概念、参数配置、初始化工具、性能优化等内容,风哥教程参考DM官方文档《DM8系统管理员手册》、《DM8性能优化指南》等官方资料。本文档为DM数据库学习系列的第六篇,重点介绍实例创建和参数初始化的详细步骤和实战操作。
Part01-基础概念与理论知识
1.1 实例概念概述
DM数据库实例是数据库管理系统的运行时环境,包含内存结构和后台进程。实例是数据库的载体,负责处理用户请求、管理数据库文件、维护数据一致性等功能。
1.1.1 实例的组成
- 内存结构:包括SGA(系统全局区)和PGA(程序全局区)
- 后台进程:包括dmserver主进程和各种子进程
- 参数文件:控制实例的运行行为
- 数据库文件:包括数据文件、日志文件、控制文件等
1.1.2 实例与数据库的关系
实例是数据库的运行时环境,数据库是存储数据的物理文件集合。一个实例可以挂载和打开一个数据库,一个数据库可以被多个实例挂载(如集群环境)。
1.2 实例参数介绍
实例参数是控制DM数据库实例运行行为的配置项,通过修改参数可以调整数据库的性能和行为。
1.2.1 参数分类
- 内存参数:控制内存分配和使用
- 存储参数:控制存储结构和管理
- 安全参数:控制安全策略和访问控制
- 性能参数:控制查询优化和执行计划
- 日志参数:控制日志记录和归档
1.2.2 主要参数说明
– MEMORY_POOL_SIZE:内存池大小
– BUFFER:缓冲区大小
– SORT_AREA_SIZE:排序区大小
– HASH_AREA_SIZE:哈希区大小
– LOG_SIZE:日志文件大小
– ARCH_DEST:归档目录
– MAX_SESSIONS:最大会话数
– MAX_SESSION_STATEMENT:每个会话最大语句数
– PGA_SIZE:PGA大小
– WORKER_THREADS:工作线程数
1.3 初始化工具介绍
DM数据库提供了多种工具用于实例的创建和初始化。
1.3.1 dminit工具
dminit是DM数据库的实例初始化工具,用于创建新的数据库实例。
1.3.2 数据库配置助手
数据库配置助手是一个图形化工具,用于创建和配置数据库实例。
1.4 参数类型说明
DM数据库的参数根据生效方式和修改时机可以分为不同类型。
1.4.1 参数生效方式
风哥提示:
- 静态参数:需要重启实例才能生效
- 动态参数:修改后立即生效,无需重启
1.4.2 参数修改时机
- 实例启动前:通过修改dm.ini文件
- 实例运行时:通过SQL语句修改
Part02-生产环境规划与建议
2.1 实例规划与设计
在创建DM数据库实例前,需要进行充分的规划和设计。
2.1.1 实例命名规范
– 数据库名:fgedudb、fgedudb01、fgedudb02等
– 实例名:与数据库名保持一致
– 端口号:默认5236,多个实例时使用不同端口
2.1.2 实例数量规划
- 单机部署:通常一个实例
- 集群部署:多个实例
- 测试环境:可以部署多个实例
2.2 参数规划与调优
参数规划是确保数据库性能和稳定性的关键。
2.2.1 内存参数规划
– 总内存:根据服务器内存大小调整
– BUFFER:通常设置为总内存的50-60%
– SORT_AREA_SIZE:根据排序需求调整
– HASH_AREA_SIZE:根据哈希操作需求调整
– PGA_SIZE:根据并发连接数调整
2.2.2 存储参数规划
– LOG_SIZE:通常设置为1024MB-2048MB
– EXTENT_SIZE:通常设置为16KB
– PAGE_SIZE:根据数据类型和查询需求选择,通常为8KB
– CHAR_SET:根据业务需求选择,通常为UTF-8
2.3 存储规划与布局
合理的存储规划可以提高数据库的性能和可靠性。
2.3.1 目录结构规划
– 安装目录:/dm/app
– 数据目录:/dm/fgdata
– 归档目录:/dm/arch
– 备份目录:/dm/backup
– 临时目录:/dm/temp
2.3.2 磁盘布局建议
- 数据文件:放置在高性能磁盘上
- 日志文件:放置在独立的磁盘上
- 归档文件:放置在大容量磁盘上
- 备份文件:放置在独立的磁盘或存储设备上
2.4 性能规划与优化
性能规划是确保数据库高效运行的关键。
2.4.1 性能参数规划
– WORKER_THREADS:根据CPU核心数调整
– MAX_SESSIONS:根据并发用户数调整
– SORT_BUF_SIZE:根据排序操作需求调整 学习交流加群风哥QQ113257174
– HASH_BUF_SIZE:根据哈希操作需求调整
– PARALLEL_DEGREE:根据查询并行度需求调整
2.4.2 性能监控规划
- 设置性能监控参数
- 配置慢查询日志
- 建立性能监控系统
Part03-生产环境项目实施方案
3.1 实例创建步骤
详细介绍DM数据库实例的创建步骤。
3.1.1 使用dminit工具创建实例
$ dminit path=/dm/fgdata db_name=fgedudb instance_name=fgedudb port_num=5236 \
charset=1 page_size=8 extent_size=16 log_size=1024
3.1.2 使用数据库配置助手创建实例
1. 启动数据库配置助手
2. 选择”创建数据库实例”
3. 选择”高级配置”
4. 输入数据库名称:fgedudb
5. 输入实例名称:fgedudb
6. 输入端口号:5236
7. 选择字符集:UTF-8
8. 选择页大小:8KB
9. 选择簇大小:16KB
10. 选择日志文件大小:1024MB
11. 选择初始化参数
12. 确认配置信息
13. 开始创建实例
14. 完成创建
3.2 参数初始化配置
实例创建后需要进行参数初始化配置。
3.2.1 修改dm.ini文件
# 修改dm.ini文件
$ vi /dm/fgdata/fgedudb/dm.ini
# 调整内存参数
MEMORY_POOL_SIZE = 200
BUFFER = 8192
SORT_AREA_SIZE = 100
HASH_AREA_SIZE = 100
# 调整性能参数
WORKER_THREADS = 16
MAX_SESSIONS = 1000
MAX_SESSION_STATEMENT = 100
# 调整日志参数
LOG_SIZE = 1024
ARCH_DEST = /dm/arch
3.2.2 使用SQL语句修改参数
SQL> alter system set ‘MEMORY_POOL_SIZE’ = 200 both;
SQL> alter system set ‘BUFFER’ = 8192 both;
SQL> alter system set ‘SORT_AREA_SIZE’ = 100 both;
SQL> alter system set ‘HASH_AREA_SIZE’ = 100 both;
SQL> alter system set ‘WORKER_THREADS’ = 16 both;
SQL> alter system set ‘MAX_SESSIONS’ = 1000 both;
3.3 实例验证与测试
实例创建和参数配置后需要进行验证和测试。
3.3.1 实例状态验证
$ disql SYSDBA/SYSDBA
SQL> select status from v$instance;
SQL> select name, open_mode from v$database;
SQL> select version();
3.3.2 参数验证
SQL> select para_name, para_value from v$dm_ini where para_name in (‘MEMORY_POOL_SIZE’, ‘BUFFER’, ‘SORT_AREA_SIZE’, ‘HASH_AREA_SIZE’);
更多学习教程公众号风哥教程itpux_com
3.3.3 性能测试
SQL> create table fgedu_test (id int, name varchar(100));
SQL> insert into fgedu_test values (1, ‘fgedu1’);
SQL> insert into fgedu_test values (2, ‘fgedu2’);
SQL> commit;
SQL> select * from fgedu_test;
3.4 服务配置与管理
实例创建后需要配置系统服务。
3.4.1 注册系统服务
$ /dm/app/bin/dmserver /dm/fgdata/fgedudb/dm.ini register
3.4.2 启动服务
$ systemctl start DmServiceFGEDUDB
$ systemctl status DmServiceFGEDUDB
$ systemctl enable DmServiceFGEDUDB
Part04-生产案例与实战讲解
4.1 实例创建实战演示
通过实际操作演示DM数据库实例的创建过程。
4.1.1 使用dminit工具创建实例
[dmdba@fgedu ~]$ dminit path=/dm/fgdata db_name=fgedudb instance_name=fgedudb port_num=5236 \ from DB视频:www.itpux.com
charset=1 page_size=8 extent_size=16 log_size=1024
# 输出信息
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-01-01
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /dm/fgdata/fgedudb/fgedudb01.log
log file path: /dm/fgdata/fgedudb/fgedudb02.log
write to dir [/dm/fgdata/fgedudb].
create dm database success. 2023-04-09 12:30:00
4.1.2 查看创建的实例文件
[dmdba@fgedu ~]$ ls -la /dm/fgdata/fgedudb/
总用量 102400
drwxr-xr-x 2 dmdba dinstall 4096 4月 9 12:30 .
drwxr-xr-x 3 dmdba dinstall 4096 4月 9 12:30 ..
-rw-r–r– 1 dmdba dinstall 16384 4月 9 12:30 dmmal.ini
-rw-r–r– 1 dmdba dinstall 16384 4月 9 12:30 dm.ini
-rw-r–r– 1 dmdba dinstall 16384 4月 9 12:30 dm.opt
-rw-r–r– 1 dmdba dinstall 104857600 4月 9 12:30 fgedudb01.log
-rw-r–r– 1 dmdba dinstall 104857600 4月 9 12:30 fgedudb02.log
-rw-r–r– 1 dmdba dinstall 4096 4月 9 12:30 fgedudb.dbf
4.2 参数调优实战演示
演示如何调整DM数据库的参数。
4.2.1 修改内存参数
[dmdba@fgedu ~]$ vi /dm/fgdata/fgedudb/dm.ini
# 调整内存参数
MEMORY_POOL_SIZE = 200
BUFFER = 8192
SORT_AREA_SIZE = 100
HASH_AREA_SIZE = 100
4.2.2 修改性能参数
[dmdba@fgedu ~]$ vi /dm/fgdata/fgedudb/dm.ini
# 调整性能参数
WORKER_THREADS = 16
MAX_SESSIONS = 1000
MAX_SESSION_STATEMENT = 100
4.2.3 使用SQL语句修改参数
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> alter system set ‘MEMORY_POOL_SIZE’ = 200 both;
SQL> alter system set ‘BUFFER’ = 8192 both;
SQL> alter system set ‘SORT_AREA_SIZE’ = 100 both;
SQL> alter system set ‘HASH_AREA_SIZE’ = 100 both;
SQL> alter system set ‘WORKER_THREADS’ = 16 both;
SQL> alter system set ‘MAX_SESSIONS’ = 1000 both;
4.3 实例验证实战演示
演示如何验证DM数据库实例的状态和参数配置。
4.3.1 实例状态验证
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
Server[LOCALHOST:5236]:mode is normal, state is open
login used time: 1.234(ms)
SQL> select status from v$instance;
STATUS
—————————————
OPEN
SQL> select name, open_mode from v$database;
NAME OPEN_MODE
—————————— ——————–
FGEDUDB READ WRITE
SQL> select version();
LINEID VERSION()
———- ——————————
1 DM Database Server 64 V8
4.3.2 参数验证
SQL> select para_name, para_value from v$dm_ini where para_name in (‘MEMORY_POOL_SIZE’, ‘BUFFER’, ‘SORT_AREA_SIZE’, ‘HASH_AREA_SIZE’);
PARA_NAME PARA_VALUE
————————- ————————
MEMORY_POOL_SIZE 200
BUFFER 8192
SORT_AREA_SIZE 100
HASH_AREA_SIZE 100
4.3.3 服务状态验证
[root@fgedu ~]# systemctl status DmServiceFGEDUDB
● DmServiceFGEDUDB.service – DM Database Service
Loaded: loaded (/usr/lib/systemd/system/DmServiceFGEDUDB.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2023-04-09 12:35:00 CST; 5min ago
Main PID: 12345 (dmserver)
CGroup: /system.slice/DmServiceFGEDUDB.service
└─12345 /dm/app/bin/dmserver path=/dm/fgdata/fgedudb/dm.ini -noconsole
4月 09 12:35:00 fgedu systemd[1]: Started DM Database Service.
Part05-风哥经验总结与分享
5.1 实例创建技巧与注意事项
基于实际经验,分享一些实例创建的技巧和注意事项。
5.1.1 实例创建注意事项
- 选择合适的数据库名称和实例名称
- 根据业务需求选择合适的字符集
- 根据数据类型和查询需求选择合适的页大小
- 设置合理的日志文件大小
- 确保有足够的磁盘空间
5.1.2 实例创建技巧
- 使用dminit工具可以快速创建实例
- 使用数据库配置助手可以进行可视化配置
- 创建实例前规划好目录结构
- 创建实例后及时备份参数文件
5.2 参数调优技巧与注意事项
基于实际经验,分享一些参数调优的技巧和注意事项。
5.2.1 参数调优注意事项
- 根据服务器硬件配置调整参数
- 根据业务负载调整参数
- 注意静态参数和动态参数的区别
- 修改参数后进行充分测试
- 定期监控参数效果并进行调整
5.2.2 参数调优技巧
- 内存参数:根据服务器内存大小调整
- 性能参数:根据CPU核心数和并发用户数调整
- 存储参数:根据存储设备性能调整
- 日志参数:根据事务量和恢复需求调整
- 使用系统视图监控参数效果
5.3 最佳实践建议
基于实际经验,提供DM数据库实例创建和参数初始化的最佳实践。
5.3.1 实例创建最佳实践
5.3.2 参数调优最佳实践
- 内存参数:总内存使用不超过服务器内存的80%
- 缓冲区:设置为总内存的50-60%
- 工作线程:根据CPU核心数设置,通常为核心数的1-2倍
- 最大会话数:根据并发用户数设置,预留一定余量
- 日志大小:根据事务量设置,通常为1-2GB
5.3.3 性能监控最佳实践
- 定期监控实例状态
- 监控系统资源使用情况
- 分析慢查询日志
- 定期收集性能统计信息
- 根据监控结果调整参数
5.3.4 维护最佳实践
- 定期备份数据库
- 定期检查参数配置
- 及时安装补丁
- 建立完善的运维文档
- 定期进行性能测试
本文档风哥教程参考DM官方文档《DM8系统管理员手册》、《DM8性能优化指南》等资料编写,。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
