达梦数据库-单机部署
达梦数据库-单机部署
部署规划
端口规划:
实例名 | 实例端口
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/
注:达梦数据库安装包可从官网 达梦下载中心 上面下载对应版本,数据库部署我以linux环境为例:
达梦数据库单机部署
操作系统配置
内核参数
修改内核参数
vi /etc/sysctl.conf
添加以下内容
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
kernel.core_pattern = /dmdata/core.%e_%p_%t
vm.swappiness=10
vm.dirty_background_ratio = 0
vm.min_free_kbytes = 512000
使参数生效,执行
sysctl -p
用户组
新建数据库管理用户和组
执行以下命令,新建用户组 dinstall。
groupadd dinstall -g 2001
执行以下命令,新建用户 dmdba。
useradd -g dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
执行以下命令,修改 dmdba 用户密码。
passwd dmdba
资源限制
修改用户资源限制
执行以下命令,修改 dmdba 用户资源限制。
vim /etc/security/limits.conf
文件末尾添加如下内容:
dmdba soft nice 0
dmdba hard nice 0
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
此外需要检查/etc/security/limits.d/目录下是否有其他限制资源的配置文件,如果有也需要修改。
防火墙
在root用户下,关闭防火墙
systemctl stop firewalld.service
systemctl status firewalld.service
systemctl disable firewalld.service
关闭透明大页、numa
vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off transparent_hugepage=never "
然后执行:
grub2-mkconfig -o /etc/grub2.cfg
numastat
numactl --shown
numactl --hardware
shutdown -r now
reboot重启后检查是否关闭成功
IO调度算法
cat /sys/block/sd*/queue/scheduler
sas/stat --磁盘类型sas盘
echo ‘deadline’ > /sys/block/sd*/queue/scheduler
ssd --磁盘类型固态盘
echo ‘NOOP’>/sys/block/sd*/queuelscheduler
Linux系统一般默认使用CFQ调度,修改磁盘调度方法:
查看调度:cat /sys/block/sda/queue/scheduler
临时修改:echo “deadline” > /sys/block/sda/queue/scheduler
永久修改: grubby --update-kernel=ALL --args=“elevator=deadline”
关闭swap
进入/etc/fsstab配置文件屏蔽掉swap一行
vi /etc/fstab
#UUID=b9a576fa-8a7d-4d5d-bfd9-4d196523fc81 swap swap defaults 0 0
然后执行 swapoff
环境变量
执行以下命令,修改 dmdba 用户环境变量。
vi /home/dmdba/.bash_profile
文件末尾添加如下内容:
export DM_HOME=/home/dmdba/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
数据库软件安装
1.使用root用户挂载数据库软件的iso文件
mkdir -p /dmiso
mount -o loop dm8_20240920_x86_rh7_64.iso /dmiso/
2.使用dmdba用户安装软件
su - dmdba
执行以下命令,切换到 /dmiso 目录下
cd /dmiso
执行 DMInstall.bin 文件开始安装,选择【-i】参数以命令行方式安装。
./DMInstall.bin -i
选择安装程序的语言 c/C 为中文,e/E 为英文。
提示是否安装 key 文件,输入 N 跳过。
选择时区,21 即东 8 区。
选择安装类型,默认典型安装(包含所有内容)。
选择软件安装目录,默认/home/dmdba/dmdbms
确认安装
安装完成提示使用root执行脚本:
/home/dmdba/dmdbms/script/root/root_installer.sh
使用 dminit 工具初始化实例
执行以下命令
dminit path=/dmdata page_size=32 extent_size=32 charset=1 log_size=2048 db_name=dmdb instance_name=dmdb SYSDBA_PWD=“password” SYSAUDITOR_PWD=“password”
注意:
初始化参数中除了 path 参数必须指定,其它参数都有默认值,如果需求与默认值不同,初始化的时候请指定需要的值。因为部分参数初始化后是无法修改的例如:page_size(页大小),charset(字符集),case_sensitive(大小写敏感)等。更多参数./dminit help 查看,是否无法修改的参数可以查询 v$dm_ini 视图,para_type=’READ ONLY’ 表示无法修改。
2. key与版本一定要匹配,key也是区分企业版和安全版
dminit参数详解,如表所示:
dminit参数 | 参数说明 |
---|---|
path | 初始数据库存放的路径。默认路径为 dminit.exe 当前所在的工作目录。文件路径长度最大为 256 个字符。可选参数。 |
page_size | 数据文件使用的页大小。取值范围 4、8、16、32,单位:KB。缺省值为 8。可选参数。数据库创建成功后无法再修改页大小,可通过系统函数 SF_GET_PAGE_SIZE()获取系统的页大小。 |
extent_size | 数据文件使用的簇大小,即每次分配新的段空间时连续的页数。取值范围 16、32、64。单位:页数。缺省值为 16。可选参数。数据库创建成功后无法再修改簇大小,可通过系统函数 SF_GET_EXTENT_SIZE()获取系统的簇大小。 |
charset | 字符集选项。取值范围 0、1、2。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。缺省值为 0。可选参数。此参数在数据库创建成功后无法修改,可通过系统函数 SF_GET_UNICODE_FLAG()或 UNICODE()查询设置的参数值。 |
log_size | 重做日志文件使用的大小。在 32 位版本下,取值范围为 256 和 2048 之间的整数;在 64 位版本下,取值范围为 256 和 8192 之间的整数,单位 MB。缺省值为 2048。可选参数。 |
db_name | 初始化数据库名称,缺省值为 DAMENG。名称为字符串,长度不能超过 128 个字符。可选参数。数据库名称只能由_、$、大写字母 A 至 Z、小写字母 a 至 z、数字 0 至 9 组成,且第一个字符不能是数字。数据库名称在数据库创建成功后无法修改,可通过查询 V$DATABASE 的 NAME 列获取数据库名。 |
instance_name | 初始化数据库实例名称,缺省值为 DMSERVER。名称为字符串,长度不能超过 16 个字符。可选参数。实例名称只能由_、$、大写字母 A 至 Z、小写字母 a 至 z、数字 0 至 9 组成,且第一个字符不能是数字。数据库创建成功后,可通过修改 INI 参数 INSTANCE_NAME 的值对此参数的设置进行修改。可通过查询 V$PARAMETER 中的 INSTANCE_NAME 参数名获取当前的数据库实例名。 |
SYSDBA_PWD | 初始化时设置 SYSDBA 的密码。密码长度为 9~48 个字符。可选参数。数据库创建成功后,SYSDBA 可通过修改用户密码语句修改自己的密码。 |
SYSAUDITOR_PWD | 初始化时设置 SYSAUDITOR 的密码。密码长度为 9~48 个字符。可选参数。数据库创建成功后,SYSAUDITOR 可通过修改用户密码语句修改自己的密码。 |
INI_FILE | 初始化文件 dm.ini 存放的路径,指定一个已经存在的 dm.ini 文件所在的绝对路径。作用是将现有 INI 文件,拷贝到新库,作为新库的 INI 文件直接使用。可选参数。 |
注册服务并启动实例
以系统服务方式启动实例,DM 提供脚本将数据库实例注册为操作系统服务。
root 用户下切换到 /home/dmdba/dmdbms/script/root/:
cd /home/dmdba/dmdbms/script/root/
执行以下命令,执行脚本注册服务:
./dm_service_installer.sh -t dmserver -p dmdb -dm_ini /dmdata/dmdb/dm.ini
执行以下命令,以服务方式启动实例:
systemctl start DmServicedmdb
登录数据库
dmdba用户下执行以下命令:
./disql SYSDBA/‘“password”’
说明:密码若包含特殊字符(如@#!*)使用单引号+双引号包围起来,如上所示。
归档配置
生产环境必须开启归档日志,且必须限制归档日志保留量,限制方法:
- 设置归档空间大小限制即指定 SPACE_LIMIT 参数(单位是 MB)。
- 定期删除归档日志(设置定时作业)。
例如开启归档并限制归档空间为 100 G(按实际存储空间给合适的值),如下所示
alter database mount;
ALTER DATABASE ARCHIVELOG;
alter database add archivelog ‘dest=/dmdata/arch ,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=102400’;
alter database open;
配置sql日志
修改sqllog.ini
到实例路径下
cd /dmdata/dmdb/
vi sqllog.ini(记录1.5s以上sql)
BUF_TOTAL_SIZE = 10240
BUF_SIZE = 1024
BUF_KEEP_CNT = 6
[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 =
到此就完成了达梦数据库单机的部署。
更多详细资料可前往达梦社区:https://eco.dameng.com