暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

DM8读写分离集群部署(REALTIME自动切换)

1 部署规划

读写分离集群适合读多写少的应用环境。
1写2读的3节点读写分离集群部署规划如下:

IP规划:

主机名 服务ip 心跳ip 数据库名 实例名
dmdb01 192.168.10.100 10.0.0.100 dmdb rw1
dmdb02 192.168.10.101 10.0.0.101 dmdb rw2
dmdb03 192.168.10.102 10.0.0.102 dmdb rw3

端口规划:

实例名 实例端口 MAL 系统监听 TCP 连接的端口 实例本地的守护进程监听 TCP 连接的端口 实例监听守护进程 TCP 连接的端口
rw1 5236 7336 7436
rw2 5236 7336 7436
rw3 5236 7336 7436

本地存储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/

2 数据库软件安装

2.1 操作系统配置

修改内核参数

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.dmdb.%e_%p_%t
vm.swappiness=10
vm.dirty_background_ratio = 0
vm.min_free_kbytes = 2097152

使参数生效,执行

sysctl -p

新建数据库管理用户和组
执行以下命令,新建用户组 dinstall。

groupadd dinstall -g 2001

执行以下命令,新建用户组 dmdba。

groupadd dmdba -g 2002

执行以下命令,新建用户 dmdba。

useradd  -g dinstall -G dmdba -m -d /home/dmdba -s /bin/bash -u 2001 dmdba 

执行以下命令,修改 dmdba 用户密码。

passwd dmdba

此处使用Hn@d****g123

修改用户资源限制
执行以下命令,修改 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/目录下是否有其他限制资源的配置文件,如果有也需要修改。

执行以下命令,修改 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

2.2数据库软件安装

1.使用root用户挂载数据库软件的iso文件

mkdir -p /dmiso
mount -o loop dm8_20200930_x86_rh6_64_ent_8.1.1.134.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

3读写分离集群配置

3.1初始化实例

3个节点完成实例初始化
执行以下命令

dminit path=/dmdata page_size=32 extent_size=32 charset=1 log_size=2048 db_name=dmdb instance_name=dmdb SYSDBA_PWD="Hn@dameng123" SYSAUDITOR_PWD="Hn@d****g123"

-- 安全版需要SYSSSO_PWD="Hn@d****g123" 参数

以主机dmdb01为读写分离主库,启动实例

dmserver /dmdata/dmdb/dm.ini

出现system is ready后输入exit停止数据库。

3.2脱机备份数据库

在主机dmdb01上执行以下命令,确认主库 dmap 服务已启动:

ps -ef|grep dmap

图片.png

若未启动,则先启动 DMAP 服务,dmdba 到安装目录的 bin 下执行以下命令:

./DmAPService start

dmdba用户 启动dmrman工具

dmrman use_ap=2

执行 backup 全库:

backup database '/dmdata/dmdb/dm.ini' backupset '/home/dmdba/bakfull';

使用方式,如下图:
图片.png

3.3备份还原备库

将备份的文件/home/dmdba/bakfull拷贝到另外两台服务器上。
在主机dmdb02和dmdb03上
使用 dmrman 工具还原备库,dmdba 用户执行:

dmrman use_ap=2

进入dmrman工具交互界面
执行 restore:

restore database '/dmdata/dmdb/dm.ini' from backupset '/home/dmdba/bakfull';

完成后执行 recover:

recover database '/dmdata/dmdb/dm.ini' from backupset '/home/dmdba/bakfull';

最后执行 recover update db_magic。

recover database '/dmdata/dmdb/dm.ini'  update db_magic;

使用方式,如下图:
图片.png
图片.png

3.4修改dm.ini参数

所有节点都要修改
执行以下命令:

vi /dmdata/dmdb/dm.ini

主库Dmdb01上修改以下参数值:

INSTANCE_NAME = rw1
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2

备库Dmdb02上修改以下参数值:

INSTANCE_NAME = rw2
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2

备库Dmdb03上修改以下参数值:

INSTANCE_NAME = rw3
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2

3.5配置归档配置文件 dmarch.ini

在实例目录下新建文件 dmarch.ini,执行以下命令:

vi /dmdata/dmdb/dmarch.ini

REALTIME自动切换模式下
需要指定ARCH_WAIT_APPLY=1保证主备事务一致:
在实例目录下新建文件 dmarch.ini,执行以下命令:

vi /dmdata/dmdb/dmarch.ini

主库dmdb01上添加以下内容:

ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1]  
ARCH_TYPE     = REALTIME  
ARCH_DEST     = rw2   
[ARCHIVE_REALTIME2]  
ARCH_TYPE     = REALTIME  
ARCH_DEST     = rw3   
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL 
ARCH_DEST     = /dmdata/arch    
ARCH_FILE_SIZE    = 2048 
ARCH_SPACE_LIMIT  = 102400

备库dmdb02上添加以下内容:
说明:具体配置时,请把#和#之后的中文内容删除。

ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1]  
ARCH_TYPE     = REALTIME  #实时归档类型
ARCH_DEST     = dmrw1   #实时归档目标实例名(备库侧填写主库实例名)
[ARCHIVE_REALTIME2]  
ARCH_TYPE     = REALTIME  #实时归档类型
ARCH_DEST     = dmrw3   #实时归档目标实例名(备库侧填写其他备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL #本地归档类型
ARCH_DEST     = /dmdata/arch  #本地归档文件存放路径
ARCH_FILE_SIZE    = 2048 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 102400    #单位 MB,0 表示无限制,范围 1024~4294967294 MB

备库Dmdb03上添加以下内容:

ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1]  
ARCH_TYPE     = REALTIME  #实时归档类型
ARCH_DEST     = dmrw1   #实时归档目标实例名(备库侧填写主库实例名)
[ARCHIVE_REALTIME2]  
ARCH_TYPE     = REALTIME  #实时归档类型
ARCH_DEST     = dmrw2   #实时归档目标实例名(备库侧填写其他备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL #本地归档类型
ARCH_DEST     = /dmdata/arch  #本地归档文件存放路径
ARCH_FILE_SIZE    = 2048 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 102400    #单位 MB,0 表示无限制,范围 1024~4294967294 MB

3.6配置MAL系统配置文件 dmmal.ini

在实例目录下新建文件 dmmal.ini,执行以下命令。

vi /dmdata/dmdb/dmmal.ini

主备库3个节点文件内容要相同。
说明:具体配置时,请把#和#之后的中文内容删除。

MAL_CHECK_INTERVAL   = 5  
MAL_CONN_FAIL_INTERVAL  = 15  
[MAL_INST1]
  MAL_INST_NAME = rw1 
  MAL_HOST     = 10.0.0.100  
  MAL_PORT     = 7336
  MAL_INST_HOST   = 192.168.10.100  
  MAL_INST_PORT   = 5236 
  MAL_DW_PORT   = 7436 
  MAL_INST_DW_PORT = 7536
[MAL_INST2]
  MAL_INST_NAME = dmrw2 #与 dm.ini 中的 INSTANCE_NAME 一致
  MAL_HOST      = 10.0.0.101  # MAL 系统监听 TCP 内部网络 IP
  MAL_PORT          = 7336#MAL 系统监听 TCP 连接的端口
  MAL_INST_HOST         = 192.168.10.101  #实例的对外服务 IP 地址
  MAL_INST_PORT         = 5236 #与 dm.ini 中的 PORT_NUM 一致
  MAL_DW_PORT  = 7436 #实例对应的守护进程监听 TCP 端口
  MAL_INST_DW_PORT = 7536
[MAL_INST3]
  MAL_INST_NAME = dmrw2 #与 dm.ini 中的 INSTANCE_NAME 一致
  MAL_HOST      = 10.0.0.102  # MAL 系统监听 TCP 内部网络 IP
  MAL_PORT          = 7336#MAL 系统监听 TCP 连接的端口
  MAL_INST_HOST         = 192.168.10.102  #实例的对外服务 IP 地址
  MAL_INST_PORT         = 5236 #与 dm.ini 中的 PORT_NUM 一致
  MAL_DW_PORT  = 7436 #实例对应的守护进程监听 TCP 端口
  MAL_INST_DW_PORT = 7536

