• 数据守护集群(一主一从)


    配置数据守护集群(一主一从)

    在主库上脱机备份

    ./dmrman CTLSTMT="backup database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' full to backup20201126 backupset '/home/dmdba/dmdbms/data/backup20201126'"

     

    发送给备库

    [dmdba@DaMeng bin]$ scp -r /home/dmdba/dmdbms/data/backup20201126/ dmbda@192.168.138.130:/home/dmdba/dmdbms/data/

    在备库上脱机还原恢复

    还原:

    ./dmrman ctlstmt="restore database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/data/backup20201126'"

    恢复:

    ./dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/data/backup20201126'"

    更新:

    ./dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' update db_magic"

     

    配置主库DMSERVER

    配置dm.ini

    这里没有涉及到具体的业务,所以不进行调优具体参数如下

    INSTANCE_NAME=DMSERVER

    COMPATIBLE_MODE=2

    ARCH_INI=1

    MAL_INI=1

    ALTER_MODE_STATUS= 0

    ENABLE_OFFLINE_TS = 2

     

    配置dmmal.ini

    MAL_CHECK_INTERVAL = 5

    MAL_CONN_FAIL_INTERVAL = 5

    [MAL_INST1]

    MAL_INST_NAME = DMSERVER

    MAL_HOST = 192.168.138.199

    MAL_PORT = 61141

    MAL_INST_HOST = 192.168.138.199

    MAL_INST_PORT = 5236

    MAL_DW_PORT = 52141

    MAL_INST_DW_PORT = 33141

    [MAL_INST2]

    MAL_INST_NAME = DMSERVER01

    MAL_HOST = 192.168.138.130

    MAL_PORT = 61142

    MAL_INST_HOST = 192.168.138.130

    MAL_INST_PORT = 5236

    MAL_DW_PORT = 52142

    MAL_INST_DW_PORT = 33142

     

    配置dmarch.ini

    [ARCHIVE_TIMELY1]

    ARCH_TYPE = REALTIME

    ARCH_DEST = DMSERVER01 #写出了本机之外的实例名

    [ARCHIVE_LOCAL1]

    ARCH_TYPE = LOCAL

    ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch # 本地的存档地址

    ARCH_FILE_SIZE = 512

    ARCH_SPACE_LIMIT = 0

    配置dmwatcher.ini

    [GRP1]

    DW_TYPE = GLOBAL

    DW_MODE = AUTO

    DW_ERROR_TIME = 10

    INST_RECOVER_TIME = 60

    INST_ERROR_TIME = 10

    INST_OGUID = 453331

    INST_INI = /home/dmdba/dmdbms/data/DAMENG/dm.ini

    INST_AUTO_RESTART = 1

    INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver

    RLOG_SEND_THRESHOLD = 0

    RLOG_APPLY_THRESHOLD = 0

     

     

    发送配置给备库

     

    配置备库参数

    dm.ini

    如果路径一样修改实例名就可以了,不一样还要改实例名

    dmarch.ini

    把将ARCH_DEST参数修改为除自己外的库,这里只有两个库,所以改成主库的名字就行了

     

    配置OGUID

    主库:

    #以mount模式开启主库

    ./dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount

    #登录disql,修改OGUID

    sp_set_oguid(453331);

    #修改数据库模式

    alter database primary;

    备库:

    #以mount模式开启备库

    ./dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount

    #登录disql,修改OGUID

    sp_set_oguid(453331);

    #修改数据库模式

    alter database standby;

    注册服务

    在root账户下对主备进行dmwatcher服务注册

    ./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini -p DM

     

     

    配置监听器

    路径配在备库的/home/dmdba/dmdbms/data/dmmonitor.ini

    MON_DW_Confirm = 1 #0是非确认监视器(不可以自动切换主备)1相反

    MON_LOG_PATH = /home/dmdba/dmdbms/log

    MON_LOG_INTERVAL = 60

    MON_LOG_FILE_SIZE = 32

    MON_LOG_SPACE_LIMIT = 0

    [GRP1]

    MON_INST_OGUID = 453331

    MON_DW_IP = 192.168.138.199:52141

    MON_DW_IP = 192.168.138.130:52142

     

    注意MON_DW_IP最后配的不是实例的端口,而是前面dmmal.ini配置的MAL_DW_PORT端口!!此前就是配错了而导致反复报错。

     

    启动主备机的守护进程

    主机:

    ./dmwatcher /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini

     

    备机:

     

    启动监视器

    [dmbda@Dameng bin]$ ./dmmonitor /home/dmdba/dmdbms/data/dmmonitor.ini

     

     

    测试

    1、建表和插入数据备机是否能及时同步,并可查询到数据

    主库建表并插入数据:

    查看备库:

    2、制造主机故障,测试备机可接管并持续提供服务。

    主机关机,备机成为主机,尝试添加数据

    可以插入

    3、恢复故障主机,将故障主机加入集群。

    恢复主机:

     

    4、手动切换主备集群,恢复原主备集群的位置。

     

    switchover GRP1.DMSERVER

    切换成功

  • 相关阅读:
    spring boot启动原理
    Minor GC ,Full GC 触发条件是什么?
    Redis分布式锁的正确实现方式Jedis客户端实现方式总结
    JVM命令总结
    InnoDB中B+树总结
    ThreadPoolExecutor 优先级的线程池
    锁的概述
    Deadlock Troubleshooting, Part 1
    Deadlock Troubleshooting, Part 3
    大型网站数据库优化和故障跟踪与排查(下篇)
  • 原文地址:https://www.cnblogs.com/hong-yf/p/14762897.html
Copyright © 2020-2023  润新知