DM8数据守护集群安装部署详细教程

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: DM8数据守护集群安装部署详细教程

一、基础环境准备

操作系统版本 3台 Centos7.7
数据库版本 dm8_20240408_x86_rh7_64.iso

麒麟和统信也是一样的步骤,只需要下载对应的安装包。虚拟机最好是双网卡,单网卡需要修改配置文件,本文我就是单网卡。还需要关闭防火墙selinux。

  1. [root@localhost ~]# systemctl stop firewalld
  2. [root@localhost ~]# systemctl disable firewalld
  3. [root@localhost ~]# setenforce 0

1、分别在三台机器上安装单机版。

将下载后的iso 后缀的文件上传至三台机器opt目录下,对文件进行挂载:

  1. mount -o loop /opt/dm8_20240408_x86_rh7_64.iso /mnt

1、部署建议不要用root用户,风险太高,新建DM专属账号。

  1. groupadd dinstall -g 2001
  2. useradd  -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
  3. passwd dmdba

2、修改文件打开最大数

在 Linux、Solaris、AIX 和 HP-UNIX 等系统中,操作系统默认会对程序使用资源进行限制。如果不取消对应的限制,则数据库的性能将会受到影响。

  1. vi /etc/security/limits.conf
  2. 在最后需要添加如下配置:
  3. dmdba  soft      nice       0
  4. dmdba  hard      nice       0
  5. dmdba  soft      as         unlimited
  6. dmdba  hard      as         unlimited
  7. dmdba  soft      fsize      unlimited
  8. dmdba  hard      fsize      unlimited
  9. dmdba  soft      nproc      65536
  10. dmdba  hard      nproc      65536
  11. dmdba  soft      nofile     65536
  12. dmdba  hard      nofile     65536
  13. dmdba  soft      core       unlimited
  14. dmdba  hard      core       unlimited
  15. dmdba  soft      data       unlimited
  16. dmdba  hard      data       unlimited

修改配置文件后重启服务器生效。

  1. [root@localhost opt]# reboot

切换到 dmdba 用户,查看是否生效:

  1. [root@localhost ~]# su - dmdba
  2. [dmdba@localhost ~]$ ulimit -a

3、规划安装目录

1.可根据实际需求规划安装目录,本示例使用默认配置 DM 数据库安装在 /home/dmdba 文件夹下。

2.规划创建实例保存目录、归档保存目录、备份保存目录。

  1. [root@localhost ~]# mkdir -p /dmdata/data
  2. [root@localhost ~]# mkdir -p /dmdata/arch
  3. [root@localhost ~]# mkdir -p /dmdata/dmbak
  4. [root@localhost ~]# chown -R dmdba:dinstall /dmdata/data
  5. [root@localhost ~]# chown -R dmdba:dinstall /dmdata/arch
  6. [root@localhost ~]# chown -R dmdba:dinstall /dmdata/dmbak
  7. [root@localhost ~]# chmod -R 755 /dmdata/data
  8. [root@localhost ~]# chmod -R 755 /dmdata/arch
  9. [root@localhost ~]# chmod -R 755 /dmdata/dmbak

4、DM8安装

  1. [root@localhost ~]# su - dmdba
  2. [dmdba@localhost ~]$ cd /mnt/

执行如下命令进行安装。

  1. [dmdba@localhost mnt]$ ./DMInstall.bin -i

  1. [root@localhost ~]# /home/dmdba/dmdbms/script/root/root_installer.sh

