注册
搭建部署两节点DSC+1实时备机+1异步备机
培训园地/ 文章详情 /

搭建部署两节点DSC+1实时备机+1异步备机

汤姆猫 2024/01/30 760 0 0

1 搭建前准备

准备好两节点DSC、两个装好DM8的虚拟机,后续的搭建过程先搭建DSC+实时备机,在验证完成后再添加异步备机,地址和端口分配如下:

机器名	对外地址	                实例名
DSC1	192.168.237.154/164	DSC1
DSC2	192.168.237.155/165	DSC2
DMDW	192.168.237.156/166	GRP1_RT_01
DMADW	192.168.237.157/167	GRP1_LOCAL_01
实例名	端口类型  	端口	端口类型	        端口
ASM1	DCR_EP_PORT	9349	
ASM2	DCR_EP_PORT	9351	
CSS1	DCR_EP_PORT	9341	
CSS2	DCR_EP_PORT	9343	
DSC1	DCR_EP_PORT	5700	DCR_CHECK_PORT	9741
DSC2	DCR_EP_PORT	5700	DCR_CHECK_PORT	9742
GRP1_RT_01	DCR_EP_PORT	9344	
GRP1_LOCAL_01	DCR_EP_PORT	32143	
ASM1	MAL_PORT	7236	
ASM2	MAL_PORT	7237	
DSC0	MAL_PORT	9255	
DSC1	MAL_PORT	9266	
GRP1_RT_01	MAL_PORT	8738	
GRP1_LOCAL_01	MAL_PORT	61143	
DSC0	MAL_INST_DW_PORT	4567	MAL_DW_PORT	3567
DSC1	MAL_INST_DW_PORT	4568	MAL_DW_PORT	3568
GRP1_RT_01	MAL_INST_DW_PORT	4569	MAL_DW_PORT	3569
GRP1_LOCAL_01	MAL_INST_DW_PORT	33143	MAL_DW_PORT	52143

2 搭建两节点DSC+1实时备机

2.1 配置DSC主库环境

配置dmarch.ini:
DSC1:

ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/DSC/DSC01/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH =  +DMDATA/DSC/DSC02/arch

DSC2:

ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/DSC/DSC02/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = +DMDATA/DSC/DSC01/arch

修改dm.ini(DSC1和DSC2一起):

ARCH_INI = 1

2.2 数据准备

2.2.1 主库备份

到dm/bin目录下:

./dmrman dcr_ini=/dm8/config/dmdcr.ini
BACKUP DATABASE '/dm8/config/dsc1/dm.ini' FULL BACKUPSET '/dm8/config/dsc1/bak/db_full_bak_for_DSC';

2.2.2 备库还原

将主库的备份传输到备机上,然后到dm/bin目录下:

./dminit path=/dm/data/EP01/
./dmrman 
RESTORE DATABASE '/dm8/data/EP01/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/EP01/DAMENG/bak/db_full_bak_for_DSC';
RECOVER DATABASE '/dm8/data/EP01/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/EP01/DAMENG/bak/db_full_bak_for_DSC';
RECOVER DATABASE '/dm8/data/EP01/DAMENG/dm.ini' UPDATE DB_MAGIC;

2.3 配置dm.ini

DSC1:

INSTANCE_NAME = DSC1
PORT_NUM = 5700  ##数据库实例监听端口
ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间
MAL_INI = 1 ##打开MAL系统
ARCH_INI = 1 ##打开归档配置

DSC2:

INSTANCE_NAME = DSC2
PORT_NUM = 5700
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1

DMDW:

INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 9344
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1

2.4 配置dmmal.ini(三个实例的配置都一致)

[mal_inst0]
mal_inst_name  = DSC1
mal_host       = 192.168.237.164
mal_port       = 9255
MAL_INST_HOST = 192.168.237.154  ##实例的对外服务IP地址
MAL_INST_PORT = 5700  ##实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 3567    ##实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 4567        ##实例监听守护进程TCP连接的端口
[mal_inst1]
mal_inst_name  = DSC2
mal_host       = 192.168.237.165
mal_port       = 9266
MAL_INST_HOST = 192.168.237.155
MAL_INST_PORT = 5700
MAL_DW_PORT = 3568
 MAL_INST_DW_PORT = 4568
