首页 > 其他分享 >DM8DSC + 实时主备 搭建

DM8DSC + 实时主备 搭建

时间:2024-06-19 20:28:51浏览次数:22  
标签:DM8DSC dm dmdba ARCH 主备 ini DCR MAL 搭建

Dsc搭建

一:介绍

   DM共享存储数据库集群的英文全称 DM Data Shared Cluster,简称 DMDSC。
   DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可
用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据
库实例故障后,不会导致数据库服务无法提供。

二:准备环境

硬件:两台配置相同的机器、2G内存,20G本地磁盘,

操作系统:Kylin-Server-V10-SP3-General-Release-2303-X86_64

数据库版本:Kylin-Server-V10-SP3-General-Release-2303-X86_64

网卡:虚拟机,每台服务器使用一个网卡

       DSC01:192.168.23.200

       DSC02:192.168.23.201

三:创建共享磁盘

虚拟机安装的目录下找到vmware-vdiskmanager.exe,使用cmd创建共享磁盘,语句如下:

vmware-vdiskmanager.exe -c -s 15000Mb -a lsilogic -t 2 "D:\share2\sharediskw.vmdk"
注:15000M指共享磁盘大小;D:\share2指共享磁盘存放路径

1.两台机器都要添加硬盘

到两台虚拟机下的.vmx查看是否末尾有以下参数,没有的手动加入

disk.locking="FALSE"

scsi0:1.SharedBus="Virtual"

scsi1:1.SharedBus="Virtual"

2.开机

输入fdisk /dev/sdb进入划分命令

节点1操作

依次输入 n –>p->回车 ->回车-> +1G-> 回车,完成第一块磁盘划分
 
依次输入 n –>p->回车 ->回车-> +2G-> 回车,完成第二块磁盘划分
 
依次输入 n –>p->回车 ->回车-> +3G -> 回车,完成第三块磁盘划分
 
依次输入n –>p->4 ->回车->回车->回车,完成第四块磁盘划分

w 保存退出

确保都一样

3.接下来添加语句

vim /etc/udev/rules.d/70-persistent-ipoib.rules,添加以下语句  
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="dinstall",MODE="660"

执行以下命令,使udev生效

udevadm trigger --type=devices --action=change

两边服务器都要查看,需要看到以下画面,没有的话,重启服务器

四:关闭防火墙

[root@localhost opt]# systemctl stop firewalld
[root@localhost opt]# systemctl disable firewalld.service 
vim /etc/selinux/config 修改SELINUX=disable

五:安装数据库准备工作

1.创建用户与组

[root@susu ~]# groupadd dinstall
[root@susu ~]# useradd  -g dinstall -m -d /home/dmdba -s /bin/bash  dmdba

使用 vim 编辑器打开 /etc/security/limits.conf 文件  ,在下面添加

dmdba  soft      nice       0
dmdba  hard      nice       0
dmdba  soft      as         unlimited
dmdba  hard      as         unlimited
dmdba  soft      fsize      unlimited
dmdba  hard      fsize      unlimited
dmdba  soft      nproc      65536
dmdba  hard      nproc      65536
dmdba  soft      nofile     65536
dmdba  hard      nofile     65536
dmdba  soft      core       unlimited
dmdba  hard      core       unlimited
dmdba  soft      data       unlimited
dmdba  hard      data       unlimited

创建/dm,并且授权给用户dmdba,安装DM8

[root@susu ~]# mkdir /dm
[root@susu ~]# chown dmdba:dinstall -R /dm/
[root@susu ~]# chmod 755 -R /dm/

在用户dmdba上安装数据库(不初始化实例)。存放于/dm,步骤不演示。

六:配置 DCR 初始化配置文件

存放路径 /dm/data

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 = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.23.200
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.23.201
DCR_EP_PORT = 9341
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.23.200
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93361     
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.23.201
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]
DCR_EP_NAME = DSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5237
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5237
DCR_CHECK_PORT = 9742