5、初始化及配置实例

  1. [dmdba@localhost mnt]$ cd /home/dmdba/dmdbms/bin
  2. [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 下

  1. [root@localhost ~]# cd /home/dmdba/dmdbms/script/root/
  2. [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、开启本地归档

  1. [dmdba@localhost bin]$ cd /home/dmdba/dmdbms/bin
  2. [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@192.168.59.222:5237
  3. SQL> ALTER DATABASE MOUNT;
  4. SQL> ALTER DATABASE ARCHIVELOG;
  5. SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdata/arch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=102400';
  6. SQL> ALTER DATABASE OPEN;

查看归档是否开启

SQL>select arch_mode from v$database;

9、配置 SQL 日志

SQL 日志内容包含系统各会话执行的 SQL 语句、参数信息、错误信息等。SQL 跟踪日志主要用于分析错误和分析性能问题,基于跟踪日志可以对系统运行状态有一个分析。查看是否开启sql日志,如果没有开启的话,需要去开启。

  1. SQL> select * from v$parameter where name like 'SVR_LOG%';

创建 SQL 日志存放目录。

  1. [dmdba@localhost log]$ mkdir -p /home/dmdba/dmdbms/log/logcommit
  2. [dmdba@localhost DMTEST]$ cd /dmdata/data/DMTEST
  3. [dmdba@localhost DMTEST]$ vi sqllog.ini
  4. 添加以下内容
  5. BUF_TOTAL_SIZE = 10240 #SQLs Log Buffer Total Size(K)(1024~1024000)
  6. BUF_SIZE = 1024 #SQLs Log Buffer Size(K)(50~409600)
  7. BUF_KEEP_CNT = 6 #SQLs Log buffer keeped count(1~100)

  8. [SLOG_ALL]
  9. FILE_PATH = /home/dmdba/dmdbms/log/logcommit  #sql 日志生成路径
  10. PART_STOR = 0
  11. SWITCH_MODE = 2
  12. SWITCH_LIMIT = 1024  #每个日志文件 1024M
  13. ASYNC_FLUSH = 1
  14. FILE_NUM = 20  #循环收集 20 个可以根据实际情况做调整
  15. ITEMS = 0
  16. SQL_TRACE_MASK = 1
  17. MIN_EXEC_TIME = 0
  18. USER_MODE = 0
  19. 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直接执行以下命令即可。

  1. SQL>call SP_INIT_JOB_SYS(1);
  2. SQL>call SP_CREATE_JOB('bakall_delall',1,0,'',0,0,'',0,'每天 23:00 全量备份、删除 30 天前的全量备份');
  3. SQL>call SP_JOB_CONFIG_START('bakall_delall');
  4. SQL>call SP_ADD_JOB_STEP('bakall_delall', 'bakall', 6, '01020000/dmdata/dmbak', 3, 1, 0, 0, NULL, 0);
  5. SQL>call SP_ADD_JOB_STEP('bakall_delall', 'delall', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmdata/dmbak'');
  6. SQL>CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-30);', 1, 1, 0, 0, NULL, 0);
  7. 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, '');
  8. SQL>call SP_JOB_CONFIG_COMMIT('bakall_delall');

全量备份 + 增量备份 + 删除(此处不用执行)

此备份策略适用于数据量大于 100G 并且小于 3T 的场景下。注意开启数据库归档,确定备份路径。

—设置 2 分钟后自动进行一次全量备份

  1. call SP_INIT_JOB_SYS(1);
  2. call SP_CREATE_JOB('bakall_one',1,0,'',0,0,'',0,'执行一次全量备份');
  3. call SP_JOB_CONFIG_START('bakall_one');
  4. call SP_ADD_JOB_STEP('bakall_one', 'bakall', 6, '01020000/opt/dmdbms/data/DAMENG/bak/all', 1, 1, 0, 0, NULL, 0);
  5. call SP_ADD_JOB_SCHEDULE('bakall_one', 'bakall_one_time01', 1, 0, 0, 0, 0, NULL, NULL, SYSDATE()+0.0014, NULL, '');
  6. call SP_JOB_CONFIG_COMMIT('bakall_one');

  7. --设置全量备份
  8. call SP_CREATE_JOB('bakall',1,0,'',0,0,'',0,'每月第一个周六23:00全量备份');
  9. call SP_JOB_CONFIG_START('bakall');
  10. call SP_ADD_JOB_STEP('bakall', 'bakall', 6, '01020000/opt/dmdbms/data/DAMENG/bak/all', 1, 1, 0, 0, NULL, 0);
  11. call SP_ADD_JOB_SCHEDULE('bakall', 'bakall_time01', 1, 4, 1, 7, 0, '23:00:00', NULL, '2019-01-01 01:01:01', NULL, '');
  12. call SP_JOB_CONFIG_COMMIT('bakall');

  13. --设置增量备份 + 删除备份
  14. call SP_CREATE_JOB('bakadd_delbak',1,0,'',0,0,'',0,'每天(除周六)23:00增量备份、删除30天前的增量备份、删除40天前的全量备份');
  15. call SP_JOB_CONFIG_START('bakadd_delbak');
  16. 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);
  17. call SP_ADD_JOB_STEP('bakadd_delbak', 'delbak', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/opt/dmdbms/data/DAMENG/bak/add'');
  18. CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-30);
  19. SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/opt/dmdbms/data/DAMENG/bak/all'');
  20. CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-40);', 1, 1, 0, 0, NULL, 0);
  21. 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, '');
  22. 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、初始化实例并备份数据

