zoukankan      html  css  js  c++  java
  • 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;

    在实时备机上查询

    可以查询出来。

     

     

     

     

     

    将主库关机

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

  • 相关阅读:
    poj 3068 Bridge Across Islands
    XidianOJ 1086 Flappy v8
    XidianOJ 1036 分配宝藏
    XidianOJ 1090 爬树的V8
    XidianOJ 1088 AK后的V8
    XidianOJ 1062 Black King Bar
    XidianOJ 1091 看Dota视频的V8
    XidianOJ 1098 突击数论前的xry111
    XidianOJ 1019 自然数的秘密
    XidianOJ 1109 Too Naive
  • 原文地址:https://www.cnblogs.com/hong-yf/p/14762883.html
Copyright © 2011-2022 走看看