拷贝过去

七:创建 ASM 磁盘

bin 目录下,打开  ./dmasmcmd

ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
[TRACE]The ASM initialize dcrdisk /dev/raw/raw1 to name DMASMdcr
Used time: 7.181(ms).
 
ASM>create votedisk '/dev/raw/raw2' 'vote'
[TRACE]The ASM initialize votedisk /dev/raw/raw2 to name DMASMvote
Used time: 2.161(ms).
 
ASM>create asmdisk '/dev/raw/raw3' 'LOG0'
[TRACE]The ASM initialize asmdisk /dev/raw/raw3 to name DMASMLOG0
Used time: 1.700(ms).
 
ASM>create asmdisk '/dev/raw/raw4' 'DATA0'
[TRACE]The ASM initialize asmdisk /dev/raw/raw4 to name DMASMDATA0
Used time: 2.280(ms).

编辑好 dmdcr_cfg.ini 配置文件,才能进行 初始化 dcrdisk 和 votedisk,在 ASM 提示符执行以下命令:(DMASMCMD工具中执行命令结尾不要加分号)

两服务器一定要检查,共享磁盘的情况,是否如下

八:配置ASM的MAL系统配置文件

2 个节点都需要配置,且文件内容相同,执行以下命令

 vim dmasvrmal.ini
 
[MAL_INST1]
 MAL_INST_NAME = ASM1
 MAL_HOST = 192.168.23.200
 MAL_PORT = 7238
[MAL_INST2]
 MAL_INST_NAME = ASM2
 MAL_HOST = 192.168.23.201
 MAL_PORT = 7238

九:配置 DCR 启动配置文件

2 个节点都需要配置,且文件内容相同,执行以下命令

节点1

vim /dm/data/dmdcr.ini

DMDCR_PATH     = /dev/raw/raw1
DMDCR_MAL_PATH =/dm/data/dmasvrmal.ini  #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO   = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 10
DMDCR_ASM_STARTUP_CMD = /dm/bin/dmasmsvr dcr_ini=/dm/data/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /dm/bin/dmserver path=/dm/data/dsc1/dm.ini  dcr_ini=/dm/data/dmdcr.ini
DMDCR_AUTO_OPEN_CHECK = 60

节点2

DMDCR_PATH     = /dev/raw/raw1
DMDCR_MAL_PATH =/dm/data/dmasvrmal.ini  #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO   = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 10
DMDCR_ASM_STARTUP_CMD = /dm/bin/dmasmsvr dcr_ini=/dm/data/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /dm/bin/dmserver path=/dm/data/dsc2/dm.ini dcr_ini=/dm/data/dmdcr.ini
DMDCR_AUTO_OPEN_CHECK = 60

十:启动集群

2 个节点启动 dmcss,dmdba 用户到数据库安装目录 bin 下执行以下命令(配置 DCR 启动配置文件设置了自动拉起服务,所以在启动CSS服务时,会启动ASM服务)

./dmcss dcr_ini=/dm/data/dmdcr.ini

十一:创建建 ASM 磁盘组

ASM 启动成功后,节点 1 使用 dmdba 用户在bin目录启动 dmasmtool 工具(如果ASM没启动成功,则无法开启)

./dmasmtool dcr_ini=/dm/data/dmdcr.ini

在 ASM 提示符下创建 asm 磁盘组,创建 REDO 日志磁盘组,执行以下命令

ASM>create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
Used time: 16.306(ms).

创建数据文件磁盘组,执行以下命令:

ASM>create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
Used time: 16.576(ms).

十二:初始化共享存储集群数据库实例

