通过为期三天的达梦数据库dca培训后,总结了一些部署单机数据库的经验
[root@localhost ~]# groupadd -g 10001 dinstall
[root@localhost ~]# useradd -u 10002 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
[root@localhost ~]# passwd dmdba
[root@localhost ~]# id dmdba
uid=10002(dmdba) gid=10001(dinstall) groups=10001(dinstall)
[root@localhost ~]# mkdir -p /dm8
[root@localhost ~]# mkdir -p /dm8/software
[root@localhost ~]# chown -R dmdba:dinstall /dm8
[root@localhost ~]# mount /dm8/software/dm8_20220720_x86_rh7_64_ent_8.1.2.114_pack11.iso /mnt/cdrom
[root@~]# vim /etc/sysctl.conf
vm.overcommit_memory = 0
vm.swappiness = 0
[root@~]# sysctl -p
[root@~]# sysctl -p /etc/sysctl.conf
[root@~]# sysctl -q vm.swappiness
[root@~]# vi /etc/security/limits.conf
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 10240
dmdba hard nproc 10240
验证:
查看limit.conf资源限制: 通过查看/proc/进程号/limits确定是否生效
例:cat /proc/pid/limits
通过systemctl或者systemd service方式设定随机自启动的数据库服务,其能打开的最大文件描述符、proc数量等不受limits.conf控制,需要修改/etc/systemd/system.conf文件。
[root@~]# vi /etc/systemd/system.conf
DefaultLimitFSIZE=unlimited
DefaultLimitDATA=unlimited
DefaultLimitCORE=unlimited
DefaultLimitNOFILE=65536
DefaultLimitNPROC=10240
[root@~]# vi /etc/sysconfig/selinux
SELINUX = disabled
具体是否可以关闭防火墙根据实际要求进行调整,若不能关闭防火墙,需要根据端口规划进行防火墙策略配置,如关闭防火墙可参照以下操作:
1)查看防火状态
systemctl status firewalld
service iptables status
2)暂时关闭防火墙
systemctl stop firewalld
service iptables stop
3)关闭防火墙开机自启
systemctl disable firewalld
chkconfig iptables off
用以下方法调整:
1)修改/etc/systemd/logind.conf配置文件中的RemoveIPC参数,将#注释去掉,并修改yes为no
2)重启服务
systemctl daemon-reload
systemctl restart systemd-logind
3)修改完成后,检查确认
systemctl show systemd-logind | grep -i removeipc
1)设置OS层面的core文件生成大小
#使用root用户和dmdba用户分别执行如下语句
ulimit -c unlimited
2)更改core文件的默认生成路径。
#重新设置如下:
vi /etc/sysctl.conf 添加对应core文件参数(具体路径根据实际修改)
kernel.core_pattern =/var/log/dm/core/core-%e-%p-%s
执行 sysctl -p 进行生效
3)手动产生core文件,并查看core文件路径是否在/var/log/dm/core下
kill -11 进程号
注:需保证core文件生产路径空间大于服务器物理内存大小。
#模拟数据库读写小数据来测试硬盘的IO,命令如下:(在数据盘、归档盘上测试)
[root@~]# dd if=/dev/zero of=test bs=32k count=20k oflag=dsync
#测试网络传输速度,注意要测试双向的网络传输速度,命令如下:
[root@~]# scp local_file remote_username@remote_ip:remote_folder
1. 海光+麒麟V10与鲲鹏+麒麟V10
①vi /etc/default/grub文件,调整如下行,增加numa=off:
GRUB_CMDLINE_LINUX="resume=/dev/sda1 splash=silent quiet showopts crashkernel=113M,high crashkernel=72M,low numa=off"
②查询是UEFI-based机器还是BIOS-based的机器
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
③重新生成grub.cfg
若是 UEFI-based 的机器,请执行:
grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg
若是 BIOS-based 的机器,请执行:
grub2-mkconfig -o /boot/grub2/grub.cfg
④重启操作系统
⑤查看是否生效:
cat /proc/cmdline
1. 海光+麒麟V10
永久关闭 transparent_hugepage
①查看透明大页设置:
#cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
说明已启用透明大页
②vi /etc/default/grub文件,配置如下参数,增加transparent_hugepage=never:
GRUB_CMDLINE_LINUX="resume=/dev/sda1 splash=silent quiet showopts crashkernel=113M,high crashkernel=72M,low numa=off transparent_hugepage=never"
③查询是UEFI-based机器还是BIOS-based的机器
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
④重新生成grub.cfg
若是 UEFI-based 的机器,请执行:
grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg
若是 BIOS-based 的机器,请执行:
grub2-mkconfig -o /boot/grub2/grub.cfg
⑤重启操作系统
⑥查看是否生效:
#cat /sys/kernel/mm/transparent_hugepage/enabled
注意:如果以上操作关闭不了透明大页,按照如下方式进行关闭:
查看/sys/kernel/mm/transparent_hugepage/defrag配置文件缺省配置为“madvise”。
如需永久修改配置为“never”,需在/etc/rc.local中添加如下内容:
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
查看对应的调度算法:
通过lsblk命令找到数据盘对应的物理盘
[root@~]# lsblk
cat /sys/block/{DEVICE-NAME}/queue/scheduler,注意把{DEVICE-NAME}替换会数据库所使用的对应的磁盘名称,以下以sda为例:
cat /sys/block/sda/queue/scheduler
临地更改I/O调度方法,重启后失效:
echo deadline > /sys/block/sda/queue/scheduler
永久的更改I/O调度方法:
grubby --update-kernel=ALL --args="elevator=deadline"
重启:
reboot
重新确认调度算法:
cat /sys/block/sda/queue/scheduler
1)临时修改
临时关闭swap分区,重启后失效
[root@~]# swapoff -a
2)永久修改
永久关闭swap分区
[root@~]#vim /etc/fstab --注释swap
[root@~]vim /etc/rc.local --添加以下命令
swapoff -a
重启操作系统
[root@~]# reboot
再次确认
[root@~]# free -m
如果在使用过程中需要运行可视化的软件 ,可修改X11-forwarding配置:
[root@~]# sudo yum install xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1 xclock
[root@~]# sudo vi /etc/ssh/sshd_config
X11Forwarding Yes
[root@~]# sudo service sshd restart
dmdba用户执行DMInstall.ini
[dmdba@localhost cdrom]$ ./DMInstall.bin -i
Please select the installer's language (E/e:English C/c:Chinese) [E/e]:c
解压安装程序.........
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: GTM-12=日界线西
……
[21]: GTM+08=中国标准时间
……
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:21
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1611M
请选择安装目录 [/home/dmdba/dmdbms]:/dm8/dmdbms
可用空间: 11G
是否确认安装路径(/dm8/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /dm8/dmdbms
所需空间: 1611M
可用空间: 11G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2023-09-26 14:48:33
[INFO] 安装达梦数据库...
2023-09-26 14:48:33
[INFO] 安装 基础 模块...
2023-09-26 14:48:36
[INFO] 安装 服务器 模块...
2023-09-26 14:48:37
[INFO] 安装 客户端 模块...
2023-09-26 14:48:39
[INFO] 安装 驱动 模块...
2023-09-26 14:48:40
[INFO] 安装 手册 模块...
2023-09-26 14:48:40
[INFO] 安装 服务 模块...
2023-09-26 14:48:41
[INFO] 移动日志文件。
2023-09-26 14:48:41
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/dm8/dmdbms/script/root/root_installer.sh
安装结束
root用户执行脚本/dm8/dmdbms/script/root/root_installer.sh
[root@localhost ~]# /dm8/dmdbms/script/root/root_installer.sh
移动 /dm8/dmdbms/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
路径(PATH)/dm8/dmdbms/data,页大小(PAGE_SIZE)32,日志大小(LOG_SIZE)2048,字符集(CHARSET)0(GB18083),大小写敏感(CASE_SENSITIVE)Y(敏感)
[dmdba@localhost ~]$ /dm8/dmdbms/bin/dminit PATH=/dm8/dmdbms/data PAGE_SIZE=32 LOG_SIZE=2048 CHARSET=0 CASE_SENSITIVE=Y
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /dm8/dmdbms/data/DAMENG/DAMENG01.log
log file path: /dm8/dmdbms/data/DAMENG/DAMENG02.log
write to dir [/dm8/dmdbms/data/DAMENG].
create dm database success. 2023-09-26 15:14:32
[root@localhost ~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm8/dmdbms/data/DAMENG/dm.ini -p DMSERVER
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
[dmdba@ ~]$ cd /dm/dmdbms/data/DAMENG
#开启归档
[dmdba@DAMENG]$ vi dm.ini
ARCH_INI=1
[dmdba@DAMENG]$ vi dmarch.ini
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm/dmdbms/data/DAMENG/dmarch #本地归档存放路径(根据实际修改)
ARCH_FILE_SIZE = 2048 #单个归档大小,单位MB
ARCH_SPACE_LIMIT = 51200 #归档上限,单位MB(根据实际磁盘空间设置归档上限)
[dmdba@localhost DAMENG]$ vi 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 = /dm/dmdbms/data/logcommit(根据实际修改路径)
PART_STOR = 0
SWITCH_MODE = 2
SWITCH_LIMIT = 1024
ASYNC_FLUSH = 1
FILE_NUM = 50
ITEMS = 0
SQL_TRACE_MASK = 1
MIN_EXEC_TIME = 0
USER_MODE = 0
USERS =
[dmdba@localhost ~]$ /dm8/dmdbms/bin/DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
[dmdba@localhost ~]$ disql
disql V8
用户名:SYSDBA
密码:
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 8.733(ms)
SQL> select status$ from v$instance;
行号 STATUS$
---------- -------
1 OPEN
sp_set_para_value(1,'SVR_LOG',1);
#生效配置文件
SP_REFRESH_SVR_LOG_CONFIG();
#检查SVR_LOG参数
select * from v$dm_ini where para_name=‘SVR_LOG’;
文章
阅读量
获赞