[mal_inst2]
MAL_INST_NAME = GRP1_RT_01
MAL_HOST = 192.168.237.166
MAL_PORT = 8738
MAL_INST_HOST = 192.168.237.156
MAL_INST_PORT = 9344
MAL_DW_PORT = 3569
MAL_INST_DW_PORT = 4569

2.5 配置dmarch.ini

DSC1:

ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/DSC/DSC01/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH =  +DMDATA/DSC/DSC02/arch
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_01

DSC2:

ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/DSC/DSC02/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = +DMDATA/DSC/DSC01/arch
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_01

DMDW:

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/data/EP01/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DSC1/DSC2

2.6 配置dmwatcher.ini

DSC1:

[GRP1]
DW_TYPE = GLOBAL                     ##全局守护类型
DW_MODE = MANUAL                     ##手动切换模式
DW_ERROR_TIME = 60                   ##远程守护进程故障认定时间
INST_RECOVER_TIME = 60               ##主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 35                 ##本地实例故障认定时间
INST_INI = /dm8/config/dsc1/dm.ini   ##dm.ini配置文件路径
DCR_INI = /dm8/config/dmdcr.ini      ##dmdcr.ini配置文件路径
INST_OGUID = 1000                    ##守护系统唯一OGUID值
INST_STARTUP_CMD = /dm8/bin/dmserver ##命令行方式启动
INST_AUTO_RESTART = 0                ##关闭实例的自动启动功能
RLOG_SEND_THRESHOLD = 0    ##指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0   ##指定备库重演日志的时间阈值,默认关闭

DSC2:

[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 35
INST_INI = /dm8/config/dsc2/dm.ini
DCR_INI = /dm8/config/dmdcr.ini
INST_OGUID = 1000
INST_STARTUP_CMD = /dm8/bin/dmserver
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

DMDW:

[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 35
INST_INI = /dm8/data/EP01/DAMNEG/dm.ini
INST_OGUID = 1000
INST_STARTUP_CMD = /dm8/bin/dmserver
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

2.7 配置dmmonitor.ini

仅在DMDW上配置,放在/dm8/data目录上:

MON_LOG_PATH = /dm8/data/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 64
MON_LOG_SPACE_LIMIT = 0
MON_DW_CONFIRM = 0
[GRP1]
MON_INST_OGUID = 1000
MON_DW_IP = 192.168.237.164:3567/192.168.237.165:3568
MON_DW_IP = 192.168.237.166:3569

2.8 启动主备库

分别在三台机器的/dm8/bin目录下执行:

./dmserver /dm8/config/dsc1/dm.ini DCR_INI=/dm8/config/dmdcr.ini mount

./dmserver /dm8/config/dsc2/dm.ini DCR_INI=/dm8/config/dmdcr.ini mount

./dmserver /dm8/data/EP01/DAMENG/dm.ini mount

2.9 设置OGUID并修改主备库模式:

DSC:

./disql SYSDBA/SYSDBA@localhost:5700

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>SP_SET_OGUID(1000);
SQL>ALTER DATABASE PRIMARY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

DMDW:

./disql SYSDBA/SYSDBA@localhost:9344

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>SP_SET_OGUID(1000);
SQL>ALTER DATABASE STANDBY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

2.10 启动守护进程及监视器

./dmwatcher /dm8/config/dsc1/dmwatcher.ini
./dmwatcher /dm8/config/dsc2/dmwatcher.ini
./dmwatcher /dm8/data/EP01/DAMENG/dmwatcher.ini
./dmmonitor path=/dm8/data/dmmonitor.ini

3 搭建两节点DSC+1实时备机+1异步备机

在以上搭建两节点DSC+1实时备机的基础上,再添加一个异步备机,首先需正常关闭主备库的守护进程及数据库服务

​3.1 数据准备

主库备份(在DSC1/2其中一台执行即可):

./dmrman dcr_ini=/dm8/config/dmdcr.ini

BACKUP DATABASE '/dm8/config/dsc1/dm.ini' FULL BACKUPSET  '/dm8/config/dsc1/bak/db_full_bak2_for_DSC';

备库还原:

./dminit path=/dm8/data/
./dmrman 
RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/db_full_bak2_for_DSC';
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/db_full_bak2_for_DSC';
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

3.2 配置dm.ini

DSC+DMDW:

TIMER_INI = 1

DMADW:

INSTANCE_NAME = GRP1_LOCAL_01
PORT_NUM = 32143 ##数据库实例监听端口
ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间
MAL_INI = 1 ##打开MAL系统
ARCH_INI = 1 ##打开归档配置

3.3 配置dmmal.ini(所有机器一致)

##在原先基础上添加如下内容:

[MAL_INST3]
MAL_INST_NAME = GRP1_LOCAL_01 ##实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 192.168.237.167  ##MAL系统监听TCP连接的IP地址
MAL_PORT = 61143 ##MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.237.157  ##实例的对外服务IP地址
MAL_INST_PORT = 32143 ##实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 52143 ##实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 33143 ##实例监听守护进程TCP连接的端口

3.4 配置dmarch.ini

DSC+DMDW:

##在原先基础上添加:

[ARCHIVE_ASYNC]
ARCH_TYPE = ASYNC ##异步归档类型
ARCH_DEST = GRP1_LOCAL_01 ##异步归档目标实例名
ARCH_TIMER_NAME = RT_TIMER ##定时器名称,和dmtimer.ini中的名称一致

DMADW:

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL ##本地归档类型
ARCH_DEST = /dm8/data/DAMENG/arch ##本地归档文件路径
ARCH_FILE_SIZE = 128 ##单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 ##单位Mb,0表示无限制,范围1024~4294967294M

3.5 配置dmtimer.ini

DSC+DMDW:

[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 = 2016-02-11 17:36:09
DURING_END_DATE = 9999-12-31 23:59:59
NO_END_DATE_FLAG = 1
DESCRIBE = RT TIMER
IS_VALID = 1

3.6 配置dmwatcher.ini

DMADW:

[GRP1]
DW_TYPE = LOCAL ##本地守护类型
DW_MODE = MANUAL ##故障手动切换模式
DW_ERROR_TIME = 10 ##远程守护进程故障认定时间
INST_ERROR_TIME = 10 ##本地实例故障认定时间
INST_OGUID = 1000 ##守护系统唯一OGUID值
INST_INI = /dm8/data/DAMENG/dm.ini ##dm.ini配置文件路径
INST_AUTO_RESTART = 1 ##打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver ##命令行方式启动

3.7 启动主备库

##在四个机器上分别执行:

./dmserver /dm8/config/dsc1/dm.ini DCR_INI=/dm8/config/dmdcr.ini mount
./dmserver /dm8/config/dsc2/dm.ini DCR_INI=/dm8/config/dmdcr.ini mount
./dmserver /dm8/data/EP01/DAMENG/dm.ini mount
./dmserver /dm8/data/DAMENG/dm.ini mount

3.8 设置OGUID并修改备库模式

仅DMADW机器即异步备机需要执行:

./disql SYSDBA/SYSDBA@localhost:32143

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>SP_SET_OGUID(1000);
SQL>ALTER DATABASE STANDBY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

3.9 启动守护进程及监视器

./dmwatcher /dm8/config/dsc1/dmwatcher.ini
./dmwatcher /dm8/config/dsc2/dmwatcher.ini
./dmwatcher /dm8/data/EP01/DAMENG/dmwatcher.ini
./dmwatcher /dm8/data/DAMENG/dmwatcher.ini
./dmmonitor path=/dm8/data/dmmonitor.ini

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服