dmncdm达梦新云缓存数据库单机安装部署详细步骤说明
1 环境介绍
cpu x86 Os Kylin v10 dmncdm cdm-V1.0-20241213.x86_64.rpm
2 安装dmncdm程序
# 使用 root 用户
chmod + rx / etc/ security/ limits. conf
chmod + rx / etc/ dm_svc. conf
vi / etc/ security/ limits. conf
* soft nproc 10240
* hard nproc 10240
root soft nproc 10240
root hard nproc 10240
root soft nofile 65536
root hard nofile 65536
root hard data unlimited
root soft data unlimited
root hard fsize unlimited
root soft fsize unlimited
root soft core unlimited
root hard core unlimited
[root@localhost home]# rpm -ivh cdm-V1.0-20241213.x86_64.rpm
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:cdm-V1.0-20241213_c8d8c6a6 ################################# [100%]
rpm包已安装至/opt/dmncdb/cdm目录下!
[root@localhost home]#
3 单库环境 - 注册服务
[root@localhost scripts]# cd /opt/dmncdb/cdm/bin/scripts
[root@localhost scripts]# ./cdm_service_installer.sh -h
Usage: cdm_service_installer.sh [-n service_name_postfix] [-ini cdm_server_ini_file] [-auto true|false]
or cdm_service_installer.sh [-s service_file_path] [-p port] [-data data_path]
or cdm_service_installer.sh -h
-n 服务名后缀
-ini cdm_server.ini文件路径,不指定使用默认路径文件,指定后无法再指定参数-data、-p
-auto 设置服务是否自动启动,值为true或false,默认true.
-s 服务脚本路径,设置则忽略其他参数选项
-p 指定端口启动,不指定默认端口为6379
-data 指定CDM数据存放路径,不指定存放在默认路径下
-h 帮助
[root@localhost scripts]# ./cdm_service_installer.sh -n 6380 -p 6380
Created symlink /etc/systemd/system/multi-user.target.wants/CDMService6380.service → /usr/lib/systemd/system/CDMService6380.service.
创建服务(CDMService6380)完成
[root@localhost scripts]#
3.1 服务关闭、启动、重启
systemctl stop CDMservice6380
systemctl start CDMservice6380
systemctl restart CDMservice6380
3.2 新实例目录
[root@localhost instance_6380]# ps -ef|grep cdm
root 12238 1 0 17:10 ? 00:00:02 /opt/dmncdb/cdm/bin/cdm_server /opt/dmncdb/cdm/instances/instance_6380/cdm_server.ini
4 连接缓存数据库
4.1 连接报错 ./redis-cli: error while loading shared libraries: libssl.so.10
[root@localhost thirdparty]# ./redis-cli -p6380
./redis-cli: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory
[root@localhost thirdparty]#
4.2 查看依赖环境
[root@localhost thirdparty]# ldd redis-cli
linux-vdso.so.1 (0x00007ffed7d5a000)
libm.so.6 => /usr/lib64/libm.so.6 (0x00007fd7f42e3000)
libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fd7f42de000)
librt.so.1 => /usr/lib64/librt.so.1 (0x00007fd7f42d3000)
libssl.so.10 => not found
libcrypto.so.10 => not found
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fd7f42b2000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007fd7f40f8000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd7f4483000)
[root@localhost thirdparty]#
4.3 依赖文件下载
4.4 再次查看依赖关系
[root@localhost thirdparty]# ldd redis-cli
linux-vdso.so.1 (0x00007fffb13e8000)
libm.so.6 => /usr/lib64/libm.so.6 (0x00007fb3d2155000)
libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fb3d2150000)
librt.so.1 => /usr/lib64/librt.so.1 (0x00007fb3d2145000)
libssl.so.10 => /lib64/libssl.so.10 (0x00007fb3d1ed3000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007fb3d1a70000)
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fb3d1a4f000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007fb3d1895000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb3d22f5000)
libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00007fb3d183f000)
libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00007fb3d1759000)
libcom_err.so.2 => /usr/lib64/libcom_err.so.2 (0x00007fb3d1753000)
libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00007fb3d173a000)
libz.so.1 => /usr/lib64/libz.so.1 (0x00007fb3d1720000)
libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00007fb3d170c000)
libkeyutils.so.1 => /usr/lib64/libkeyutils.so.1 (0x00007fb3d1705000)
libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007fb3d1423000)
libresolv.so.2 => /usr/lib64/libresolv.so.2 (0x00007fb3d140a000)
libselinux.so.1 => /usr/lib64/libselinux.so.1 (0x00007fb3d13de000)
libsecurity.so.0 => /usr/lib64/libsecurity.so.0 (0x00007fb3d13d7000)
libpcre2-8.so.0 => /usr/lib64/libpcre2-8.so.0 (0x00007fb3d1342000)
[root@localhost thirdparty]#
4.5 登录并测试
[root@localhost thirdparty]# ./redis-cli -p 6380
127.0.0.1:6380> set a 321
OK
127.0.0.1:6380> get a
"321"
127.0.0.1:6380> exit
[root@localhost thirdparty]#
5 其他配置需修改文件
[root@localhost instance_6380]# cat /opt/dmncdb/cdm/instances/instance_6380/cdm_server.ini
##################################################
# #
# CDM_SERVER #
# #
##################################################
#默认绑定接口,支持ipv6和ipv4
#bind 0.0.0.0
#设置客户端连接后进行任何其他指定前需要使用的密码
#requirepass
#配置是否开启密码防暴力破解功能
#acl-security-check yes
#配置是否开启密码加密功能,开启后配置文件和内存中将显示加密后的密码,解锁需使用加密前的原密码
#encrypt-pass no
#自定义配置加密秘钥路径,秘钥内容为小于等于32位的字符串
#encrypt-pass-key-file /opt/dmncdb/cdm/bin/key.txt
#当前实例所在物理机域名
#domain-name test.com
#客户端限制一定时间自动断开,0表示不检查,默认配置0s
#timeout 0
#设置启动默认db数量
#databases 16
#设置监听端口
port 6380
#以守护进程方式启动,默认不开启。
daemonize yes
#同一时间内最大clients连接的数量,超过数量的连接会返回一个错误信息
#maxclients 10000
#客户端接收缓冲区最大限制,默认1GB,如果超过此限制服务端会主动断开此连接,从机中的主机连接不受此限制。
#client-query-buffer-limit 1GB
#字符串最大长度默认512M, 最小1M
#proto-max-bulk-len 512M
#"cdm server执行后台任务的频率,默认为10,此值越大表示cdm对""间歇性task""的执行次数越频繁(次数/秒)。
#目前只涉及autobgsave检查,new connection检查等 value大于0且小于500。
#此值过小就意味着更多的cpu周期消耗,后台task被轮询的次数更频繁。此值过大意味着""内存敏感""性较差。建议采用默认值"
#hz 10
#分别代表开启动态hz和关闭动态hz。默认值为yes。当动态hz开启时,您设置的hz参数的值,即configured-hz,将作为基线值,而cdm服务中的实际hz值会在基线值的基础上根据已连接到cdm的客户端数量自动调整,连接的客户端越多,实际hz值越高,cdm执行定期任务的频率就越高-启用
#dynamic-hz yes
#lua脚本相关,cdm_server提供了一个lua-time-limit参数,默认是5秒,它是Lua脚本的"超时时间",当Lua脚本执行时间超过设置的lua-time-limit值之后,允许其他客户端使用script kill或者 shutdown nosave命令来杀掉这个busy的脚本
#lua-time-limit 5000
#"慢操作日志"记录,单位:微秒(百万分之一秒,1000 * 1000),如果操作时间超过此值,将会把command信息记录到内存中。
#其中"操作时间"不包括网络IO开支,只包括请求达到server后进行"内存实施"的时间,"0"表示记录全部操作。
#slowlog-log-slower-than 10000
#"慢操作日志"保留的最大条数,"记录"将会被队列化,如果超过了此长度,旧记录将会被移除。
#slowlog-max-len 128
#日志与数据存放路径
dir /opt/dmncdb/cdm/instances/instance_6380/
#数据存放路径
#data-dir
#日志记录等级,从左到右从小到大有5个可选值,debug(调试信息),info(常规提示信息),warn(警告信息),error(普通错误信息),fatal(致命错误信息)
#日志等级越高记录信息越少,生产或性能测试环境至少info及以上,填写错误loglevel或缺省,默认info
#loglevel info
#限制单个日志文件大小,写满后会重开一个日志文件
#log-file-size 1G
#限制日志文件数量,写满后会从头覆盖写
#log-file-num 3
#################################数据持久化#####################################
#"向磁盘进行数据刷写的频率,有3个选项:
#always 有新数据则马上刷写,速度慢但可靠性高
#everysec 每秒钟刷写一次,折衷方法,所谓的cdm可以只丢失1秒钟的数据就是源于此处
#no 按照OS自身的刷写策略来进行,速度最快
appendfsync no
# 是否启用aof持久化方式
appendonly no
#设置数据保存到数据文件中的save规则。
#1h时间至少有1条数据更新,则自动保存至数据文件中
save 3600 1
#300S时间至少有100条数据更新,则自动保存至数据文件中
save 300 100
#60S时间至少有10000条数据更新,则自动保存至数据文件中
save 60 10000
#是否进行RDB文件加密,默认不加密
#encrypt-rdb yes
#文件加解密所需秘钥
#encrypt-key-file
#配置rdb持久化文件的文件名
#dbfilename dump.rdb
#配置开启允许非空库load
#allow-none-empty-loading no
#################################bigkey功能#####################################
#开启bigkey记录功能
#topn-enabled no
#topn 大主键阈值
#bigkey-threshold 10240
#topn 最大默认保存数,预存500个,配置1则最多存501个,默认为0则最大存500个。
#bigkey-max-len 1000
#################################黑白名单#####################################
#ip白名单,白名单文件中每一个ip(或者ip段)用换行隔开,不能出现空格符,白名单为空时不检查,配置白名单成功后只有白名单中ip才允许连接服务。
#如不指定则默认落盘在data_dir路径下的cdm_ipwl.txt文件。
#ip-white-list-file /home/ipw.txt
#ip黑名单,黑名单文件中每一个ip(或者ip段)用换行隔开,不能出现空格符.黑名单为空时不检查,配置黑名单成功后,黑名单中ip不允许连接服务。
#如不指定则默认落盘在data_dir路径下的cdm_ipbl.txt文件。
#ip-black-list-file /home/ipb.txt
#################################命令控制#####################################
#重命令名称
#禁用del命令
#rename-command del ""
#重命名del为bye
#rename-command del bye
#################################主备相关#####################################
#配置从机连接主机
#replicaof <masterip> <masterport>
#配置从机验证主机的用户
#masteruser <username>
#配置从机验证主机的密码
#masterauth <master-password>
#主机PING从机的间隔,单位为秒
#repl-ping-replica-period 10
#主从之间的超时间隔,单位为秒
#repl-timeout 60
#从机是否是只读,yes是只读 no是可读写
#replica-read-only yes
#BackLog最大值
repl-backlog-size 10mb
#从机对外IP,强制从节点向主节点声明任意ip,可用于主节点INFO和ROLE命令输出
#replica-announce-ip
#从机对外PORT,强制从节点向主节点声明任意port,可用于主节点INFO和ROLE命令输出
#replica-announce-port
#最小连接从机数量
#min-replicas-to-write
#最小连接从机延迟,单位为秒
#min-replicas-max-lag
#从机权重配置,monitor选择从机提升时以此为依据,配置值越小,优先级越高,默认100,配置为0的从机永远不能被提升为主机。
#replica-priority 100
#配置事件通知
#notify-keyspace-events ""
#集群数据同步策略,默认no
#realtime 实时同步,速度慢但是可靠
#no 按照自身策略同步数据,速度最快
#repl-sync no
#主从数据同步时主机发送线程等待时间
#单位为ms,默认值为50ms
#该值越大,并发性能越好,但Request的延迟会变高
#repl-master-sendthrd-sleeptime 50
#################################内存淘汰#####################################
#最大可用内存,0表示不限制
#maxmemory 0
#cdm 的 LRU 是取出配置的数目的key,然后从中选择一个最近最不经常使用的 key 进行置换,默认配置5。
#maxmemory-samples 5
#当内存达到最大值的时候会选择以下6种策略
#volatile-lru 利用LRU算法移除最久没有使用的带过期时间的key
#allkeys-lru 利用LRU算法移除最久没有使用的key
#volatile-random 随机移除带过期时间的key
#allkeys-random 随机移除任意key
#volatile-ttl 移除即将过期的key
#noeviction 不移除任何key,只是返回一个错误
#maxmemory-policy noeviction
###################################ACL#########################################
## ACL相关参数 ##
# 为用户设置ACL权限
# user <username> ... acl rules ...
# 内部cdm_server.ini和外部ACL文件中使用的格式是完全相同的
# user worker +@list +@connection ~jobs:* on >ffa9203c493aa99
# 设置ACL默认是否开启pub/sub权限
#acl-pubsub-default resetchannels/allchannels
# ACL LOG
# 设置ACL日志的最大条目长度
#acllog-max-len 128
# 使用外部ACL文件
# 有两种方法可以将用户存储在cdm配置中,一种是cdm_server.ini 中配置,一种是使用一个独立的外部 acl 文件,这两种方式不兼容,只能选择一种方式,通常外部文件的方式更灵活,推荐使用。
# 当您要使用外部ACL文件时,需要指定后缀为.acl的文件路径,如下所示:
# aclfile /etc/cdm/users.acl
################################# TLS/SSL #####################################
# TLS/SSL 默认是关闭的, 要想打开TLS/SSL,直接配置'tls-port',port配置为0时禁用端口,默认如下
# port 0
# tls-port 6379
# 配置证书和私钥用来向连接的客户端、主节点或者集群进行服务器验证,生成时证书和私钥长度需大于2048
# tls-cert-file cdm.crt
# tls-key-file cdm.key
# 如果私钥文件使用密码加密了,需要指定加密文件位置
# tls-key-file-pass secret
# 通常情况下缓存数据库和客户端使用相同的证书,
# 但是如果有时候出现指定服务端或者客户端仅用证书文件时,需要在下列参数指定
# tls-client-cert-file client.crt
# tls-client-key-file client.key
# 如果客户端私钥文件使用密码加密了,需要指定加密文件位置
# tls-client-key-file-pass secret
# Configure a DH parameters file to enable Diffie-Hellman (DH) key exchange:
# tls-dh-params-file cdm_server.dh
# 配置CA证书或目录以便用以验证客户端,至少配置其中一项参数并且配置tls-ca-cert-file时文件必须存在
# tls-ca-cert-file ca.crt
# tls-ca-cert-dir /etc/ssl/certs
# 默认情况下,TLS上的客户端或者从节点需要使用有效的客户端证书进行身份验证
# 如果设置了no,表示不需要客户端证书,如果设置yes,则必须提供有效的客户端证书,但是不是必须的
# tls-auth-clients no
# tls-auth-clients yes
# tls-auth-clients optional
# 默认情况下从节点不会尝试与其主节点建立TLS连接,通过配置以下参数可以启动TLS
# tls-replication yes
# 默认情况下仅启用TLSV1.2和TLSV1.3,您可以明确指定TLS版本,设置值不区分大小写,包括
# "TLSv1.2"及以上任意组合,例:要仅启用TLSv1.2,TLSv1.3参数请使用如下参数
# tls-protocols "TLSv1.2 TLSv1.3"
# 配置允许的密码,有关此字符串更多信息,请参考ciphers(1ssl)联机帮助页
# 注意: 此配置项仅使用版本 <= TLSv1.2.
# tls-ciphers DEFAULT:!MEDIUM
# 配置允许TLSv1.3密码套件,有关此字符串更多信息,请参考ciphers(1ssl)联机帮助页,尤其是
# TLSv1.3密码套件
# tls-ciphersuites TLS_CHACHA20_POLY1305_SHA256
# 选择密码时,请默认试用服务器首选项而不是客户端首选项,默认情况下服务器遵循客户端偏好
# tls-prefer-server-ciphers yes
# 默认情况下,启用TLS会话缓存以允许支持它的客户端更快、更低成本重新连接。可以使用如下
# 配置禁用缓存
# tls-session-caching no
# 更改缓存TLS会话默认数量,0表示高速缓存设置不限制,默认大小20480
# tls-session-cache-size 5000
# 更改缓存TLS会话默认超时,默认超时300秒
# tls-session-cache-timeout 60
################################# 时间跳变 #####################################
#开启该参数后,如果发现时间跳变,则立刻发送时间跳变处理信号,阻塞所有命令线程并开始进行TTL更新,默认不开启
#time-jump-detection no
[root@localhost instance_6380]#
6 达梦数据库全方位指南 安装 优化 实战教程