达梦8集群部署之DW集群(主备手切)

1 安装前准备

1.1 集群规划

1.2 集群架构

                             

1.3 硬件环境建议

心跳网络方面:①集群间的心跳网络要走数据,最好走两个交换机,来实现冗余和负载均衡。②需要把服务器多个心跳网卡绑定为一个逻辑网卡来使用(比如bond方式)。③交换机速度建议至少为千兆。
存储方面:①需要在每台机器上挂在独立存储,其中主机所在机器挂载的存储建议大一些。②需要格式化好,且所有机器挂载路径保持一致。③在空间不够用时,要求支持在挂载目录上直接进行扩充。④文件系统建议使用ext4。

1.4 硬件环境环境验证

心跳网络方面:①关闭其中一台交换机或者模拟其中一条线路故障,是否能做到网络方面的冗余。②测试心跳网络的稳定性,会不会出现断连或者丢包等情况。
存储方面:反复重启集群机器,检查存储是否会出现只读、脱挂、挂载路径是否会发生改变等情况。
 

2 配置A机器

2.1 实例、备份数据

--初始化实例

[dmdba@~]# /dmdba/dmdbms/bin/dminit PATH=/data/dmdata/ INSTANCE_NAME=DW1_01 PAGE_SIZE=32 LOG_SIZE=2048

--启动服务

[dmdba@~]# /dmdba/dmdbms/bin/dmserver /data/dmdata/DAMENG/dm.ini

--开启归档

[dmdba@~]# /dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@10.246.1.20:5236
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/data/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
SQL> ALTER DATABASE OPEN;

--备份数据

SQL> BACKUP DATABASE BACKUPSET '/data/dmdata/DAMENG/bak/BACKUP_FILE';

--修改dm.ini

SQL> SP_SET_PARA_VALUE (2,'PORT_NUM',5236);
SQL> SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SQL> SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SQL> SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SQL> SP_SET_PARA_VALUE (2,'MAL_INI',1);
SQL> SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);

关闭前台实例服务:exit

2.2 替换dmarch.ini

[dmdba@~]# vi /data/dmdata/DAMENG/dmarch.ini
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL  #本地归档类型
  ARCH_DEST                = /data/dmarch/  #本地归档存放路径
  ARCH_FILE_SIZE           = 1024  #单个归档大小,单位MB
  ARCH_SPACE_LIMIT         = 51200  #归档上限,单位MB
[ARCHIVE_REALTIME]
  ARCH_TYPE                = REALTIME  #实时归档类型
  ARCH_DEST                = DW1_01B  #实时归档目标实例名

2.3 创建dmmal.ini

[dmdba@~]# vi /data/dmdata/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL         = 10  #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL     = 10  #判定MAL链路断开的时间
MAL_TEMP_PATH              = /data/dmdata/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            = DW1_01  #实例名,和 dm.ini的INSTANCE_NAME一致
  MAL_HOST                 = 10.246.1.20  #MAL系统监听TCP连接的IP地址
  MAL_PORT                 = 5336  #MAL系统监听TCP连接的端口
  MAL_INST_HOST            = 10.246.1.20  #实例的对外服务IP地址
  MAL_INST_PORT            = 5236  #实例对外服务端口,和dm.ini的PORT_NUM一致
  MAL_DW_PORT              = 5436  #实例对应的守护进程监听TCP连接的端口
  MAL_INST_DW_PORT         = 5536  #实例监听守护进程TCP连接的端口
[MAL_INST2]
  MAL_INST_NAME            = DW1_01B
  MAL_HOST                 = 10.246.1.236
  MAL_PORT                 = 5336
  MAL_INST_HOST            = 10.246.1.236
  MAL_INST_PORT            = 5236
  MAL_DW_PORT              = 5436
  MAL_INST_DW_PORT         = 5536

2.4 创建dmwatcher.ini

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

2.5 拷贝实例

[dmdba@~]# scp -r /data/dmdata/DAMENG dmdba@10.246.1.236:/data/dmdata/

2.6 注册服务

[root@~]# /dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DW1_01 -dm_ini /data/dmdata/DAMENG/dm.ini -m mount
[root@~]# /dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini

备注:删除自启

[root@~]# /opt/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceDW1_01
[root@~]# /opt/dmdbms/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher

3 配置B机器

3.1 修改dm.ini