初始化实例、启动服务和开启归档。上面已执行,这里不再演示。

执行备份

  1. SQL> BACKUP DATABASE BACKUPSET '/dmdata/dmbak/BACKUP_FILE';

修改 dm.ini

  1. SP_SET_PARA_VALUE (2,'PORT_NUM',5237);
  2. SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
  3. SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
  4. SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
  5. SP_SET_PARA_VALUE (2,'MAL_INI',1);
  6. 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

  1. vi dmmal.ini
  2. MAL_CHECK_INTERVAL         = 10  #MAL 链路检测时间间隔
  3. MAL_CONN_FAIL_INTERVAL     = 10  #判定 MAL 链路断开的时间
  4. MAL_TEMP_PATH              = /home/dmdata/dmdbms/data/malpath/  #临时文件目录
  5. MAL_BUF_SIZE               = 512  #单个 MAL 缓存大小,单位 MB
  6. MAL_SYS_BUF_SIZE           = 2048  #MAL 总大小限制,单位 MB
  7. MAL_COMPRESS_LEVEL         = 0  #MAL 消息压缩等级,0 表示不压缩

  8. [MAL_INST1]
  9. MAL_INST_NAME            = GRP1_RT_01  #实例名,和 dm.ini 的 INSTANCE_NAME 一致
  10. MAL_HOST                 = 192.168.1.1  #MAL 系统监听 TCP 连接的 IP 地址
  11. MAL_PORT                 = 5336  #MAL 系统监听 TCP 连接的端口
  12. MAL_INST_HOST            = 192.168.59.222  #实例的对外服务 IP 地址
  13. MAL_INST_PORT            = 5237  #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
  14. MAL_DW_PORT              = 5436  #实例对应的守护进程监听 TCP 连接的端口
  15. MAL_INST_DW_PORT         = 5536  #实例监听守护进程 TCP 连接的端口

  16. [MAL_INST2]
  17. MAL_INST_NAME            = GRP1_RT_02
  18. MAL_HOST                 = 192.168.1.2
  19. MAL_PORT                 = 5336
  20. MAL_INST_HOST            = 192.168.59.241
  21. MAL_INST_PORT            = 5237
  22. MAL_DW_PORT              = 5436
  23. MAL_INST_DW_PORT         = 5536

4、创建dmwatcher.ini

  1. vi dmwatcher.ini
  2. [GRP1]
  3. DW_TYPE                  = GLOBAL  #全局守护类型
  4. DW_MODE                  = AUTO  #MANUAL:故障手切 AUTO:故障自切
  5. DW_ERROR_TIME            = 20  #远程守护进程故障认定时间
  6. INST_ERROR_TIME          = 20  #本地实例故障认定时间
  7. INST_RECOVER_TIME        = 60  #主库守护进程启动恢复的间隔时间
  8. INST_OGUID               = 45331  #守护系统唯一 OGUID 值
  9. INST_INI                 = /dmdata/data/DMTEST/dm.ini  #dm.ini 文件路径
  10. INST_AUTO_RESTART        = 1  #打开实例的自动启动功能
  11. INST_STARTUP_CMD         = /home/dmdba/dmdbms/bin/dmserver  #命令行方式启动
  12. RLOG_SEND_THRESHOLD      = 0  #指定主库发送日志到备库的时间阈值,默认关闭
  13. RLOG_APPLY_THRESHOLD     = 0  #指定备库重演日志的时间阈值,默认关闭