3.7配置守护进程配置文件 dmwatcher.ini

在实例目录下新建文件 dmwatcher.ini,执行以下命令:

vi /dmdata/dmdb/dmwatcher.ini

主备库3节点文件内容要相同。
说明:具体配置时,请把#和#之后的中文内容删除。

[GRP_RW] 
DW_TYPE    = GLOBAL  #全局守护类型
DW_MODE    = AUTO #自动切换模式
DW_ERROR_TIME     = 30  #远程守护进程故障认定时间
INST_RECOVER_TIME  = 60         #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME   = 20  #本地实例故障认定时间
INST_OGUID         = 453331 #守护系统唯一 OGUID 值
INST_INI           = /dmdata/dmdb/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART  = 1   #打开实例的自动启动功能
INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动

以 mount 方式启动数据库实例
使用 dmdba 用户,执行以下命令(主备库都执行):

dmserver /dmdata/dmdb/dm.ini mount

在新的终端使用 disql 工具连接数据库:

./disql SYSDBA/'"Hn@d****g123"'

主备库都修改 oguid,执行以下命令:

sp_set_oguid(453331);

如果提示修改不了,使用以下方式修改:

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

主库Dmdb01上修改数据库模式为 primary,执行以下命令:

alter database primary;

备库Dmdb02和Dmdb03上修改数据库模式为 standby,执行以下命令:

alter database standby;

启动守护进程
dmdba 用户下,到数据库安装目录的 bin 下执行以下命令(主备库都执行):

dmwatcher /dmdata/dmdb/dmwatcher.ini

守护进程启动后,会将 Mount 的实例 Open。
启动监视器
守护进程配置为自动切换时,必须配置确认监视器。在主备服务器以外的服务器上(需安装有 DM 数据库软件,且与主备心跳网络端口开放)。
新建确认监视器配置文件 dmmonitor.ini,执行以下命令:

vi /dmdata/dmdb/dmmonitor.ini

添加以下内容:
说明:具体配置时,请把#和#之后的中文内容删除。

MON_DW_CONFIRM    = 1   #确认监视器模式
MON_LOG_PATH    = /home/dmdba/dmdbms/log  #监视器日志文件存放路径
MON_LOG_INTERVAL  = 60 #每隔 60 s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE   = 200#每个日志文件最大 32 MB
MON_LOG_SPACE_LIMIT  = 1024  #不限定日志文件总占用空间
[GRP_RW] 
 MON_INST_OGUID    = 453331 #组 GRP_RW 的唯一 OGUID 值
#以下配置为监视器到组 GRP_RW 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
 MON_DW_IP     = 10.0.0.101:7436 
 MON_DW_IP     = 10.0.0.102:7436 
 MON_DW_IP     = 10.0.0.103:7436 

执行以下命令,启动监视器。

dmmonitor /dmdata/dmdb/dmmonitor.ini

启动后输入 show 命令查看集群状态。

3.8注册服务

以上启动为前台方式启动,仅用户搭建过程中验证配置。配置没问题后需要将实例,守护进程和确认监视器注册为系统服务。
使用 root 用户,到数据库安装目录的script/root下。
注册守护进程服务(主备库都执行)。

./dm_service_installer.sh -t dmwatcher -p rw -watcher_ini /dmdata/dmdb/dmwatcher.ini

注册数据库实例服务(主备库都执行):

./dm_service_installer.sh -t dmserver -p rw -dm_ini /dmdata/dmdb/dm.ini

以服务方式启动
执行以下命令,启动数据库实例:

systemctl start DmServicerw

执行以下命令,启动守护进程:

systemctl start DmWatcherServicerw

