• 1实时备机+1异步备机


    一、环境准备    1

    1、部署规划:    1

    2、系统检查    2

    3、初始化数据库实例    2

    4、脱机备份、还原恢复    2

    二、配置主库    3

    1、配置dm.ini    3

    2、配置dmmal.ini    3

    3、配置dmarch.ini    4

    4、配置dmtimer.ini    4

    5、配置dmwatcher.ini    5

    6、启动主库    5

    7、配置OGUID    5

    三、配置实时备机    6

    1、dm.ini    6

    2、配置dmmal.ini    6

    3、配置dmarch.ini    7

    4、配置dmtimer.ini    7

    5、dmwatcher.ini    8

    6、启动备库    8

    7、设置OGUID    8

    四、配置异步备机    9

    1、dm.ini    9

    2、dmmal.ini    9

    3、dmarch.ini    10

    4、watcher.ini    10

    5、启动异步备库    10

    6、设置OGUID    10

    五、配置监视器    11

    六、启动集群    11

    七、测试    12

    一、环境准备

    1、部署规划:

    (1)实例规划:

    实例名

    端口号

    主机地址

    角色

    用户

    DM01

    5236

    192.168.138.130

    主库

    dmdba

    dinstall

    DM02

    5236

    192.168.138.198

    实时备库

    dmdba

    dinstall

    DM03

    5236

    192.168.138.199

    异步备库

    dmdba

    dinstall

     

    2、系统检查

    getconf LONG_BIT #查看操作系统位数

    cat /etc/issue #查看操作系统信息

    cat /proc/cpuinfo | grep 'model name' |uniq #查看cpu信息

    free -h #查看内存信息

    df -h #查看磁盘信息

    输入命令ulimit –a检查openfile参数是否为65536或者无限制

    若open file参数不是65536或者无限制则用以下方式进行修改:

    输入命令进入limits.conf文件编辑界面

    vi /etc/security/limits.conf

    进入到limits.conf文件后,键盘按"i"开始插入数据,在文件内容末尾增加内容

    dmdba soft nofile 65536

    dmdba hard nofile 65536

    添加完毕之后先按键盘"esc"键,再输入:wq,回车后退出文件编辑界面

    临时生效

    ulimit -n 65536

    输入命令查看参数修改是否成功

    ulimit –a

     

    3、初始化数据库实例

    cd /home/dmdba/dmdbms/bin

    ./dminit PATH=/home/dmdba/dmdbms/data PAGE_SIZE=16 CASE_SENSITIVE=1

    注意:初始化以后一定要分别开停库一次。

     

     

     

     

     

    4、脱机备份、还原恢复

    注意:进行前一定要脱机

    (1)在主库上运行dmrman命令:

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

    (2)将备份发送到备库DM02/DM03的data目录下

    scp -r /home/dmdba/dmdbms/data/backup20201204/ dmdba@192.168.138.198:/home/dmdba/dmdbms/data

     

    scp -r /home/dmdba/dmdbms/data/backup20201204/ dmdba@192.168.138.199:/home/dmdba/dmdbms/data

    (3)在备库上使用dmrman命令还原更新

    还原:

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

    恢复:

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

    更新db_magic:

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

     

    二、配置主库

    1、配置dm.ini

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

    INSTANCE_NAME=DM01

    COMPATIBLE_MODE=2

    ARCH_INI=1

    MAL_INI=1

    ALTER_MODE_STATUS= 0

    ENABLE_OFFLINE_TS = 2

    #配置有异步归档时,打开定时器,定时同步归档到异备库

    TIMER_INI= 1

    2、配置dmmal.ini

    MAL_CHECK_INTERVAL = 5

    MAL_CONN_FAIL_INTERVAL = 5

    [MAL_INST1]

    MAL_INST_NAME = DM01

    MAL_HOST = 192.168.138.130

    MAL_PORT = 61141

    MAL_INST_HOST = 192.168.138.130

    MAL_INST_PORT = 5236

    MAL_DW_PORT = 52141

    MAL_INST_DW_PORT = 33141

    [MAL_INST2]

    MAL_INST_NAME = DM02

    MAL_HOST = 192.168.138.198

    MAL_PORT = 61142

    MAL_INST_HOST = 192.168.138.198

    MAL_INST_PORT = 5236

    MAL_DW_PORT = 52142

    MAL_INST_DW_PORT = 33142

    [MAL_INST3]

    MAL_INST_NAME = DM03 #实例名,和dm.ini中的INSTANCE_NAME一致

    MAL_HOST = 192.168.138.199#MAL系统监听TCP连接的IP地址

    MAL_PORT = 61143#MAL系统监听TCP连接的端口

    MAL_INST_HOST = 192.168.138.199#实例的对外服务IP地址

    MAL_INST_PORT=5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致 MAL_DW_PORT= 52143 #实例对应的守护进程监听TCP连接的端口

    MAL_INST_DW_PORT = 33143 #实例监听守护进程TCP连接的端口

    3、配置dmarch.ini

    在原来主库的配置dmarch.ini的基础上,增加异步归档的配置项。

    [ARCHIVE_TIMELY1]

    ARCH_TYPE = REALTIME

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

    [ARCHIVE_LOCAL1]

    ARCH_TYPE = LOCAL

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

    ARCH_FILE_SIZE = 512

    ARCH_SPACE_LIMIT = 0

    [ARCHIVE_ASYNC]

    ARCH_TYPE= ASYNC#异步归档类型

    ARCH_DEST= DM03 #异步归档目标实例名

    ARCH_TIMER_NAME = RT_TIMER #定时器名称,和dmtimer.ini中的名称一致

     

    4、配置dmtimer.ini

    配置dmtimer.ini,用于定时触发实例发送归档日志到异步备库。

    下面示例中定时器配置为每天00:00:00触发主库发送归档日志到异步备库,可以根据实际情况再做调整。

    [RT_TIMER] #和dmarch.ini中的ARCH_TIMER_NAME一致

    TYPE = 2

    FREQ_MONTH_WEEK_INTERVAL = 1

    FREQ_SUB_INTERVAL = 0

    FREQ_MINUTE_INTERVAL = 0

    START_TIME = 00:00:00

    END_TIME = 00:00:00

    DURING_START_DATE = 2020-12-05 00:00:01

    DURING_END_DATE = 9999-12-31 23:59:59

    NO_END_DATE_FLAG = 1

    DESCRIBE = RT TIMER

    IS_VALID = 1

     

    5、配置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

    6、启动主库

    一定要以Mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open数据库。

     

     

    7、配置OGUID

    #登录disql,修改OGUID

    sp_set_oguid(453331);

    #修改数据库模式

    alter database primary;

     

    三、配置实时备机

    1、dm.ini

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

    INSTANCE_NAME=DM02

    COMPATIBLE_MODE=2

    ARCH_INI=1

    MAL_INI=1

    ALTER_MODE_STATUS= 0

    ENABLE_OFFLINE_TS = 2

    #配置有异步归档时,打开定时器,定时同步归档到异备库

    TIMER_INI= 1

    2、配置dmmal.ini

    和主库的一样

    MAL_CHECK_INTERVAL = 5

    MAL_CONN_FAIL_INTERVAL = 5

    [MAL_INST1]

    MAL_INST_NAME = DM01

    MAL_HOST = 192.168.138.130

    MAL_PORT = 61141

    MAL_INST_HOST = 192.168.138.130

    MAL_INST_PORT = 5236

    MAL_DW_PORT = 52141

    MAL_INST_DW_PORT = 33141

    [MAL_INST2]

    MAL_INST_NAME = DM02

    MAL_HOST = 192.168.138.198

    MAL_PORT = 61142

    MAL_INST_HOST = 192.168.138.198

    MAL_INST_PORT = 5236

    MAL_DW_PORT = 52142

    MAL_INST_DW_PORT = 33142

    [MAL_INST3]

    MAL_INST_NAME = DM03 #实例名,和dm.ini中的INSTANCE_NAME一致

    MAL_HOST = 192.168.138.199#MAL系统监听TCP连接的IP地址

    MAL_PORT = 61143#MAL系统监听TCP连接的端口

    MAL_INST_HOST = 192.168.138.199#实例的对外服务IP地址

    MAL_INST_PORT=5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致 MAL_DW_PORT= 52143 #实例对应的守护进程监听TCP连接的端口

    MAL_INST_DW_PORT = 33143 #实例监听守护进程TCP连接的端口

    3、配置dmarch.ini

    在原来备库的配置dmarch.ini的基础上,增加异步归档的配置项。

    [ARCHIVE_TIMELY1]

    ARCH_TYPE = REALTIME

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

    [ARCHIVE_LOCAL1]

    ARCH_TYPE = LOCAL

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

    ARCH_FILE_SIZE = 512

    ARCH_SPACE_LIMIT = 0

    [ARCHIVE_ASYNC]

    ARCH_TYPE= ASYNC#异步归档类型

    ARCH_DEST= DM03 #异步归档目标实例名

    ARCH_TIMER_NAME = RT_TIMER #定时器名称,和dmtimer.ini中的名称一致

     

    4、配置dmtimer.ini

    配置dmtimer.ini,用于备库切换为主库后,定时触发实例发送归档日志到异步备库。下面示例中定时器配置为每天00:00:00触发主库发送归档日志到异步备库,可以根据实际情况再做调整。

    [RT_TIMER] #和dmarch.ini中的ARCH_TIMER_NAME一致

    TYPE = 2

    FREQ_MONTH_WEEK_INTERVAL = 1

    FREQ_SUB_INTERVAL = 0

    FREQ_MINUTE_INTERVAL = 0

    START_TIME = 00:00:00

    END_TIME = 00:00:00

    DURING_START_DATE = 2020-12-05 00:00:01

    DURING_END_DATE = 9999-12-31 23:59:59

    NO_END_DATE_FLAG = 1

    DESCRIBE = RT TIMER

    IS_VALID = 1

    5、dmwatcher.ini

    [GRP1]

    DW_TYPE = GLOBAL

    DW_MODE = AUTO

    DW_ERROR_TIME = 10

    INST_RECOVER_TIME = 60

    INST_ERROR_TIME = 10

    INST_OGUID = 45331

    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

     

    6、启动备库

    一定要以Mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open数据库。

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

     

    7、设置OGUID

    #以mount模式开启备库

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

    #登录disql,修改OGUID

    sp_set_oguid(453331);

    alter database standby;

     

    四、配置异步备机

    1、dm.ini

    INSTANCE_NAME=DM03

    PORT_NUM= 5236 #数据库实例监听端口

    DW_INACTIVE_INTERVAL= 60 #接收守护进程消息超时时间

    ALTER_MODE_STATUS= 0#不允许手工方式修改实例模式/状态/

    OGUIDENABLE_OFFLINE_TS= 2#不允许备库OFFLINE表空间

    MAL_INI= 1#打开MAL系统

    ARCH_INI= 1#打开归档配置

    RLOG_SEND_APPLY_MON= 64 #统计最近64次的日志重演信息

     

    2、dmmal.ini

    所有主备库一样

    MAL_CHECK_INTERVAL = 5

    MAL_CONN_FAIL_INTERVAL = 5

    [MAL_INST1]

    MAL_INST_NAME = DM01

    MAL_HOST = 192.168.138.130

    MAL_PORT = 61141

    MAL_INST_HOST = 192.168.138.130

    MAL_INST_PORT = 5236

    MAL_DW_PORT = 52141

    MAL_INST_DW_PORT = 33141

    [MAL_INST2]

    MAL_INST_NAME = DM02

    MAL_HOST = 192.168.138.198

    MAL_PORT = 61142

    MAL_INST_HOST = 192.168.138.198

    MAL_INST_PORT = 5236

    MAL_DW_PORT = 52142

    MAL_INST_DW_PORT = 33142

    [MAL_INST3]

    MAL_INST_NAME = DM03 #实例名,和dm.ini中的INSTANCE_NAME一致

    MAL_HOST = 192.168.138.199#MAL系统监听TCP连接的IP地址

    MAL_PORT = 61143#MAL系统监听TCP连接的端口

    MAL_INST_HOST = 192.168.138.199#实例的对外服务IP地址

    MAL_INST_PORT=5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致 MAL_DW_PORT= 52143 #实例对应的守护进程监听TCP连接的端口

    MAL_INST_DW_PORT = 33143 #实例监听守护进程TCP连接的端口

    3、dmarch.ini

    本地守护类型的备库只需要配置本地归档。

    [ARCHIVE_LOCAL1]

    ARCH_TYPE= LOCAL#本地归档类型

    ARCH_DEST= /home/dmdba/dmdbms/data/DAMENG/arch#本地归档文件路径

    ARCH_FILE_SIZE= 128#单位Mb,本地单个归档文件最大值

    ARCH_SPACE_LIMIT= 0 #单位Mb,0表示无限制,范围1024~4294967294M

     

    4、watcher.ini

    [GRP1]

    DW_TYPE = LOCAL #本地守护类型

    DW_MODE = MANUAL#故障手动切换模式

    DW_ERROR_TIME = 10#远程守护进程故障认定时间

    INST_ERROR_TIME = 10#本地实例故障认定时间

    INST_OGUID = 453331#守护系统唯一OGUID值

    INST_INI = /home/dmdba/dmdbms/data/DAMENG/dm.ini #dm.ini配置文件路径

    INST_AUTO_RESTART = 1#打开实例的自动启动功能

    INST_STARTUP_CMD =/home/dmdba/dmdbms/bin/dmserver #命令行方式启动

    5、启动异步备库

    以Mount方式启动备库

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

     

    6、设置OGUID

    SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

    sp_set_oguid(453331);

    修改数据库模式

    ALTER DATABASE STANDBY;

    SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

    五、配置监视器

    在实时备机上

    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.198:52142

    MON_DW_IP = 192.168.138.130:52141

    #新增到异步备库DM03守护进程的连接信息

    MON_DW_IP = 192.168.138.199:52143

     

    六、启动集群

    主备库的守护进程

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

    监视器启动:

    ./dmmonitor /home/dmdba/dmdbms/data/dmmonitor.ini

     

     

     

     

    可以看到三个数据库都是open状态。

    七、测试

    在主库建表并插入数据

    create table users(

        uname varchar(10),

        age int

        );

        

    insert into users values('hyf',23);

    commit;

    在实时备机上查询

    可以查询出来。

     

     

     

     

     

    将主库关机

    可以看到,备库接管了主库,发生了主备切换,备库在切换为主库时在设定的时间向异步备库同步数据。

  • 相关阅读:
    安卓手机数据库和自动寻路插件
    快速找图找字插件
    大龙快速找图,找字插件
    C星【多线程】寻路插件最新更新2019-8-17
    大龙数据库插件,通用所有数据库,支持任何语言调用
    开源一个自己造的轮子:基于图的任务流引擎GraphScheduleEngine
    Java中使用CountDownLatch进行多线程同步
    TensorFlow实验环境搭建
    Java中Semaphore(信号量)的使用
    CNN在中文文本分类的应用
  • 原文地址:https://www.cnblogs.com/hong-yf/p/14762883.html
Copyright © 2020-2023  润新知