5、拷贝备份文件

拷贝备份文件到 B 机器

  1. [dmdba@localhost bin]$ scp -r /dmdata/dmbak/BACKUP_FILE dmdba@192.168.59.241:/dmdata/dmbak/

6、注册服务

  1. [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
  2. Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceGRP1_RT_01.service to /usr/lib/systemd/system/DmServiceGRP1_RT_01.service.
  3. 创建服务(DmServiceGRP1_RT_01)完成
  4. [root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor_manual.ini
  5. Created symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceMonitor.service to /usr/lib/systemd/system/DmMonitorServiceMonitor.service.
  6. 创建服务(DmMonitorServiceMonitor)完成

(二)配置B机器

1、初始化

  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、恢复数据

恢复数据的时候数据库必须处于关闭的状态下。

  1. ps -ef | grep dmserver
  2. [dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT="RESTORE DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE'"
  3. [dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE'"
  4. [dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/DMTEST/dm.ini' UPDATE DB_MAGIC"

3、替换 dmarch.ini

  1. [dmdba@localhost DMTEST]$ vi /dmdata/data/DMTEST/dmarch.ini
  2. 添加以下内容
  3. [ARCHIVE_REALTIME1]
  4. ARCH_TYPE                = REALTIME  #实时归档类型
  5. ARCH_DEST                = GRP1_RT_01  #实时归档目标实例名

4、配置 dm.ini、dmmal.ini 和 dmwatcher.ini

  1. vi dm.ini
  2. INSTANCE_NAME  = GRP1_RT_02
  3. PORT_NUM = 5236                               #数据库实例监听端口
  4. DW_INACTIVE_INTERVAL = 60              #接收守护进程消息超时时间
  5. ALTER_MODE_STATUS = 0                     #不允许手工方式修改实例模式/状态/OGUID
  6. ENABLE_OFFLINE_TS  = 2                      #不允许备库 OFFLINE 表空间
  7. MAL_INI = 1                                           #打开 MAL 系统
  8. ARCH_INI = 1                                         #打开归档配置
  9. 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 文件进行配置。

  1. [dmdba@localhost DMTEST]$ scp dmmal.ini  dmwatcher.ini dmdba@192.168.59.241:/dmdata/data/DMTEST/

5、 注册服务

  1. [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
  2. Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceGRP1_RT_02.service to /usr/lib/systemd/system/DmServiceGRP1_RT_02.service.
  3. 创建服务(DmServiceGRP1_RT_02)完成
  4. [root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor_manual.ini
  5. Created symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceMonitor.service to /usr/lib/systemd/system/DmMonitorServiceMonitor.service.
  6. 创建服务(DmMonitorServiceMonitor)完成

(三)配置确认监视器

1、在第三台机器192.168.59.242 上配置确认监视器,存放确认监视器配置文件,并注册后台自启服务。

创建dmmonitor.ini,并添加以下内容。

  1. [dmdba@localhost bin]$ vi /home/dmdba/dmdbms/bin/dmmonitor.ini
  2. MON_DW_CONFIRM             = 1  #0:非确认(故障手切) 1:确认(故障自切)
  3. MON_LOG_PATH               = ../log  #监视器日志文件存放路径
  4. MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
  5. MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位 MB
  6. MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位 MB

  7. [GRP1]
  8. MON_INST_OGUID           = 45331  #组 GRP1 的唯一 OGUID 值
  9. MON_DW_IP                = 192.168.59.222:5436  #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
  10. MON_DW_IP                = 192.168.59.241:5436

2、机器A和B也需要设置dmmonitor.ini,示例如下:

  1. [dmdba@localhost ~]$ vi /home/dmdba/dmdbms/bin/dmmonitor.ini
  2. MON_DW_CONFIRM             = 0  #0:非确认(故障手切) 1:确认(故障自切)
  3. MON_LOG_PATH               = ../log  #监视器日志文件存放路径
  4. MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
  5. MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位 MB
  6. MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位 MB

  7. [GRP1]
  8. MON_INST_OGUID           = 45331  #组 GRP1 的唯一 OGUID 值
  9. MON_DW_IP                = 192.168.1.1:5436  #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
  10. MON_DW_IP                = 192.168.1.2:5436

备注:需要双网卡,如果是单网卡的话,MON_DW_IP需要写三台机器可以联通的IP地址,要不然无法监控到其他两台机器。

3、机器3注册监控服务

  1. [root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini

(四)监视器使用

对于在生产环境中配置有确认监视器时,主备只是发生了切换的情况下,再想将主备切换回去时,只需要启动非确认监视器执行切换命令即可。通过前台方式启动非确认监视器。

  1. [dmdba@localhost bin]$cd /home/dmdba/dmdbms/bin/
  2. [dmdba@localhost bin]$./dmmonitor dmmonitor_manual.ini

注意:这里有个问题,之前的数据库一直是mount状态。需要先停止守护进程,修改几个参数,启动数据库至open状态。

  1. [dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher stop
  2. [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@192.168.59.241:5237
  3. SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
  4. SQL> alter database normal;
  5. SQL> alter database open;

正常后,开启守护进程。

  1. [dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start

通过监控也可以看到数据库的状态。

(五)启动服务及查看信息

1、启动数据库并修改参数

A 机器

  1. [dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_01 start
  2. [dmdba@~]$ /home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.59.222:5237
  3. SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
  4. SQL> SP_SET_OGUID(45331);
  5. SQL> ALTER DATABASE PRIMARY;
  6. SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

B 机器

  1. [dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_02 start
  2. [dmdba@~]$ /home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.59.241:5237
  3. SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
  4. SQL> SP_SET_OGUID(45331);
  5. SQL> ALTER DATABASE STANDBY;
  6. SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

(六)启动守护进程

A/B机器

  1. [dmdba@localhost bin]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start
  2. [dmdba@localhost bin]$ ./dmwatcher /dmdata/data/DMTEST/dmwatcher.ini

(七)启动监控机器

  1. [dmdba@localhost bin]$ /home/dmdba/dmdbms/bin/DmMonitorServiceMonitor start

(八)集群维护的基础命令

启动

A/B 机器

  1. [dmdba@~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start

停止
A/B机器

  1. [dmdba@~]$ /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher stop

A 机器

  1. [dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_01 stop

B机器

  1. [dmdba@~]$ /home/dmdba/dmdbms/bin/DmServiceGRP1_RT_02 stop

查看实例的状态

  1. SQL> SELECT * FROM V$INSTANCE;

五、dm_svc.conf 配置

dm_svc.conf 是使用达梦数据库时非常重要的配置文件,它包含了达梦各接口和客户端工具所需要配置的一些参数。通过它可以实现达梦各种集群的读写分离和均衡负载,且必须和接口/客户端工具位于同一台机器上才能生效。初始 dm_svc.conf 文件由达梦安装时自动生成,linux操作系统默认在/etc下。但在某些情况下,所使用的用户没有读取和修改 /etc 目录下文件的权限,这时就需要将 dm_svc.conf 文件放到有权限的目录下,并修改 url 连接串的内容。以 Linux 平台,文件放在 /home/dmdba 目录下为例:

  1. vi dm_svc.conf
  2. TIME_ZONE=(480)
  3. LANGUAGE=(cn)
  4. dm=(ip:端口)
  5. [dm]
  6. KEYWORDS=(需要排除的关键字)

修改连接串。

  1. jdbc:dm://dm?dmsvcconf=/home/dmdba/dm_svc.conf

主备集群配置示例

  1. ##以#开头的行表示是注释#
  2. ##全局配置区
  3. TIME_ZONE=(480)
  4. LANGUAGE=(cn)
  5. DMHA=(192.168.59.222:5237,192.168.59.241:5237)
  6. ##服务配置
  7. [DMHA]
  8. SWITCH_TIMES=(3)
  9. SWITCH_INTERVAL=(100)
  10. LOGIN_MODE=(1)

jdbc 连接串:

  1. jdbc:dm://DMHA

单机配置示例:

  1. ##以#开头的行表示是注释
  2. ##全局配置区
  3. TIME_ZONE=(480)
  4. LANGUAGE=(cn)
  5. DM=(192.168.59.222:5237)


文中的概念来源于网络,如有侵权,请联系我删除。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
Kubernetes Linux Docker
百度搜索:蓝易云【CentOS7系统规划搭建 kubernetes 集群详细教程。】
现在,你已经成功规划和搭建了一个基于CentOS 7的Kubernetes集群。你可以使用kubectl命令管理和部署应用程序到集群中。根据需求,你还可以配置和调优集群的各项参数和插件,以满足特定的应用需求。
194 0
|
6月前
|
监控 Ubuntu 测试技术
Ubuntu 20.04 安装部署 TiDB DM v7.3.0 集群【全网独家】
在Ubuntu上搭建TiDB DM集群的详细步骤分享,作者因工作需求克服了部署难题。测试环境包括3台Ubuntu 20.04主机:1台master和2台worker。首先,确保所有主机安装TiDB单机环境,使用TiUP工具下载并部署。接着,设置主机间免密登录,安装必要组件如sudo、systemd、iproute2和DM组件。配置文件可通过在线或离线方式获取。部署时,根据需求编辑`topology.yaml`,然后使用`tiup dm deploy`命令安装。最后,启动集群并检查节点状态,确认DM集群正常运行。注意,解决内存不足和端口连通性问题以避免错误。
264 3
|
3月前
|
存储 SQL 运维
DM8数据守护集群入门介绍
DM8数据守护集群入门介绍
35 0
|
6月前
|
关系型数据库 MySQL 数据库
史上最详细Docker部署Mysql主从复制,带每一步骤图!!!
史上最详细Docker部署Mysql主从复制,带每一步骤图!!!
617 2
|
6月前
|
存储 数据可视化 数据库
InfluxData【付诸实践 01】Windows环境部署Telegraf+Influxdb+Grafana安装及使用配置(含百度云盘资源+demo脚本)
InfluxData【付诸实践 01】Windows环境部署Telegraf+Influxdb+Grafana安装及使用配置(含百度云盘资源+demo脚本)
194 0
|
6月前
|
安全 数据可视化 数据安全/隐私保护
猿创征文|docker本地私人仓库快速搭建后的安全优化(用户鉴权和简易的web界面开启)
猿创征文|docker本地私人仓库快速搭建后的安全优化(用户鉴权和简易的web界面开启)
110 0
|
运维 监控
【运维知识进阶篇】Zabbix5.0稳定版详解10(Zabbix自动注册+Ansible自动部署,实现一条命令监控任意主机)
【运维知识进阶篇】Zabbix5.0稳定版详解10(Zabbix自动注册+Ansible自动部署,实现一条命令监控任意主机)
163 0
|
Linux 虚拟化 Docker
如何查看Linux服务器架构是否可以运行docker?底层原理是什么?
如何查看Linux服务器架构是否可以运行docker?底层原理是什么?
536 0
|
Kubernetes Linux 网络安全
『Kubernetes』Linux安装K8S集群过程笔记
📣读完这篇文章里你能收获到 - K8S安装全过程 - 博主自己实操笔记带你跳过所有坑
682 0
『Kubernetes』Linux安装K8S集群过程笔记
|
机器学习/深度学习 缓存 安全