配置 dminit 控制文件,节点 1 使用 dmdba 用户编辑文件

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       = /dm/data/dsc1
port_num          = 5237
mal_host          = 192.168.23.200
mal_port          = 9236
log_path          = +DMLOG/log/DSC1_log01.log
log_path          = +DMLOG/log/DSC1_log02.log
[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path       = /dm/data/dsc2
port_num          = 5237
mal_host          = 192.168.23.201
mal_port          = 9236
log_path          = +DMLOG/log/DSC2_log01.log
log_path          = +DMLOG/log/DSC2_log02.log

初始化实例,节点 1 使用 dmdba在bin执行以下命令:

./dminit control=/dm/data/dminit.ini

出现以下画面,即为成功初始化实例。

初始化完成后会在 dminit.ini控制文件配置的目录下生成 2 个实例的配置文件(配置的是/dm/data)

在初始化实例时,出现以下这个画面,不用担心是没有dm.key,再尝试一下,或者检查dminit.ini i是否有inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应。

登录/dm/data,将 dsc2 目录复制到节点 2 上对应的目录下

scp -r dsc2 [email protected]:/dm/data/

十三:配置监控器

任意节点新建监视器配置文件(不建议在两节点服务器上),执行以下命令:

#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635
#配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.23.200:9341
CSSM_CSS_IP = 192.168.23.201:9341
CSSM_LOG_PATH =/dm/data/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 1024 #每个日志文件最大 1024 MB
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

启动监视器,dmdba 用户执行,到数据库软件安装目录 bin 下执行以下命令

./dmcssm ini_path=/dm/data/dmcssm.ini

show一下确保都是open

十四:注册服务

以上启动方式为前台启动,仅用于验证集群配置过程。配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。

2 个节点都需要注册,使用 root 用户执行,到数据库安装目录的 script/root 目录。

节点1执行命令

./dm_service_installer.sh -t dmcss -p css1 -dcr_ini /dm/data/dmdcr.ini

节点2执行命令

./dm_service_installer.sh -t dmcss -p css2 -dcr_ini/dm/data /dmdcr.ini

关闭前台启动的 css,以服务方式启动 css。

节点1执行命令

systemctl start DmCSSServicecss1

节点2执行命令

systemctl start DmCSSServicecss2

 十五:关闭自动拉起

十六:关闭顺序

DSC--->ASM--->CSS

DSC+实时备库

一:环境配置

1.
创建dmdba用户,主组群为dinstall
创建主组群:groupadd dinstall
创建用户:useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
设置密码:passwd dmdba

2.
vi /etc/security/limits.conf添加上

dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc  65536
dmdba hard nproc  65536
dmdba soft stack  65536
dmdba hard stack  65536

cat /etc/security/limits.conf|grep dmdba
备注:/etc/systemd/system.conf的DefaultLimitNOFILE参数修改为65535
cat /etc/systemd/system.conf|grep DefaultLimitNOFILE
设置limits.conf的权限755
chmod -R 755 /etc/systemd/system.conf

3.
关闭swap交换区(内存若大于128G,需关闭)
swapoff -a
将/etc/fstab中的swap关闭掉
cat /etc/fstab |grep swap

4.
检查是否配置时钟同步(外网此步骤忽略或更换时间源)暂时不用
chronyc sources -v
vi /etc/chrony.conf
server xx.xx.47.245 iburst
driftfile /var/lib/chrony/drift
makestep 10 3

重启chronyd服务
systemctl restart chronyd.service
设置开机启动
systemctl enable chronyd.service

5.
date检查时间,暂时不用
上传nmon工具,设置每天0、6、12、18点开启采集,间隔5秒采集一次,一次采集4320次,日志文件保留5天。
0 0,6,12,18 * * * /home/dmdba/nmon -f -t  -s 5 -c 4320 -m /dm_nmon_output
0 0 * * * find /dm_nmon_output -type f -mtime +5 -exec rm -f {} \;

6.
关闭操作系统防火墙及selinux
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
vi /etc/selinux/config
 将SELINUX=enable改为SELINUX=disabled
cat /etc/selinux/config|grep SELINUX
 然后执行setenforce 0

2.划分磁盘

dmcorefile根据实际划分
dmarch根据实际划分
dmsqllog根据实际划分
dmdbms根据实际划分
dmbak根据实际划分
dm_nmon_output根据实际划分
dmdata根据实际划分

以下命令仅供参考,根据实际情况挂载!!
划分物理卷
pvcreate /dev/sdb
创建卷组
vgcreate dm_vg /dev/sdb
创建逻辑卷
lvcreate -L +2T -n dm_lv_dmcorefile dm_vg
lvcreate -L +3T -n dm_lv_dmarch dm_vg
lvcreate -L +2T -n dm_lv_dmsqllog dm_vg
lvcreate -L +500G -n dm_lv_dmdbms dm_vg
lvcreate -L +7T -n dm_lv_dmbak dm_vg
lvcreate -L +500G -n dm_lv_nmon_output dm_vg
lvcreate -l +100%FREE -n dm_lv_dmdata dm_vg
格式化逻辑卷
mkfs.xfs /dev/mapper/dm_vg-dm_lv_dmcorefile
mkfs.xfs /dev/mapper/dm_vg-dm_lv_dmarch
mkfs.xfs /dev/mapper/dm_vg-dm_lv_dmsqllog
mkfs.xfs /dev/mapper/dm_vg-dm_lv_dmdbms
mkfs.xfs /dev/mapper/dm_vg-dm_lv_dmbak
mkfs.xfs /dev/mapper/dm_vg-dm_lv_nmon_output
mkfs.xfs /dev/mapper/dm_vg-dm_lv_dmdata
创建目录
mkdir /dmcorefile /dmarch /dmsqllog /dmdbms /dmbak /dm_nmon_output /dmdata
挂载目录
mount /dev/mapper/dm_vg-dm_lv_dmcorefile /dmcorefile
mount /dev/mapper/dm_vg-dm_lv_dmarch /dmarch
mount /dev/mapper/dm_vg-dm_lv_dmsqllog /dmsqllog
mount /dev/mapper/dm_vg-dm_lv_dmdbms /dmdbms
mount /dev/mapper/dm_vg-dm_lv_dmbak /dmbak
mount /dev/mapper/dm_vg-dm_lv_nmon_output /dm_nmon_output
mount /dev/mapper/dm_vg-dm_lv_dmdata /dmdata
目录授权(创建dmdba用户后执行)
chmod -R 755 /dmcorefile /dmarch /dmsqllog /dmdbms /dmbak /dm_nmon_output /dmdata
chown -R dmdba:dinstall  /dmcorefile /dmarch /dmsqllog /dmdbms /dmbak /dm_nmon_output /dmdata 
设置分区在系统重启后自动挂载
vi /etc/fstab,添加以下:
/dev/mapper/dm_vg-dm_lv_dmcorefile /dmcorefile xfs defaults 0 0
/dev/mapper/dm_vg-dm_lv_dmarch /dmarch xfs defaults 0 0
/dev/mapper/dm_vg-dm_lv_dmsqllog /dmsqllog xfs defaults 0 0
/dev/mapper/dm_vg-dm_lv_dmdbms /dmdbms xfs defaults 0 0
/dev/mapper/dm_vg-dm_lv_dmbak /dmbak xfs defaults 0 0
/dev/mapper/dm_vg-dm_lv_nmon_output /dm_nmon_output xfs defaults 0 0
/dev/mapper/dm_vg-dm_lv_dmdata /dmdata xfs defaults 0 0

3.初始化备库

cd /dmdbms/bin
./dminit path=/dmdata/ PORT_NUM=5237
编辑DmService,正常启停一次

4.备份主库数据

数据库集群联机全备并拷贝至容灾服务器,检验备份有效性。

$ ./dmrman  DCR_INI=/dm/dmdbms/dmdcr.ini
对数据库全备

发起sql全备
BACKUP DATABASE BACKUPSET '/dmbak/db_full_日期' COMPRESSED LEVEL 3 PARALLEL 8;
备份校验
check backupset  '/dmbak/db_full_日期'
备份成功后拷贝至容灾服务器
scp -P 10022 -r db_full_日期 dmdba@容灾ip:/dmbak/

5. 记录并关闭DMHS(没有则忽略)

ps -ef|grep dmhs	--截图记录现有DMHS进程信息
cd /dmhs/bin
./DmhsService stop

二:开始操作

1.备库还原

启动ap服务
./DmAPService start
./dmrman
restore database '/dmdata/DMDB/dm.ini' from backupset '/data/dmbak/db_full_日期';
此步骤先restore还原,后续使用归档recover恢复

2.配置dm.ini

cp dm.ini dm.ini_bak_日期
DSC节点1:
INSTANCE_NAME = DSC0  #不用改动
PORT_NUM = 5237            #数据库实例监听端口 
ALTER_MODE_STATUS = 0      #不允许手工方式修改实例模式/状态/OGUID 
ENABLE_OFFLINE_TS = 2      #不允许备库 OFFLINE 表空间 
MAL_INI = 1                #打开 MAL 系统
ARCH_INI = 1               #打开归档配置 
验证参数:
cat dm.ini|grep -E "INSTANCE_NAME|PORT_NUM|ALTER _MODE_STATUS|ENABLE_OFFLINE_TS|MAL_INI|ARCH_INI"|grep -v _PORT_NUM

cp dm.ini dm.ini_bak_日期
DSC节点2:
INSTANCE_NAME = DSC1       #不用改动
PORT_NUM = 5237            #数据库实例监听端口 
ALTER_MODE_STATUS = 0      #不允许手工方式修改实例模式/状态/OGUID 
ENABLE_OFFLINE_TS = 2      #不允许备库 OFFLINE 表空间 
MAL_INI = 1                #打开 MAL 系统
ARCH_INI = 1               #打开归档配置 
验证参数:
cat dm.ini|grep -E "INSTANCE_NAME|PORT_NUM|ALTER _MODE_STATUS|ENABLE_OFFLINE_TS|MAL_INI|ARCH_INI"|grep -v _PORT_NUM

cp dm.ini dm.ini_bak_日期
将主库的dm.ini配置文件复制到备机的dm.ini中
备库:
INSTANCE_NAME = ZCDB_DW01  #注意自己实例名
PORT_NUM = 5237            #数据库实例监听端口 
ALTER_MODE_STATUS = 0      #不允许手工方式修改实例模式/状态/OGUID 
ENABLE_OFFLINE_TS = 2      #不允许备库 OFFLINE 表空间 
MAL_INI = 1                #打开 MAL 系统
ARCH_INI = 1               #打开归档配置 

验证参数:
cat dm.ini|grep -E "INSTANCE_NAME|PORT_NUM|ALTER _MODE_STATUS|ENABLE_OFFLINE_TS|MAL_INI|ARCH_INI"|grep -v _PORT_NUM

3.配置dmarch.ini

cp dmarch.ini dmarch.ini_bak_日期
DSC节点1:
ARCH_LOCAL_SHARE = 1      #DMDSC 集群本地归档是否共享给远程节点作为远程归档。0 表示不共享,1 表示共享,默认值为 0。
ARCH_LOCAL_SHARE_CHECK=0  #是否进行 LOCAL 归档和 REMOTE 归档路径校验,默认值等于 ARCH_LOCAL_SHARE,1表示会校验。

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/LOCAL_ARCH_DSC0   
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024
#本地多放一个
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm/gui
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024

[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMDATA/LOCAL_ARCH_DSC1  #注意dsc集群的asm组名字
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = ZCDB_DW01 #实时归档目标实例名

cp dmarch.ini dmarch.ini_bak_日期
DSC节点2:
ARCH_LOCAL_SHARE = 1      #DMDSC 集群本地归档是否共享给远程节点作为远程归档。0 表示不共享,1 表示共享,默认值为 0。
ARCH_LOCAL_SHARE_CHECK=0  #是否进行 LOCAL 归档和 REMOTE 归档路径校验,默认值等于 ARCH_LOCAL_SHARE,1表示会校验。

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/LOCAL_ARCH_DSC1  
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024

[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = ZCDB_DSC0
ARCH_INCOMING_PATH = +DMDATA/LOCAL_ARCH_DSC0  #注意dsc集群的asm组名字
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 1024

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DW01 #实时归档目标实例名

备库:
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DSC0 #实时归档目标实例名,以DSC主库实际情况为准
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DSC1 #实时归档目标实例名,以DSC主库实际情况为准
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 512 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 1048 #单位Mb,0表示无限制,范围 1024~2147483647M

4.配置dmmal.ini

cp dmmal.ini dmmal.ini_bak_日期
3个节点dmmal内容相同:

MAL_CHECK_INTERVAL    =87  #线程检测间隔
MAL_CONN_FAIL_INTERVAL=180 #检测线程认定链路断开的时间
MAL_SYS_BUF_SIZE      =600 #MAL系统总内存大小限制
MAL_BUF_SIZE          =300 #单个MAL缓存大小限制
MAL_VPOOL_SIZE        =500 #MAL系统使用的内存初始化大小
MAL_COMPRESS_LEVEL    =0   #MAL消息压缩等级,0代表不进行消息压缩
[MAL_INST0]
MAL_INST_NAME        = DSC0
MAL_HOST           = *.*.*.* #内网
MAL_PORT           = 31246
MAL_INST_HOST         = *.*.*.* #外网
MAL_INST_PORT         = 5237
MAL_DW_PORT          = 52141
MAL_INST_DW_PORT       = 5276
MAL_LINK_MAGIC				 =1
[MAL_INST1]
MAL_INST_NAME         = DSC1
MAL_HOST           = *.*.*.*
MAL_PORT           = 31246
MAL_INST_HOST         = *.*.*.*
MAL_INST_PORT         = 5237
MAL_DW_PORT          = 52141
MAL_INST_DW_PORT       = 5276
MAL_LINK_MAGIC				 =1
[MAL_INST2]
MAL_INST_NAME         = ZCDB_DW01
MAL_HOST           = *.*.*.*
MAL_PORT           = 31246
MAL_INST_HOST         = *.*.*.*
MAL_INST_PORT         =  5237
MAL_DW_PORT          = 52141
MAL_INST_DW_PORT       = 5276

5.配置dmwatcher.ini

DSC节点1:
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #故障手动切换模式
DW_ERROR_TIME = 120 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 120 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /dm/data/dsc1/dm.ini #路径以实际为准
DCR_INI= /dm/data/dmdcr.ini #路径以实际为准
INST_STARTUP_CMD = /dm/bin/DmService1 #路径以实际为准
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD =0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

DSC节点2:
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #故障手动切换模式
DW_ERROR_TIME = 120 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 120 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /dm/data/dsc2/dm.ini #路径以实际为准
DCR_INI= /dm/data/dmdcr.ini #路径以实际为准
INST_STARTUP_CMD = /dm/bin/DmService2  #路径以实际为准
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD =0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

备库:标红的为注意或是补充的内容
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #手动切换模式
DW_ERROR_TIME = 120 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 120 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /dm/data/SS/dm.ini #dm.ini 配置文件路径
INST_STARTUP_CMD = /dm/bin/DmServiceSS  #命令行方式启动
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD =0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

6.配置监控器

vi $DM_HOME/bin/dmmonitor.ini
3个节点dmmonitor.ini内容相同:
MON_DW_CONFIRM    = 0   #确认监视器模式
MON_LOG_PATH    = /dm/data/log #监视器日志文件存放路径
MON_LOG_INTERVAL  = 60 #每隔 60 s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE   = 32 #每个日志文件最大 32 MB
MON_LOG_SPACE_LIMIT  = 0  #不限定日志文件总占用空间
[GRP1] 
 MON_INST_OGUID    = 453331 #组 GRP1 的唯一 OGUID 值
#以下配置为监视器到组 GRP_RW 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP对应dmmal.ini中的MAL_HOST,PORT对应 dmmal.ini中的MAL_DW_PORT
 MON_DW_IP     = *.*.*.*:52141/*.*.*.*:52141
 MON_DW_IP     = *.*.*.*:52141

7.备库归档还原

2节点主库确认无活跃会话后关闭数据库
【关库前执行SELECT CHECKPOINT(100);并确认数据库会话没有更新操作】
cd $DM_HOME/bin
./dmcssm
ep stop GRP_DSC

归档还原备库,归档需要包含开始备份时间点之后的所有归档
scp -P 10022 -r arch dmdba@容灾ip:/dmdata_backup/arch

--备库校验归档
./dmrachk arch_path=/dmdata_backup/arch
--备库使用归档还原备库
./dmrman
recover database '/dmdata/DMDB/dm.ini' with archivedir '/dmdata_backup/arch/';
recover database '/dmdata/DMDB/dm.ini' update db_magic;

8.mount方式启动数据库

启动完成后修改

节点1操作就好
修改OGUID和修改DSC主库数据库模式为Primary:
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
ALTER DATABASE primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

修改OGUID和修改备库数据库模式为Standby:
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);

9.启动守护进程

DSC节点1:
cp /dmdbms/bin/service_template/DmWatcherService /dmdbms/bin/DmWatcherServiceZCDB_DSC0
vi /dmdbms/bin/DmWatcherServiceZCDB_DSC0
修改DM_HOME和INI_PATH的值
chmod 755 /dmdbms/bin/DmWatcherServiceZCDB_DSC0

DSC节点2:
cp /dmdbms/bin/service_template/DmWatcherService /dmdbms/bin/DmWatcherServiceZCDB_DSC1
vi /dmdbms/bin/DmWatcherServiceZCDB_DSC1
修改DM_HOME和INI_PATH的值
chmod 755 /dmdbms/bin/DmWatcherServiceZCDB_DSC1

备库:
cd /dmdbms/bin
cp /dmdbms/bin/service_template/DmWatcherService /dmdbms/bin/DmWatcherServiceZCDB_DW01
vi /dmdbms/bin/DmWatcherServiceZCDB_DW01
修改DM_HOME和INI_PATH的值
chmod 755 /dmdbms/bin/DmWatcherServiceZCDB_DW01
 
启动数据守护服务:
DSC0
/dmdbms/bin/DmWatcherServiceZCDB_DSC0 start
DSC1
/dmdbms/bin/DmWatcherServiceZCDB_DSC1 start
DW01
/dmdbms/bin/DmWatcherServiceZCDB_DW01 start

10.验证数据库

$ su - dmdba
$ /dmdbms/bin
$ ./dmmonitor dmmonitor.ini
show
守护进程状态 WSTATUS 为 OPEN,实例状态 ISTATUS 为 OPEN,归档类型 RTYPE 为 REALTIME,归档状态 RSTAT 为VALID。

11.测试同步不

标签:DM8DSC,dm,dmdba,ARCH,主备,ini,DCR,MAL,搭建
From: https://blog.csdn.net/ljjswd/article/details/139719370

相关文章

  • Rust 交叉编译环境搭建
    一、安装Rust1.官方安装$curl--proto'=https'--tlsv1.2https://sh.rustup.rs-sSf|sh安装时可能存在流量不稳定导致安装失败,可以更换源,使用国内的crates.io镜像。2.更换Rust镜像源进行安装(1)更换Rustup镜像源     修改~/.bashrc,追加如下内容exportR......
  • Gitlab搭建
    目录Gitlab1.使用docker部署gitlab2.登录gitlab2.1修改语言为中文2.3修改密码3.用户管理3.1创建用户4.配置ssh拉取代码4.1添加ssh密钥4.2测试拉取Gitlab1.使用docker部署gitlab[root@master~]#mkdir-p/data/gitlab/{config,logs,data}编写docker-compose.yaml......
  • ensp通过云连接VMware中Windows Server 2012 中搭建的DHCP服务器实现不同VLAN自动获取
    实验描述通过在ensp中搭建拓扑图实现在VLAN10获取192.168.1.0网段地址,VLAN10获取192.168.1.0网段地址,VLAN20获取192.168.2.0网段地址,VLAN30获取192.168.1.0网段地址,VLAN40获取192.168.4.0网段地址.WindowsServer2012搭建DHCP服务器开启VMware配置网卡信息选择为自定......
  • 小雅alist搭建教程
    先去服务器拉取小雅镜像可以利用github中的来拉取 拉取到本地后执行bash-c"$(curlhttp://docker.xiaoya.pro/update_new.sh)"然后本地就会出现小雅的docker容器获取阿里云token、opentoken、转存目录folderidtoken获取:获取网址: https://alist.nn.ci/zh/guide/drive......
  • 搭建服务端性能监控系统 Prometheus 详细指南
    前言在现代软件开发中,性能监控是确保系统稳定性和性能优化的重要环节。Prometheus是一个开源的系统监控和报警工具,广泛用于容器化环境和微服务架构。本指南将详细介绍如何在服务器上搭建Prometheus性能监控系统。安装Prometheus环境准备确保你的服务器上已经安装了以下......
  • 【云服务器介绍】选择指南 腾讯云 阿里云全配置对比 搭建web 个人开发 app 游戏服务器
    ​省流目录:适用于博客建站(2-4G)、个人开发/小型游戏[传奇/我的世界/饥荒](4-8G)、数据分析/大型游戏[幻兽帕鲁/雾锁王国]服务器(16-64G)1.京东云-618专属活动 官方采购季专属活动地址:京东云-618采购季服务器活动专区https://3.cn/20-J4jjX京东云又双叒降价了!活动页大改,增加两......
  • linux中搭建mysql服务
    下载mysql安装包wgethttps://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz解压压缩包tar-xvfmysql-5.7.27-linux-glibc2.12-x86_64.tar.gz#移动文件夹mvmysql-5.7.27-linux-glibc2.12-x86_64/usr/local/mysqlmysql用......
  • docker(ubuntu18.04) + 宿主机(ubuntu20.04) + ROS + 乐视三合一体感摄像头LeTMC-520
    参考链接:https://blog.csdn.net/weixin_45225720/article/details/1144642441.准备docker环境dockerpullhyeonjaegil/vins-monodockerrun-it--privileged--networkhost--gpusall\-v/tmp/.X11-unix:/tmp/.X11-unix\-eDISPLAY-eNVIDIA_VISIBLE_DEVIC......
  • 从0到1使用vite搭建react项目保姆级教程(持续更新中)
    一、vite创建react项目要使用Vite创建一个React项目,你需要按照以下步骤操作:1、确保你已经安装了Node.js(建议使用最新的稳定版本)。2、使用npm命令安装ViteCLI工具,再来创建项目npmcreatevite@latestmy-vite-app 3、运行上述命令后,按照提示选择“create-react-app”......
  • hbase-2.2.7分布式搭建
    hbase-2.2.7分布式搭建文档1、上传解压配置环境变量#1、解压tar-xvfhbase-2.2.7-bin.tar.gz.gz#2、配置环境变量vim/etc/profile#3、在最后增加配置exportHBASE_HOME=/usr/local/soft/hbase-2.2.7exportPATH=$PATH:$HBASE_HOME/bin#4、使环境变量剩下source......