注册监视器服务:
使用 root 用户,到数据库安装目录的script/root下。

./dm_service_installer.sh -t dmmonitor -p confirm -monitor_ini /dmdata/dmdb/dmmonitor.ini

以服务方式启动监视器服务
执行以下命令,启动数据库实例:

systemctl start DmMonitorServiceconfirm

3.9验证主备集群同步状态

监视器查看读写分离集群状态
集群任意节点,配置普通监视器配置文件 dmmonitor.ini,执行以下命令:

vi /dmdata/dmdb/dmmonitor.ini

添加以下内容:
说明:具体配置时,请把#和#之后的中文内容删除。

MON_DW_Confirm    = 0   #普通监视器模式
MON_LOG_PATH    = /opt/dmdbms/log  #监视器日志文件存放路径
MON_LOG_INTERVAL  = 60 #每隔 60 s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE   = 32 #每个日志文件最大 32 MB
MON_LOG_SPACE_LIMIT  = 0  #不限定日志文件总占用空间
[GRP_RW] 
 MON_INST_OGUID    = 453331 #组 GRP_RW 的唯一 OGUID 值
#以下配置为监视器到组 GRP_RW 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
 MON_DW_IP     = 10.0.0.101:7436
 MON_DW_IP     = 10.0.0.102:7436
 MON_DW_IP     = 10.0.0.103:7436

执行以下命令,启动监视器:

./dmmonitor /dmdata/dmdb/dmmonitor.ini

输入 show 命令查看集群状态:
其中守护进程状态 WSTATUS 为 OPEN,实例状态 ISTATUS 为 OPEN,归档类型 RTYPE 为 REALTIME,归档状态 RSTAT 为VALID。

disql 客户端验证
使用 disql 客户端登录主库,创建测试表,插入数据,执行以下命令:
注意密码含有特殊字符时的转义处理

disql SYSDBA/'"Hn@d****g123"'@192.168.10.100:5236

SQL 提示符下执行以下命令:

create table test(id int);
insert into test values (1);
commit;

使用 disql 客户端登录备库,查询测试表验证,执行以下命令:

disql SYSDBA/'"Hn@d****g123"'@dameng123@192.168.10.101:5236

SQL 提示符下执行以下命令:

select * from test;
disql SYSDBA/'"Hn@d****g123"'@192.168.10.102:5236

SQL 提示符下执行以下命令:

select * from test;

查看数据是否正常同步。

3.10 配置sql日志

所有节点修改sqllog.ini

cd到实例路径下

cd /dmdata/dmdb/
vi sqllog.ini
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 = 

3.11参数优化

集群部署完成后,需要优化 dm.ini 参数,主备库都需要修改。参数值优化联系达梦获取最新脚本。

重启集群(参数修改后需要重启集群)
读写分离集群重启:
说明:请严格按照此顺序。
关闭确认监视器:systemctl stop DmMonitorServiceconfirm
关闭备库守护进程:systemctl stop DmWatcherServicerw
关闭主库守护进程:systemctl stop DmWatcherServicerw
关闭主库实例:systemctl stop DmServicerw
关闭备库实例:systemctl stop DmServicerw
启动备库实例:systemctl start DmServicerw
启动主库实例:systemctl start DmServicerw
启动主库守护进程:systemctl start DmWatcherServicerw
启动备库守护进程:systemctl start DmWatcherServicerw
启动确认监视器:systemctl start DmMonitorServiceconfirm

3.12定制备份策略

说明:备份作业仅在主库上生效!

根据应用需求,定制备份策略如下所示
备份类型 备份周期 备份时间
全量备份 每周 每周六 23 点
增量备份 每天 除周六外每天 23 点
删除备份 每天 每天 23 点 30

登录数据库执行以下命令,创建作业系统表

SP_INIT_JOB_SYS(1);

注:否则是没有SYSJOB模式。

全量备份(每周六 23 点全备):其中有1分钟后的一次性全备调度(once),执行完成后检查备份是否成功。