[dmdba@~]# vi /data/dmdata/DAMENG/dm.ini
INSTANCE_NAME              = DW1_01B  #数据库实例名

3.2 替换dmarch.ini

[dmdba@~]# vi /data/dmdata/DAMENG/dmarch.ini
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL  #本地归档类型
  ARCH_DEST                = /data/dmarch/  #本地归档存放路径
  ARCH_FILE_SIZE           = 1024  #单个归档大小,单位MB
  ARCH_SPACE_LIMIT         = 51200  #归档上限,单位MB
[ARCHIVE_REALTIME]
  ARCH_TYPE                = REALTIME  #实时归档类型
  ARCH_DEST                = DW1_01  #实时归档目标实例名

3.3 相同配置项

与A机器DW1_01的dmmal.ini、dmwatcher.ini相同

3.4 注册服务

[root@~]# /dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DW1_01B -dm_ini /data/dmdata/DAMENG/dm.ini -m mount
[root@~]# /dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini

备注:删除自启

[root@~]# /dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceDW1_01B
[root@~]# /dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmWatcherServiceWatcher

3.5 恢复数据

[dmdba@~]# /dmdba/dmdbms/bin/dmrman CTLSTMT="RESTORE DATABASE '/data/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/data/dmdata/DAMENG/bak/BACKUP_FILE'"
[dmdba@~]# /dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/data/dmdata/DAMENG/bak/BACKUP_FILE'"
[dmdba@~]# /dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC"

4 配置监视器

1、在各节点数据库的bin目录中 存放非确认监视器配置文件。
2、在确认监视器机器上(非集群节点) 注册确认监视器自启服务。

4.1 创建dmmonitor.ini

[dmdba@~]# vi /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

[GDW1]
  MON_INST_OGUID           = 45331  #组GDW1的唯一OGUID 值
  MON_DW_IP                = 10.246.1.20:5436  #IP对应MAL_HOST,PORT对应MAL_DW_PORT
  MON_DW_IP                = 10.246.1.236:5436

4.2 注册服务(选做)

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

备注:删除自启

[root@~]# /opt/dmdbms/script/root/dm_service_uninstaller.sh -n DmMonitorServiceMonitor

4.3 监视器使用

命令含义
list查看守护进程的配置信息
show global info查看所有实例组的信息
tip查看系统当前运行状态
login登录监视器
logout退出登录
choose switchover GDW1主机正常:查看可切换为主机的实例列表
switchover GDW1.实例名主机正常:使用指定组的指定实例,切换为主机
choose takeover GDW1主机故障:查看可切换为主机的实例列表
takeover GDW1.实例名主机故障:使用指定组的指定实例,切换为主机
choose takeover force GDW1强制切换:查看可切换为主机的实例列表
takeover force GDW1.实例名强制切换:使用指定组的指定实例,切换为主机

主机故障后,在备机执行SELECT SF_DW_CHECK_TAKEOVER();【1:可接管  0:不可接管】

5 启动服务及查看信息

5.1 启动数据库并修改参数

A机器
[dmdba@~]# /dmdba/dmdbms/bin/DmServiceDW1_01 start
[dmdba@~]# /dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@10.246.1.20:5236
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE PRIMARY;
B机器
[dmdba@~]# /dmdba/dmdbms/bin/DmServiceDW1_01B start
[dmdba@~]# /dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@10.246.1.236:5236
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE STANDBY;

5.2 启动守护进程

A/B机器:[dmdba@~]# /dmdba/dmdbms/bin/DmWatcherServiceWatcher start

5.3 启动监视器

[dmdba@~]# /dmdba/dmdbms/bin/DmMonitorServiceMonitor start
前台启动:[dmdba@~]# /dmdba/dmdbms/bin/dmmonitor /dmdba/dmdbms/bin/dmmonitor.ini

5.4 启停集群

启动:A/B机器守护进程
A/B机器:[dmdba@~]# /dmdba/dmdbms/bin/DmWatcherServiceWatcher start

停止:A/B机器守护进程→A机器DW1_01主库→B机器DW1_01B备库
A/B机器:[dmdba@~]# /dmdba/dmdbms/bin/DmWatcherServiceWatcher stop
A机器:[dmdba@~]# /dmdba/dmdbms/bin/DmServiceDW1_01 stop
B机器:[dmdba@~]# /dmdba/dmdbms/bin/DmServiceDW1_01B stop
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值