DSC集群各大节点之间是相互独立且平等的存在,一旦某个节点发生故障,集群将会自动切换使其离线重新更改,重新开启服务后将会自动填充离线期间所丢失的数据更新。这种结构安全性、可靠性更高。
0.0部署结果
0.1制造故障节点dsc1
关闭dsc1节点的服务
可在三号机中的监视器查看到自动更新的信息
此时在dsc0节点
新建用户名、密码以及权限:
create user "DMDBA" identified by "dameng_dba";
//创建名为DMDBA和密码
新建名为TS_DMOA表空间:
create tablespace "TS_DMOA" datafile 'TS_DMOA' size 64 CACHE = NORMAL;
新建用户DMOA默认表空间为上,密码dameng_oa:
create user "DMOA" identified by "dameng_oa" default tablespace "TS_DMOA" default index tablespace "TS_DMOA";
使用DMOA用户新建USERS表格:
create table "DMOA"."USERS"
(
"COLUMN_1" CHAR(10)
);
并在DM管理工具浏览数据快速插入数据
可在DSC2节点查询DMOA用户下的USERS表:
select * from "DMOA"."USERS";
此时启动故障节点DSC1,使其重新接入
此时重新启动DSC1几点后再次查询其于故障期间新建的表格USERS,可查到如下结果:
1.1 部署过程
1、准备虚拟机、且共享磁盘。
cmd通过windows进入VMware的vmware-vdiskmanager.exe路径下
提前在本地设置好共享磁盘文件
执行命令获得共享磁盘
vmware-vdiskmanager.exe -c -s 20G -a lsilogic -t 2 D:\sharedisk2\sharedisk.vmdk
2、挂载共享磁盘
1、2号机和3号机打开硬件配置-添加-硬盘-下一步-使用现有-选择刚创建的D:\sharedisk
sharedisk.vmdk文件即可
3、此时因为磁盘锁机制,无法同时打开两台报错
在2号机、3号机根目录的 .vmx文件最后添加
disk.locking = "FALSE"
4、打开虚拟机安装DM数据库、创建用户dmdba等
5、root权限在1号机划分共享磁盘
fdisk /dev/sdb
n
p
1
+4G
n
p
2
+4G
n
p
3
+6G
n
p
4
默认
然后按w保存
6、三机器新建70-persistent-ipoib.rules文件在/etc/udev/rules.d/目录下给刚划分的4个区域分别命名
ACTION=="add" , KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dmdba", MODE="660"
7、三机器分别执行
partprobe /dev/sdb
8、1号机执行
udevadm trigger --action=add
以下均为dmdba用户操作
9、1号机以dmdba用户新建两级目录/data/dsc/于/home/dmdba/dmdbms目录下
并在dsc目录新建dmdcr_cfg.ini文件
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 3
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.85.131
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.85.151
DCR_EP_PORT = 9343
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.85.161
DCR_EP_PORT = 9345
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 3
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]
DCR_EP_NAME = ASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.85.131
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.85.151
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93362
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.85.161
DCR_EP_PORT = 9353
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 3
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]
DCR_EP_NAME = DSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5237
DCR_CHECK_PORT = 9742
[GRP_DSC]
DCR_EP_NAME = DSC2
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5238
DCR_CHECK_PORT = 9743
10、dmdba用户下1号机bin目录使用DMASMCMD工具初始化
./dmasmcmd
create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'LOG0'
create asmdisk '/dev/raw/raw4' 'DATA0'
init dcrdisk '/dev/raw/raw1' from '/home/dmdba/dmdbms/data/dsc/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/home/dmdba/dmdbms/data/dsc/dmdcr_cfg.ini'
11、三虚拟机dsc目录下新建dmasvrmal.ini配置文件
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.85.131
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.85.151
MAL_PORT = 7236
[MAL_INST3]
MAL_INST_NAME = ASM2
MAL_HOST = 192.168.85.161
MAL_PORT = 7236
12、1号机新建dmdcr.ini配置文件在dsc目录下
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /home/dmdba/dmdbms/data/dsc/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0 #ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dmdbms/data/dsc/dmdcr.ini #DB重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr
path=/home/dmdba/dmdbms/data/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/data/dsc/dmdcr.ini
13、2号级dsc目录下新建dmdcr.ini配置文件
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /home/dmdba/dmdbms/data/dsc/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1 #ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr DCR_INI=/home/dmdba/dmdbms/data/dsc/dmdcr.ini #DB重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr
PATH=/home/dmdba/dmdbms/data/dsc1_config/dm.ini dcr_ini=/home/dmdba/dmdbms/data/dsc/dmdcr.ini
14、3号级dsc目录下新建dmdcr.ini配置文件
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /home/dmdba/dmdbms/data/dsc/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 2
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr DCR_INI=/home/dmdba/dmdbms/data/dsc/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0 #DB重启参数,命令行方式启动
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr
PATH=/home/dmdba/dmdbms/data/dsc2_config/dm.ini dcr_ini=/home/dmdba/dmdbms/data/dsc/dmdcr.ini
bin目录下三机器先后执行ini文件
./dmcss DCR_INI=/home/dmdba/dmdbms/data/dsc/dmdcr.ini
等待、复制ssh渠道
./dmasmsvr DCR_INI=/home/dmdba/dmdbms/data/dsc/dmdcr.ini
15、1号机启动dmasmtool创建共享磁盘
./dmasmtool DCR_INI=/home/dmdba/dmdbms/data/dsc/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3' #创建磁盘日志组
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4' #创建数据磁盘组
16、1号机在/home/dmdba/dmdbms/data/dsc目录下新建一个dminit.ini文件:
db_name = dsc
system_path = +DMDATA/data
system = +DMDATA/data/dsc/system.dbf
system_size = 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 128
main = +DMDATA/data/dsc/main.dbf
main_size = 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
[DSC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/dmdbms/data/dsc0_config
port_num = 5236
mal_host = 192.168.85.131
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1] #nst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/dmdbms/data/dsc1_config
port_num = 5237
mal_host = 192.168.85.151
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
[DSC2] #nst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/dmdbms/data/dsc2_config
port_num = 5238
mal_host = 192.168.85.161
mal_port = 9342
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
17、1号机进入bin目录执行
./dminit control=/home/dmdba/dmdbms/data/dsc/dminit.ini
之后在/home/dmdba/dmdbms/data/目录下会得到dsc0_config和dsc1_config、dsc2_config两个文件夹
使用XShell工具将dsc1_config文件夹传到2号机、dsc2_config文件夹传到3号机
然后重启
18、启动DSC集群
./dmserver /home/dmdba/dmdbms/data/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/data/dsc/dmdcr.ini
./dmserver /home/dmdba/dmdbms/data/dsc1_config/dm.ini dcr_ini=/home/dmdba/dmdbms/data/dsc/dmdcr.ini
./dmserver /home/dmdba/dmdbms/data/dsc2_config/dm.ini dcr_ini=/home/dmdba/dmdbms/data/dsc/dmdcr.ini
19、设置监视器
在三号机/home/dmdba/dmdbms/data/目录下创建监视器文件dmcssm.ini
CSSM_OGUID = 63635
#配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.85.131:9341
CSSM_CSS_IP = 192.168.85.151:9343
CSSM_CSS_IP = 192.168.85.161:9345
CSSM_LOG_PATH =…/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
20、bin目录下启动监视器
./dmcssm INI_PATH=/home/dmdba/dmdbms/data/dmcssm.ini
*************************************************************************************************************
cd /home/dmdba/dmdbms/script/root
分别前往三台机器的root目录注册CSS服务:
./dm_service_installer.sh -t dmcss -p DMCSS0 -dcr_ini /home/dmdba/dmdbms/data/dsc/dmdcr.ini
./dm_service_installer.sh -t dmcss -p DMCSS1 -dcr_ini /home/dmdba/dmdbms/data/dsc/dmdcr.ini
./dm_service_installer.sh -t dmcss -p DMCSS2 -dcr_ini /home/dmdba/dmdbms/data/dsc/dmdcr.ini
分别给三台机器注册ASM服务:
./dm_service_installer.sh -t dmasmsvr -p ASM0 -dcr_ini /home/dmdba/dmdbms/data/dsc/dmdcr.ini -y DmCSSServiceDMCSS0
./dm_service_installer.sh -t dmasmsvr -p ASM1 -dcr_ini /home/dmdba/dmdbms/data/dsc/dmdcr.ini -y DmCSSServiceDMCSS1
./dm_service_installer.sh -t dmasmsvr -p ASM2 -dcr_ini /home/dmdba/dmdbms/data/dsc/dmdcr.ini -y DmCSSServiceDMCSS2
三台机器分别注册实例服务:
./dm_service_installer.sh -t dmserver -p DSC0 -dm_ini /home/dmdba/dmdbms/data/dsc0_config/dm.ini -dcr_ini /home/dmdba/dmdbms/data/dsc/dmdcr.ini -y DmASMSvrServiceASM0
./dm_service_installer.sh -t dmserver -p DSC1 -dm_ini /home/dmdba/dmdbms/data/dsc1_config/dm.ini -dcr_ini /home/dmdba/dmdbms/data/dsc/dmdcr.ini -y DmASMSvrServiceASM1
./dm_service_installer.sh -t dmserver -p DSC2 -dm_ini /home/dmdba/dmdbms/data/dsc2_config/dm.ini -dcr_ini /home/dmdba/dmdbms/data/dsc/dmdcr.ini -y DmASMSvrServiceASM2
最后:
1号机前往bin目录按照顺序依次启动以下服务
./DmCSSServiceDMCSS0 start
./DmASMSvrServiceASM0 start
./DmServiceDSC0 start
2号机
./DmCSSServiceDMCSS1 start
./DmASMSvrServiceASM1 start
./DmServiceDSC1 start
3号机
./DmCSSServiceDMCSS2 start
./DmASMSvrServiceASM2 start
./DmServiceDSC2 start
可再次前往bin目录查看监视器
./dmcssm INI_PATH=/home/dmdba/dmdbms/data/dmcssm.ini
22、分别编辑三个DMDSC节点的dmarch.ini文件,增加本地归档和远程归档
dmarch.ini文件放在各自dm.ini中指定的CONFIG_PATH目录下。
且分别在dsc0的/home/dmdba/data/dsc0_config/目录下
新建arch arch_remote1 arch_remote2
且分别在dsc1的/home/dmdba/data/dsc1_config/目录下
新建arch arch_remote0 arch_remote2
且分别在dsc2的/home/dmdba/data/dsc2_config/目录下
新建arch arch_remote0 arch_remote1
配置dsc0:
ARCH_LOCAL_SHARE = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/data/dsc0_config/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc0_config/arch_remote1
[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc0_config/arch_remote2
[ARCHIVE_REALTIME]
ARCH_TYPE= REALTIME
ARCH_DEST= DW1
配置dsc1:
ARCH_LOCAL_SHARE = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/data/dsc1_config/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc1_config/arch_remote0
[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc1_config/arch_remote2
[ARCHIVE_REALTIME]
ARCH_TYPE= REALTIME
ARCH_DEST= DW1
配置DSC2
ARCH_LOCAL_SHARE = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/data/dsc2_config/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc2_config/arch_remote0
[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc2_config/arch_remote1
[ARCHIVE_REALTIME]
ARCH_TYPE= REALTIME
ARCH_DEST= DW1
23、配置dm.ini
分别编辑两个DMDSC节点的dm.ini文件,打开归档参数:ARCH_INI= 1
24、于DSC0号机备份DSC
重启DMDSC集群的两个dmserver实例,然后再正常退出。在DMDSC集群生成有归档日志的情况下进行脱机备份,以便后续校验日志连续性时使用。
./dmrman use_ap=2 dcr_ini=/home/dmdba/data/dsc/dmdcr.ini
backup database '/home/dmdba/data/dsc0_config/dm.ini' full backupset '/home/dmdba/data/db_full_bak_for_dsc'
脱机备份时归档日志不完整
通过查看相关资料,对归档日志进行修复
25、配置单节点备库
--初始化备库
./dminit path=/home/dmdba/data/EP01/
--将dsc主库下的备份集发送到备库
[dmdba@dameng01 data]$ scp -r db_full_bak_for_dsc dmdba@192.168.85.161:/home/dmdba/dmdbms/data/
于备库启动dmrman
./dmrman use_ap=2
--还原、恢复、更新
restore database '/home/dmdba/data/EP01/DAMENG/dm.ini' from backupset '/home/dmdba/data/db_full_bak_for_dsc';
recover database '/home/dmdba/data/EP01/DAMENG/dm.ini' from backupset '/home/dmdba/data/db_full_bak_for_dsc';
recover database '/home/dmdba/data/EP01/DAMENG/dm.ini' update DB_MAGIC;
26、配置dm.ini
依次配置DMDSC主库所有节点和单节点备库的dm.ini文件,修改数据守护相关的参数配置。
(1)配置DSC0的dm.ini文件
#实例名,建议使用―组名_守护环境_序号‖的命名方式,总长度不能超过16
INSTANCE_NAME= DSC0
PORT_NUM= 5236#数据库实例监听端口
ALTER_MODE_STATUS= 0#不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS= 2#不允许备库OFFLINE表空间
MAL_INI= 1#打开MAL系统
ARCH_INI= 1#打开归档配置
(2)配置DSC1的dm.ini文件
INSTANCE_NAME= DSC1
PORT_NUM= 5237#数据库实例监听端口
DW_INACTIVE_INTERVAL= 60#接收守护进程消息超时时间
ALTER_MODE_STATUS= 0#不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS= 2#不允许备库OFFLINE表空间
MAL_INI= 1#打开MAL系统
ARCH_INI= 1#打开归档配置
RLOG_SEND_APPLY_MON= 64 #统计最近64次的日志发送信息
(3)配置DSC2的dm.ini文件
INSTANCE_NAME= DSC1
PORT_NUM= 5237#数据库实例监听端口
DW_INACTIVE_INTERVAL= 60#接收守护进程消息超时时间
ALTER_MODE_STATUS= 0#不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS= 2#不允许备库OFFLINE表空间
MAL_INI= 1#打开MAL系统
ARCH_INI= 1#打开归档配置
RLOG_SEND_APPLY_MON= 64 #统计最近64次的日志发送信息
(4)配置DW1的dm.ini文件
INSTANCE_NAME= DW1
PORT_NUM= 5236
DW_INACTIVE_INTERVAL= 60
ALTER_MODE_STATUS= 0
ENABLE_OFFLINE_TS= 2
MAL_INI= 1 ARCH_INI= 1
RLOG_SEND_APPLY_MON= 64
27、配置dmmal.ini
MAL_CHECK_INTERVAL = 30 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定MAL链路断开的时间
[mal_inst0]
mal_inst_name = DSC0
mal_host = 192.168.85.131
mal_port = 9340
MAL_INST_HOST = 192.168.85.131 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT= 3567 #实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 4567 #实例监听守护进程TCP连接的端口
[mal_inst1]
mal_inst_name = DSC1
mal_host = 192.168.85.141
mal_port = 9341
MAL_INST_HOST = 192.168.85.141 #实例的对外服务IP地址
MAL_INST_PORT = 5237 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT= 3568 #实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 4568 #实例监听守护进程TCP连接的端口
[mal_inst2]
mal_inst_name = DSC2
mal_host = 192.168.85.151
mal_port = 9342
MAL_INST_HOST = 192.168.85.141 #实例的对外服务IP地址
MAL_INST_PORT = 5238 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT= 3569 #实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 4569 #实例监听守护进程TCP连接的端口
[mal_inst3]
mal_inst_name = DW1
mal_host = 192.168.85.161
mal_port = 8738
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT= 3570 #实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 4570 #实例监听守护进程TCP连接的端口
28、配置dmarch.ini
DSC0配置:
[ARCHIVE_LOCAL1]
ARCH_TYPE= LOCAL
ARCH_DEST= /home/dmdba/data/dsc0_config/arch
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
[ARCHIVE_REMOTE1]
ARCH_TYPE= REMOTE
ARCH_DEST= DSC1
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc0_config/arch_remote1
[ARCHIVE_REMOTE2]
ARCH_TYPE= REMOTE
ARCH_DEST= DSC2
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc0_config/arch_remote2
[ARCHIVE_REALTIME]
ARCH_TYPE= REALTIME
ARCH_DEST= DW1
DSC1配置:
[ARCHIVE_LOCAL1]
ARCH_TYPE= LOCAL
ARCH_DEST= /home/dmdba/data/dsc1_config/arch
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
[ARCHIVE_REMOTE1]
ARCH_TYPE= REMOTE
ARCH_DEST= DSC0
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc1_config/arch_remote0
[ARCHIVE_REMOTE2]
ARCH_TYPE= REMOTE
ARCH_DEST= DSC2
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc1_config/arch_remote2
[ARCHIVE_REALTIME]
ARCH_TYPE= REALTIME
ARCH_DEST= DW1
DSC2配置:
[ARCHIVE_LOCAL1]
ARCH_TYPE= LOCAL
ARCH_DEST= /home/dmdba/data/dsc2_config/arch
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
[ARCHIVE_REMOTE1]
ARCH_TYPE= REMOTE
ARCH_DEST= DSC0
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc2_config/arch_remote0
[ARCHIVE_REMOTE2]
ARCH_TYPE= REMOTE
ARCH_DEST= DSC1
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
ARCH_INCOMING_PATH = /home/dmdba/data/dsc2_config/arch_remote1
[ARCHIVE_REALTIME]
ARCH_TYPE= REALTIME
ARCH_DEST= DW1
DW1配置:
[ARCHIVE_LOCAL1]
ARCH_TYPE= LOCAL
ARCH_DEST= /home/dmdba/data/EP01/DAMENG/arch
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
[ARCHIVE_REALTIME1]
ARCH_TYPE= REALTIME
ARCH_DEST= DSC0/DSC1/DSC2
29、配置dmwatcher
DSC0的dmwatcher:
[GRP1]
DW_TYPE= GLOBAL #全局守护类型
DW_MODE= MANUAL #手动切换模式
DW_ERROR_TIME= 60 #远程守护进程故障认定时间
INST_RECOVER_TIME= 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 35 #本地实例故障认定时间
INST_INI= /home/dmdba/data/dsc0_config/dm.ini #dm.ini配置文件路径
DCR_INI= /home/dmdba/data/dsc/dmdcr.ini #dmdcr.ini配置文件路径
INST_OGUID = 0 #守护系统唯一OGUID值
INST_STARTUP_CMD= /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
INST_AUTO_RESTART= 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD= 0 #指定主库发送日志到备库的时间阈值,默认关闭 RLOG_APPLY_THRESHOLD = 0#指定备库重演日志的时间阈值,默认关闭
DSC1的dmwatcher:
[GRP1]
DW_TYPE= GLOBAL #全局守护类型
DW_MODE= MANUAL #手动切换模式
DW_ERROR_TIME= 60 #远程守护进程故障认定时间
INST_RECOVER_TIME= 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 35 #本地实例故障认定时间
INST_INI= /home/dmdba/data/dsc1_config/dm.ini #dm.ini配置文件路径
DCR_INI= /home/dmdba/data/dsc/dmdcr.ini #dmdcr.ini配置文件路径
INST_OGUID = 0 #守护系统唯一OGUID值
INST_STARTUP_CMD= /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
INST_AUTO_RESTART= 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD= 0 #指定主库发送日志到备库的时间阈值,默认关闭 RLOG_APPLY_THRESHOLD = 0#指定备库重演日志的时间阈值,默认关闭
DSC2的dmwatcher:
[GRP1]
DW_TYPE= GLOBAL #全局守护类型
DW_MODE= MANUAL #手动切换模式
DW_ERROR_TIME= 60 #远程守护进程故障认定时间
INST_RECOVER_TIME= 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 35 #本地实例故障认定时间
INST_INI= /home/dmdba/data/dsc2_config/dm.ini #dm.ini配置文件路径
DCR_INI= /home/dmdba/data/dsc/dmdcr.ini #dmdcr.ini配置文件路径
INST_OGUID = 0 #守护系统唯一OGUID值
INST_STARTUP_CMD= /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
INST_AUTO_RESTART= 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD= 0 #指定主库发送日志到备库的时间阈值,默认关闭 RLOG_APPLY_THRESHOLD = 0#指定备库重演日志的时间阈值,默认关闭
DW1的dmwatcher.ini文件:
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 35
INST_INI = /home/dmdba/data/EP01/dm.ini
INST_OGUID = 63635
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
INST_AUTO_RESTART = 0
RLOG_APPLY_THRESHOLD = 0
30、启动主备库
注意实例都要使用Mount方式启动。
(若已经以注册服务方式启动后,可进入disql更改状态:alter database mount;)
DSC0的bin目录下:
./dmserver /home/dmdba/data/dsc0_config/dm.ini dcr_ini=/home/dmdba/data/dsc/dmdcr.ini mount
DSC1的bin目录下:
./dmserver /home/dmdba/data/dsc1_config/dm.ini DCR_INI=/home/dmdba/data/dsc/dmdcr.ini mount
DSC2的bin目录下:
./dmserver /home/dmdba/data/dsc2_config/dm.ini DCR_INI=/home/dmdba/data/dsc/dmdcr.ini mount
DW1的bin目录下:
./dmserver /home/dmdba/data/EP01/DAMENG/dm.ini mount
31、设置OGUID确定唯一标识符并更改DSC0为主库DW1为备库
启动命令行工具DIsql,连接DMDSC集群中的任意一个节点,设置DMDSC主库的OGUID值。
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_OGUID(0);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
ALTER DATABASE PRIMARY;
DIsql连接单节点备库,设置备库OGUID。
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_OGUID(0);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
ALTER DATABASE STANDBY;
32、启动主备守护线程
./dmwatcher /home/dmdba/data/dsc0_config/dmwatcher.ini
./dmwatcher /home/dmdba/data/dsc1_config/dmwatcher.ini
./dmwatcher /home/dmdba/data/dsc2_config/dmwatcher.ini
./dmwatcher /home/dmdba/data/EP01/DAMENG/dmwatcher.ini
达梦社区地址:https://eco.dameng.com