一、基础环境准备
操作系统版本 | 3台 Centos7.7 |
数据库版本 | dm8_20240408_x86_rh7_64.iso |
麒麟和统信也是一样的步骤,只需要下载对应的安装包。虚拟机最好是双网卡,单网卡需要修改配置文件,本文我就是单网卡。还需要关闭防火墙selinux。
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# setenforce 0
1、分别在三台机器上安装单机版。
将下载后的iso 后缀的文件上传至三台机器opt目录下,对文件进行挂载:
mount -o loop /opt/dm8_20240408_x86_rh7_64.iso /mnt
1、部署建议不要用root用户,风险太高,新建DM专属账号。
groupadd dinstall -g 2001
useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
passwd dmdba
2、修改文件打开最大数
在 Linux、Solaris、AIX 和 HP-UNIX 等系统中,操作系统默认会对程序使用资源进行限制。如果不取消对应的限制,则数据库的性能将会受到影响。
vi /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
修改配置文件后重启服务器生效。
[root@localhost opt]# reboot
切换到 dmdba 用户,查看是否生效:
[root@localhost ~]# su - dmdba
[dmdba@localhost ~]$ ulimit -a
3、规划安装目录
1.可根据实际需求规划安装目录,本示例使用默认配置 DM 数据库安装在 /home/dmdba 文件夹下。
2.规划创建实例保存目录、归档保存目录、备份保存目录。
[root@localhost ~]# mkdir -p /dmdata/data
[root@localhost ~]# mkdir -p /dmdata/arch
[root@localhost ~]# mkdir -p /dmdata/dmbak
[root@localhost ~]# chown -R dmdba:dinstall /dmdata/data
[root@localhost ~]# chown -R dmdba:dinstall /dmdata/arch
[root@localhost ~]# chown -R dmdba:dinstall /dmdata/dmbak
[root@localhost ~]# chmod -R 755 /dmdata/data
[root@localhost ~]# chmod -R 755 /dmdata/arch
[root@localhost ~]# chmod -R 755 /dmdata/dmbak
4、DM8安装
[root@localhost ~]# su - dmdba
[dmdba@localhost ~]$ cd /mnt/
执行如下命令进行安装。
[dmdba@localhost mnt]$ ./DMInstall.bin -i
[root@localhost ~]# /home/dmdba/dmdbms/script/root/root_installer.sh
5、初始化及配置实例
[dmdba@localhost mnt]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./dminit path=/dmdata/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBSERVER PORT_NUM=5237
6、注册服务
DM 提供了将 DM 服务脚本注册成操作系统服务的脚本,同时也提供了卸载操作系统服务的脚本。注册和卸载脚本文件所在目录为安装目录的“/script/root”子目录下。
注册服务脚本为 dm_service_installer.sh,用户可以使用注册服务脚本将服务脚本注册成为操作系统服务。注册服务需使用 root 用户进行注册,使用 root 用户进入数据库安装目录的 /script/root 下
[root@localhost ~]# cd /home/dmdba/dmdbms/script/root/
[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMTEST/dm.ini -p DMTEST
7、服务注册成功后,启动数据库。
使用 dmdba 用户进入 DM 安装目录下的 bin 目录下,启动数据库,如下所示:
[dmdba@localhost bin]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./DmServiceDMTEST start
8、开启本地归档
[dmdba@localhost bin]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@192.168.59.222:5237
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdata/arch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=102400';
SQL> ALTER DATABASE OPEN;
查看归档是否开启
SQL>select arch_mode from v$database;
9、配置 SQL 日志
SQL 日志内容包含系统各会话执行的 SQL 语句、参数信息、错误信息等。SQL 跟踪日志主要用于分析错误和分析性能问题,基于跟踪日志可以对系统运行状态有一个分析。查看是否开启sql日志,如果没有开启的话,需要去开启。
SQL> select * from v$parameter where name like 'SVR_LOG%';
创建 SQL 日志存放目录。
[dmdba@localhost log]$ mkdir -p /home/dmdba/dmdbms/log/logcommit
[dmdba@localhost DMTEST]$ cd /dmdata/data/DMTEST
[dmdba@localhost DMTEST]$ 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 = /home/dmdba/dmdbms/log/logcommit #sql 日志生成路径
PART_STOR = 0
SWITCH_MODE = 2
SWITCH_LIMIT = 1024 #每个日志文件 1024M
ASYNC_FLUSH = 1
FILE_NUM = 20 #循环收集 20 个可以根据实际情况做调整
ITEMS = 0
SQL_TRACE_MASK = 1
MIN_EXEC_TIME = 0
USER_MODE = 0
USERS =
执行调用存储过程生效配置文件,并开启 SQLLOG 日志。
SQL>SP_REFRESH_SVR_LOG_CONFIG();
SQL>sp_set_para_value(1,’SVR_LOG’,1);
—检查 SVR_LOG 参数。
SQL>SELECT para_name,para_value,sess_value,file_value FROM V$DM_INI where para_name in (‘SVR_LOG’,‘SVR_LOG_NAME’);
10、数据库备份
全量备份 + 删除(推荐使用)
此备份策略适用于数据量小于 100G 的场景下。注意开启数据库归档,确定备份路径。
例如设置每天 23:00 全量备份、删除 30 天前的全量备份。备份路径为 /dmdata/dmbak。
进行disql直接执行以下命令即可。
SQL>call SP_INIT_JOB_SYS(1);
SQL>call SP_CREATE_JOB('bakall_delall',1,0,'',0,0,'',0,'每天 23:00 全量备份、删除 30 天前的全量备份');
SQL>call SP_JOB_CONFIG_START('bakall_delall');
SQL>call SP_ADD_JOB_STEP('bakall_delall', 'bakall', 6, '01020000/dmdata/dmbak', 3, 1, 0, 0, NULL, 0);
SQL>call SP_ADD_JOB_STEP('bakall_delall', 'delall', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmdata/dmbak'');
SQL>CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-30);', 1, 1, 0, 0, NULL, 0);
SQL>call SP_ADD_JOB_SCHEDULE('bakall_delall', 'bakall_delall_time01', 1, 1, 1, 0, 0, '23:00:00', NULL, '2019-01-01 01:01:01', NULL, '');
SQL>call SP_JOB_CONFIG_COMMIT('bakall_delall');
全量备份 + 增量备份 + 删除(此处不用执行)
此备份策略适用于数据量大于 100G 并且小于 3T 的场景下。注意开启数据库归档,确定备份路径。
—设置 2 分钟后自动进行一次全量备份
call SP_INIT_JOB_SYS(1);
call SP_CREATE_JOB('bakall_one',1,0,'',0,0,'',0,'执行一次全量备份');
call SP_JOB_CONFIG_START('bakall_one');
call SP_ADD_JOB_STEP('bakall_one', 'bakall', 6, '01020000/opt/dmdbms/data/DAMENG/bak/all', 1, 1, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakall_one', 'bakall_one_time01', 1, 0, 0, 0, 0, NULL, NULL, SYSDATE()+0.0014, NULL, '');
call SP_JOB_CONFIG_COMMIT('bakall_one');
--设置全量备份
call SP_CREATE_JOB('bakall',1,0,'',0,0,'',0,'每月第一个周六23:00全量备份');
call SP_JOB_CONFIG_START('bakall');
call SP_ADD_JOB_STEP('bakall', 'bakall', 6, '01020000/opt/dmdbms/data/DAMENG/bak/all', 1, 1, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakall', 'bakall_time01', 1, 4, 1, 7, 0, '23:00:00', NULL, '2019-01-01 01:01:01', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakall');
--设置增量备份 + 删除备份
call SP_CREATE_JOB('bakadd_delbak',1,0,'',0,0,'',0,'每天(除周六)23:00增量备份、删除30天前的增量备份、删除40天前的全量备份');
call SP_JOB_CONFIG_START('bakadd_delbak');
call SP_ADD_JOB_STEP('bakadd_delbak', 'bakadd', 6, '11020000/opt/dmdbms/data/DAMENG/bak/all|/opt/dmdbms/data/DAMENG/bak/add', 3, 1, 0, 0, NULL, 0);
call SP_ADD_JOB_STEP('bakadd_delbak', 'delbak', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/opt/dmdbms/data/DAMENG/bak/add'');
CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-30);
SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/opt/dmdbms/data/DAMENG/bak/all'');
CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-40);', 1, 1, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakadd_delbak', 'bakadd_delbak_time01', 1, 2, 1, 63, 0, '23:00:00', NULL, '2019-01-01 01:01:01', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakadd_delbak');
另外2台再不演示,按照上述操作即可。
二、集群规划
A 机器 | B 机器 | C机器 | |
业务 IP | 192.168.59.222 | 192.168.59.241 | 192.168.59.242 |
心跳 IP | 192.168.1.1 | 192.168.1.2 | 监视机器 |
实例名 | GRP1_RT_01 | GRP1_RT_02 | |
实例端口 | 5237 | 5237 | |
MAL 端口 | 5336 | 5336 | |
MAL 守护进程端口 | 5436 | 5436 | |
守护进程端口 | 5536 | 5536 | |
OGUID | 45331 | 45331 | |
守护组 | GRP1 | GRP1 | |
安装目录 | /home/dmdba/dmdbms | /home/dmdba/dmdbms | |
实例目录 | /dmdata/data | /dmdata/data | |
归档上限 | 51200 | 51200 |
三、集群架构
搭建的主备集群架构如下图:
切换模式说明:
ARCH_WAIT_APPLY 参数,设置为 0:高性能模式;设置为 1:事务一致模式。
故障手动切换情境下 ARCH_WAIT_APPLY 只能为 0。故障自动切换情境下 ARCH_WAIT_APPLY 可以为 0,也可以为 1。
ARCH_WAIT_APPLY 参数设置的判断依据为业务是否要查询备机最新数据。如果需要,则配置为 1(较大性能衰减);如果不需要,则配置为 0。
四、集群搭建
(一)配置 A 机器
1、初始化实例并备份数据
初始化实例、启动服务和开启归档。上面已执行,这里不再演示。
执行备份
SQL> BACKUP DATABASE BACKUPSET '/dmdata/dmbak/BACKUP_FILE';
修改 dm.ini
SP_SET_PARA_VALUE (2,'PORT_NUM',5237);
SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SP_SET_PARA_VALUE (2,'MAL_INI',1);
SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);
关闭前台实例服务
[dmdba@localhost bin]$ ./DmServiceDMTEST stop
2、修改 dmarch.ini
[dmdba@localhost DMTEST]$ cd /dmdata/data/DMTEST
[dmdba@localhost DMTEST]$ vi dmarch.ini
添加以下内容
[CHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_02 #实时归档目标实例名
3、创建 dmmal.ini
vi dmmal.ini
MAL_CHECK_INTERVAL = 10 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定 MAL 链路断开的时间
MAL_TEMP_PATH = /home/dmdata/dmdbms/data/malpath/ #临时文件目录
MAL_BUF_SIZE = 512 #单个 MAL 缓存大小,单位 MB
MAL_SYS_BUF_SIZE = 2048 #MAL 总大小限制,单位 MB
MAL_COMPRESS_LEVEL = 0 #MAL 消息压缩等级,0 表示不压缩
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 的 INSTANCE_NAME 一致
MAL_HOST = 192.168.1.1 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5336 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.59.222 #实例的对外服务 IP 地址
MAL_INST_PORT = 5237 #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
MAL_DW_PORT = 5436 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 5536 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.1.2
MAL_PORT = 5336
MAL_INST_HOST = 192.168.59.241
MAL_INST_PORT = 5237
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536
4、创建dmwatcher.ini
vi dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME = 20 #远程守护进程故障认定时间
INST_ERROR_TIME = 20 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 45331 #守护系统唯一 OGUID 值
INST_INI = /dmdata/data/DMTEST/dm.ini #dm.ini 文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
5、拷贝备份文件
拷贝备份文件到 B 机器
[dmdba@localhost bin]$ scp -r /dmdata/dmbak/BACKUP_FILE dmdba@192.168.59.241:/dmdata/dmbak/
6、注册服务
[root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_01 -dm_ini /dmdata/data/DMTEST/dm.ini -m mount
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceGRP1_RT_01.service to /usr/lib/systemd/system/DmServiceGRP1_RT_01.service.
创建服务(DmServiceGRP1_RT_01)完成
[root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor_manual.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceMonitor.service to /usr/lib/systemd/system/DmMonitorServiceMonitor.service.
创建服务(DmMonitorServiceMonitor)完成
(二)配置B机器
1、初始化
[dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/dminit PATH=/dmdata/data/ INSTANCE_NAME=GRP1_RT_02 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048
2、恢复数据
恢复数据的时候数据库必须处于关闭的状态下。
ps -ef | grep dmserver
[dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT="RESTORE DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE'"
[dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE'"
[dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' UPDATE DB_MAGIC"
3、替换 dmarch.ini
[dmdba@localhost DMTEST]$ vi /dmdata/data/DMTEST/dmarch.ini
添加以下内容
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_01 #实时归档目标实例名
4、配置 dm.ini、dmmal.ini 和 dmwatcher.ini
vi dm.ini
INSTANCE_NAME = GRP1_RT_02
PORT_NUM = 5236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志重演信息
配置 dmmal.ini 和 dmwatcher.ini
B 机器里 dmmal.ini、dmwatcher.ini 与 A 机器 GRP1_RT_01 的 dmmal.ini、dmwatcher.ini 相同,参照 A 机器 dmmal.ini、dmwatcher.ini 文件进行配置。
[dmdba@localhost DMTEST]$ scp dmmal.ini dmwatcher.ini dmdba@192.168.59.241:/dmdata/data/DMTEST/
5、 注册服务
[root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /dmdata/data/DMTEST/dm.ini -m mount
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceGRP1_RT_02.service to /usr/lib/systemd/system/DmServiceGRP1_RT_02.service.
创建服务(DmServiceGRP1_RT_02)完成
[root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor_manual.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceMonitor.service to /usr/lib/systemd/system/DmMonitorServiceMonitor.service.
创建服务(DmMonitorServiceMonitor)完成
(三)配置确认监视器
1、在第三台机器192.168.59.242 上配置确认监视器,存放确认监视器配置文件,并注册后台自启服务。
创建dmmonitor.ini,并添加以下内容。
[dmdba@localhost bin]$ vi /home/dmdba/dmdbms/bin/dmmonitor.ini
MON_DW_CONFIRM = 1 #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH = ../log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 512 #单个日志大小,单位 MB
MON_LOG_SPACE_LIMIT = 2048 #日志上限,单位 MB
[GRP1]
MON_INST_OGUID = 45331 #组 GRP1 的唯一 OGUID 值
MON_DW_IP = 192.168.59.222:5436 #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP = 192.168.59.241:5436
2、机器A和B也需要设置dmmonitor.ini,示例如下:
[dmdba@localhost ~]$ vi /home/dmdba/dmdbms/bin/dmmonitor.ini
MON_DW_CONFIRM = 0 #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH = ../log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 512 #单个日志大小,单位 MB
MON_LOG_SPACE_LIMIT = 2048 #日志上限,单位 MB
[GRP1]
MON_INST_OGUID = 45331 #组 GRP1 的唯一 OGUID 值
MON_DW_IP = 192.168.1.1:5436 #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP = 192.168.1.2:5436
备注:需要双网卡,如果是单网卡的话,MON_DW_IP需要写三台机器可以联通的IP地址,要不然无法监控到其他两台机器。
3、机器3注册监控服务
[root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini
(四)监视器使用
对于在生产环境中配置有确认监视器时,主备只是发生了切换的情况下,再想将主备切换回去时,只需要启动非确认监视器执行切换命令即可。通过前台方式启动非确认监视器。
[dmdba@localhost bin]$cd /home/dmdba/dmdbms/bin/
[dmdba@localhost bin]$./dmmonitor dmmonitor_manual.ini
注意:这里有个问题,之前的数据库一直是mount状态。需要先停止守护进程,修改几个参数,启动数据库至open状态。
[dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher stop
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@192.168.59.241:5237
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> alter database normal;
SQL> alter database open;
正常后,开启守护进程。
[dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start
通过监控也可以看到数据库的状态。
(五)启动服务及查看信息
1、启动数据库并修改参数
A 机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_01 start
[dmdba@~]$ /home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.59.222:5237
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE PRIMARY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
B 机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_02 start
[dmdba@~]$ /home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.59.241:5237
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE STANDBY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
(六)启动守护进程
A/B机器
[dmdba@localhost bin]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start
[dmdba@localhost bin]$ ./dmwatcher /dmdata/data/DMTEST/dmwatcher.ini
(七)启动监控机器
[dmdba@localhost bin]$ /home/dmdba/dmdbms/bin/DmMonitorServiceMonitor start
(八)集群维护的基础命令
启动
A/B 机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start
停止
A/B机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher stop
A 机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_01 stop
B机器
[dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_02 stop
查看实例的状态
SQL> SELECT * FROM V$INSTANCE;
五、dm_svc.conf 配置
dm_svc.conf 是使用达梦数据库时非常重要的配置文件,它包含了达梦各接口和客户端工具所需要配置的一些参数。通过它可以实现达梦各种集群的读写分离和均衡负载,且必须和接口/客户端工具位于同一台机器上才能生效。初始 dm_svc.conf 文件由达梦安装时自动生成,linux操作系统默认在/etc下。但在某些情况下,所使用的用户没有读取和修改 /etc 目录下文件的权限,这时就需要将 dm_svc.conf 文件放到有权限的目录下,并修改 url 连接串的内容。以 Linux 平台,文件放在 /home/dmdba 目录下为例:
vi dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
dm=(ip:端口)
[dm]
KEYWORDS=(需要排除的关键字)
修改连接串。
jdbc:dm://dm?dmsvcconf=/home/dmdba/dm_svc.conf
主备集群配置示例:
##以#开头的行表示是注释#
##全局配置区
TIME_ZONE=(480)
LANGUAGE=(cn)
DMHA=(192.168.59.222:5237,192.168.59.241:5237)
##服务配置
[DMHA]
SWITCH_TIMES=(3)
SWITCH_INTERVAL=(100)
LOGIN_MODE=(1)
jdbc 连接串:
jdbc:dm://DMHA
单机配置示例:
##以#开头的行表示是注释
##全局配置区
TIME_ZONE=(480)
LANGUAGE=(cn)
DM=(192.168.59.222:5237)
文中的概念来源于网络,如有侵权,请联系我删除。