call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakfull');
call SP_ADD_JOB_STEP('bakfull', 'bak1', 6, '01020000/dmbak', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakfull', 'std1', 1, 2, 1, 64, 0, '23:00:00', NULL, '2021-11-01 21:17:22', NULL, '');
call SP_ADD_JOB_SCHEDULE('bakfull', 'once', 1, 0, 0, 0, 0, NULL, NULL, sysdate+1/1440, NULL, '');
call SP_JOB_CONFIG_COMMIT('bakfull');

增量备份(每周除周六外每天 23 点增量备份):

call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakincr');
call SP_ADD_JOB_STEP('bakincr', 'bak2', 6, '41010000/dmbak|/dmbak', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakincr', 'std2', 1, 2, 1, 63, 0, '23:00:00', NULL, '2021-11-01 21:19:30', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakincr');

备份定期删除(每天 23:30 删除 14 天前备份):

call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('delbak');
call SP_ADD_JOB_STEP('delbak','bak1',0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmdata/dmbak'');call sp_db_bakset_remove_batch(''DISK'',now()-14);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '23:30:00', NULL, '2020-11-02 14:48:41', NULL, '');
call SP_JOB_CONFIG_COMMIT('delbak');

另外添加自动收集统计信息的任务(每天1点收集全库统计信息)

call SP_CREATE_JOB('statistics',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('statistics');
call SP_ADD_JOB_STEP('statistics', 'statistics1', 0, 'begin
for rs in (select ''sf_set_SESSION_para_value(''''HAGR_HASH_SIZE'''',(select cast(
case when max(table_rowcount(owner,table_name))<=(select max_value from v$dm_ini 
where para_Name=''''HAGR_HASH_SIZE'''') and max(table_rowcount(owner,table_name))>=(
select min_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''')  then 
max(table_rowcount(owner,table_name)) when max(table_rowcount(owner,table_name))<(
select min_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') then
 (select min_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') else 
 (select max_value from v$dm_ini where para_Name=''''HAGR_HASH_SIZE'''') end as bigint) 
 from dba_tables where owner=''''''||NAME||''''''));''
sql1,''DBMS_STATS.GATHER_SCHEMA_STATS(''''''||NAME||'''''',100,TRUE,''''FOR ALL COLUMNS SIZE AUTO'''');'' 
sql2
 from SYS.SYSOBJECTS where TYPE$=''SCH'' ) loop
execute  immediate rs.sql1;
execute  immediate rs.sql2;
end loop;
end;', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('statistics', 'statistics1', 1, 2, 1, 64, 0, '01:00:00', NULL, '2021-06-09 22:54:37', NULL, '');
call SP_JOB_CONFIG_COMMIT('statistics');

说明:每周6凌晨1点开始收集。
注意:上线前,必须提前48小时,完成数据迁移和统计信息收集。

3.13客户端连接集群

客户端主机上需要配置 dm_svc.conf 文件(未安装 DM 数据库的机器新建即可),文件路径:
32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\system32 目录;
64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\system32 目录;
32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\SysWOW64 目录;
在 Linux 平台下,此文件位于/etc 目录。
文件内容:

# 以#开头的行表示是注释
# 全局配置区
DMRW=(192.168.10.100:5236,192.168.10.101:5236,192.168.10.102:5236)
TIME_ZONE=(+480) #表示+8:00 时区
LOGIN_ENCRYPT=(0)
DIRECT=(Y)
# 服务配置区
[DMRW]
LOGIN_MODE=(1)#只连主库
RW_SEPARATE=(1) #是否启用读写分离
RW_PERCENT=(10) #读写分离分发比例

客户端程序连接数据库时,需要指定 IP 端口处替换为服务名即可,例如:

disql SYSDBA/'"Hn@d****g123"'@DMRW

jdbc的url为:jdbc:dm://DMRW

注意:
1)当修改了 dm_svc.conf 内容后,需要重启客户端程序,修改的配置才能生效。
2)请把该文件路径授予666权限。

最后修改时间:2026-06-22 09:40:32
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论