04_DMDSC安装部署

DMDSC:DM DATA SHARED CLUSTER即共享存储集群,架构类似RAC

一、部署

01| 规划

硬件:两台相同配置机器,2G 内存,100G 本地磁盘,2 块网卡,一块共享磁盘最少20G,或者多块共享磁盘

  • Windows版本VM需要在两台虚拟机路径下xxx.vmx文件中加入disk.locking = "FALSE" 参数,否则后启动的虚拟机会启动失败
  • 共享磁盘分配:前三块大小最少分配100M、100M、2G
  • 如果只有一块共享磁盘,需要划分四个分区,大小要求同上
  • 使用裸设备部署环境

真实的生产环境中,建议至少配置两块共享磁盘,分别用来存放联机日志文件和数据文件。

1.存储规划

添加4块共享磁盘
image.png
共享磁盘添加方法:

  • A 正常添加磁盘,【高级选项】–勾选【预先分配磁盘空间】
  • B 添加磁盘选择,选择【添加现有磁盘】,并选择【与创建此虚拟磁盘的虚拟机共享此虚拟磁盘】,目录选择到A服务器目录
  • 修改xx.vmx,在末尾添加以下内容
 #shared disks configure
disk.locking="false"
diskLib.dataCacheMaxSize="0"
diskLib.dataCacheMaxReadAheadSize="0"
diskLib.DataCacheMinReadAheadSize="0"
diskLib.dataCachePageSize="4096"
diskLib.maxUnsyncedWrites="0"
scsi0:1.deviceType="disk"
scsi0:1.mode = "independent-persistent"
scsi0.sharedBus = "VIRTUAL"

image.png

笔记本操作系统MAC
虚拟机软件VMfusion
虚拟机操作系统CentOS7.5
共享磁盘1(放dcr信息,100M就够了)1G
共享磁盘2(放vote信息,100M就够了)1G
共享磁盘3(放redo log,不少于4G)5G
共享磁盘4(放data)50G

2. 虚拟机规划

为A、B服务器添加两块网卡,一块使用hostonly模式,一块使用桥接-自动选择模式
image.png

A机器B机器
业务IP192.168.3.128192.168.3.129
心跳IP192.168.3.128192.168.3.129
软件目录/home/dmdba/dm8/dm_home/home/dmdba/dm8/dm_home
实例目录/home/dmdba/dm8/data/dsc/home/dmdba/dm8/data/dsc
配置文件目录/home/dmdba/dm8/data/dsc/config/home/dmdba/dm8/data/dsc/config
归档日志目录/home/dmdba/dm8/data/dsc/arch_0/home/dmdba/dm8/data/dsc/arch_1
远程归档目录/home/dmdba/dm8/data/dsc/arch_0_remote/home/dmdba/dm8/data/dsc/arch_1_remote
备份目录/home/dmdba/dm8/data/dsc/bak/home/dmdba/dm8/data/dsc/bak
归档上限M5120051200
OGUID4533145331
A机器B机器
dmdcr_cfg配置---
CSSDCR_EP_NAMECSS0CSS1

DCR_EP_HOST192.168.3.128192.168.3.129

DCR_EP_PORT53365337
ASMDCR_EP_NAMEASM0ASM1

DCR_EP_HOST192.168.3.128192.168.3.129

DCR_EP_PORT54365437
DBDCR_EP_NAMEDSC0DSC1

DCR_EP_PORT52365236

DCR_CHECK_PORT55365537
dmasvrmal配置---
MAL_INST_NAMEASM0ASM1

MAL_HOST192.168.3.128192.168.3.129

MAL_PORT56365637
dminit配置---
PORT_NUM52365236

MAL_HOST192.168.3.128192.168.3.129

MAL_PORT57365737

## 02| 存储准备

1. 划分共享磁盘–A

# 划分共享磁盘将磁盘空间全部分配:n--回车--回车--回车--w
fdisk /dev/sdb  
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde

2. 绑定裸设备–A/B

# A B 虚机先查看下磁盘状态是否同步了
[root@loaclhost ~]# partprobe
[root@loaclhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8,  0 May 11 03:29 /dev/sda
brw-rw----. 1 root disk 8,  1 May 11 03:29 /dev/sda1
brw-rw----. 1 root disk 8,  2 May 11 03:29 /dev/sda2
brw-rw----. 1 root disk 8, 16 May 11 03:29 /dev/sdb
brw-rw----. 1 root disk 8, 17 May 11 03:29 /dev/sdb1
brw-rw----. 1 root disk 8, 32 May 11 03:29 /dev/sdc
brw-rw----. 1 root disk 8, 33 May 11 03:29 /dev/sdc1
brw-rw----. 1 root disk 8, 48 May 11 03:29 /dev/sdd
brw-rw----. 1 root disk 8, 49 May 11 03:29 /dev/sdd1
brw-rw----. 1 root disk 8, 64 May 11 03:29 /dev/sde
brw-rw----. 1 root disk 8, 65 May 11 03:29 /dev/sde1
# 绑定裸设备
cat >/etc/udev/rules.d/60-raw.rules <<-EOF
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
EOF
partprobe


# 重启AB服务器
reboot

[root@loaclhost ~]# ll /dev/raw*
total 0
crw-rw----. 1 root root 162, 1 May 11 03:28 raw1
crw-rw----. 1 root root 162, 2 May 11 03:28 raw2
crw-rw----. 1 root root 162, 3 May 11 03:28 raw3
crw-rw----. 1 root root 162, 4 May 11 03:28 raw4
crw-rw----. 1 root disk 162, 0 May 11 02:57 rawctl

# 查看所设备大小
[root@whx02 ~]# blockdev --getsize64 /dev/raw/raw*
1072693248
1072693248
5367660544
53686042624

📢注意: 在绑定裸设备的时候,正常应该执行的命令:
partprobe && start_udev
但是Centos7 执行start_udev会报错(如下),直接重启服务器,使操作重新加载下udev服务

[root@loaclhost ~]# start_udev
-bash: start_udev: command not found

03| DSC搭建

0. 安装软件&创建实例

📢注意:log_size 不能大于asm log共享磁盘的1/4,我这里给的大小是5g,这里给log_size配置1G

dminit PATH=/home/dmdba/dm8/data LOG_SIZE=1024 EXTENT_SIZE=32 PAGE_SIZE=32 CHARSET=1 DB_NAME=dsc INSTANCE_NAME=dsc

1. 配置dmdcr_cfg.ini–A/B

cat > /home/dmdba/dm8/data/dsc/config/dmdcr_cfg.ini <<-EOF
  DCR_N_GRP                = 3  #集群环境有多少个GROUP,范围:1~16
  DCR_VTD_PATH             = /dev/raw/raw2
  DCR_OGUID                = 45331

[GRP]  #新建一个GROUP
  DCR_GRP_TYPE             = CSS  #组类型(CSS/ASM/DB)
  DCR_GRP_NAME             = GRP_CSS  #组名
  DCR_GRP_N_EP             = 2  #组内节点个数
  DCR_GRP_DSKCHK_CNT       = 60  #磁盘心跳容错时间,单位:秒
[GRP_CSS]
  DCR_EP_NAME              = CSS0  #CSS节点名
  DCR_EP_HOST              = 192.168.3.128  #心跳地址
  DCR_EP_PORT              = 5336  #CSS端口
[GRP_CSS]
  DCR_EP_NAME              = CSS1
  DCR_EP_HOST              = 192.168.3.129
  DCR_EP_PORT              = 5337

[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              = ASM0  #ASM节点名,和dmasvrmal的MAL_INST_NAME一致
  DCR_EP_SHM_KEY           = 93360  #共享内存标识
  DCR_EP_SHM_SIZE          = 10  #共享内存大小M
  DCR_EP_HOST              = 192.168.3.128  #心跳地址
  DCR_EP_PORT              = 5436  #ASM端口
  DCR_EP_ASM_LOAD_PATH     = /dev/raw
[GRP_ASM]
  DCR_EP_NAME              = ASM1
  DCR_EP_SHM_KEY           = 93361
  DCR_EP_SHM_SIZE          = 10
  DCR_EP_HOST              = 192.168.3.129
  DCR_EP_PORT              = 5437
  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  #实例名,和dm.ini的INSTANCE_NAME一致
  DCR_EP_SEQNO             = 0  #组内序号,不能重复
  DCR_EP_PORT              = 5236  #实例端口,和dm.ini的PORT_NUM一致
  DCR_CHECK_PORT           = 5536  #DCR检查端口
[GRP_DSC]
  DCR_EP_NAME              = DSC1
  DCR_EP_SEQNO             = 1
  DCR_EP_PORT              = 5236
  DCR_CHECK_PORT           = 5537
EOF

# 创建上述目录--A
mkdir /home/dmdba/dm8/data/dsc/{config,arch_0,arch_0_remote} -p

# 创建上述目录--B
mkdir /home/dmdba/dm8/data/dsc/{config,arch_1,arch_1_remote} -p

2. 初始化磁盘组–A

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/dm8/data/dsc/config/dmdcr_cfg.ini' identified by 'admin1234'
init votedisk '/dev/raw/raw2' from '/home/dmdba/dm8/data/dsc/config/dmdcr_cfg.ini'

# 注意,如果修改了dmdcr_cfg.ini,需要重新执行ini命令

3. 创建dmasvrmal.ini–A/B

cat  > /home/dmdba/dm8/data/dsc/config/dmasvrmal.ini<<-EOF
[MAL_INST1]
  MAL_INST_NAME            = ASM0
  MAL_HOST                 = 192.168.3.128  #心跳地址
  MAL_PORT                 = 5636  #MAL监听端口
[MAL_INST2]
  MAL_INST_NAME            = ASM1
  MAL_HOST                 = 192.168.3.129
  MAL_PORT                 = 5637 
EOF

4. 创建dmdcr.ini

–A
cat > /home/dmdba/dm8/data/dsc/config/dmdcr.ini <<-EOF
DMDCR_PATH                 = /dev/raw/raw1
DMDCR_MAL_PATH             = //home/dmdba/dm8/data/dsc/config/dmasvrmal.ini
DMDCR_SEQNO                = 0
DMDCR_AUTO_OPEN_CHECK      = 90

#DMDCR_ASM_RESTART_INTERVAL = 30  #CSS认定ASM故障重启的时间
#DMDCR_ASM_STARTUP_CMD      = /home/dmdba/dm8/dm_home/bin/dmasmsvr dcr_ini=/home/dmdba/dm8/data/dsc/config/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL  = 60  #CSS认定DSC故障重启的时间
#DMDCR_DB_STARTUP_CMD       = /home/dmdba/dm8/dm_home/bin/dmserver path=/home/dmdba/dm8/data/dsc/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/dm8/data/dsc/config/dmdcr.ini
EOF

–B
cat > /home/dmdba/dm8/data/dsc/config/dmdcr.ini <<-EOF
DMDCR_PATH                 = /dev/raw/raw1
DMDCR_MAL_PATH             = /home/dmdba/dm8/data/dsc/config/dmasvrmal.ini
DMDCR_SEQNO                = 1
DMDCR_AUTO_OPEN_CHECK      = 90

#DMDCR_ASM_RESTART_INTERVAL = 30  #CSS认定ASM故障重启的时间
#DMDCR_ASM_STARTUP_CMD      = /home/dmdba/dm8/dm_home/bin/dmasmsvr dcr_ini=/home/dmdba/dm8/data/dsc/config/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL  = 60  #CSS认定DSC故障重启的时间
#DMDCR_DB_STARTUP_CMD       = /home/dmdba/dm8/dm_home/bin/dmserver path=/home/dmdba/dm8/data/dsc/config/dsc1_config/dm.ini dcr_ini=/home/dmdba/dm8/data/dsc/config/dmdcr.ini
EOF

注意:当前为手动拉起A机器和B机器的ASM和DMSERVER服务。待集群配置完成后,再修改为自动拉起(删除dmdcr.ini中红色井号)。

5. 前台启动CSS、ASM 服务–A/B

# 注意,这里dmcss需要使用绝对路径,或者切到bin目录执行
cd $DM_HOME/bin/
screen dmcss DCR_INI=/home/dmdba/dm8/data/dsc/config/dmdcr.ini


# 输出如下:
DMCSS V8
DMCSS IS READY
[CSS]: 设置EP CSS0[0]为控制节点
...
# AB分别新开窗口执行
 screen 
 cd $DM_HOME/bin
 dmasmsvr DCR_INI=/home/dmdba/dm8/data/dsc/config/dmdcr.ini

# 输出如下
ASM SELF EPNO:0
DMASMSVR V8
dmasmsvr task worker thread startup
the ASM server is Ready.
check css cmd: START NOTIFY, cmd_seq: 2
check css cmd: EP START, cmd_seq: 3

ASM Control Node EPNO:0
check css cmd: EP OPEN, cmd_seq: 8
check css cmd: EP REAL OPEN, cmd_seq: 11

6. 创建ASM磁盘组–A

$DM_HOME/bin/dmasmtool DCR_INI=/home/dmdba/dm8/data/dsc/config/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

7. 创建dminit.ini–A/B

cat > /home/dmdba/dm8/data/dsc/config/dminit.ini <<-EOF
  db_name                  = dsc
  system_path              = +DMDATA/data
  main                     = +DMDATA/data/dsc/main.dbf
  main_size                = 128
  roll                     = +DMDATA/data/dsc/roll.dbf
  roll_size                = 128
  system                   = +DMDATA/data/dsc/system.dbf
  system_size              = 128
  ctl_path                 = +DMDATA/data/dsc/dm.ctl
  ctl_size                 = 8
  log_size                 = 2048
  dcr_path                 = /dev/raw/raw1
  dcr_seqno                = 0
  auto_overwrite           = 1
  PAGE_SIZE                = 32
  CASE_SENSITIVE           = Y
  CHARSET                  = 0

[DSC0]
  config_path              = /home/dmdba/dm8/data/dsc/config/dsc0_config
  port_num                 = 5236
  mal_host                 = 192.168.3.128
  mal_port                 = 5736
  log_path                 = +DMLOG/log/dsc0_log01.log
  log_path                 = +DMLOG/log/dsc0_log02.log 
[DSC1]
  config_path              = /home/dmdba/dm8/data/dsc/config/dsc1_config
  port_num                 = 5236
  mal_host                 = 192.168.3.129
  mal_port                 = 5737
  log_path                 = +DMLOG/log/dsc1_log01.log
  log_path                 = +DMLOG/log/dsc1_log02.log
EOF

8. 初始化实例–A

$DM_HOME/bin/dminit control=/home/dmdba/dm8/data/dsc/config/dminit.ini

#  输出如下:
#  initdb V8
#  db version: 0x7000c
#  file dm.key not found, use default license!
#  License will expire on 2022-11-11
#  Normal of FAST
#  Normal of DEFAULT
#  Normal of RECYCLE
#  Normal of KEEP
#  Normal of ROLL
#  
#   log file path: +DMLOG/log/dsc0_log01.log
#  
#  
#   log file path: +DMLOG/log/dsc0_log02.log
#  
#  
#   log file path: +DMLOG/log/dsc1_log01.log
#  
#  
#   log file path: +DMLOG/log/dsc1_log02.log
#  
#  FILE "/home/dmdba/dm8/data/dsc/config/dsc0_config/dm.ini" has already existed
#  FILE "/home/dmdba/dm8/data/dsc/config/dsc0_config/sqllog.ini" has already existed
#  FILE "/home/dmdba/dm8/data/dsc/config/dsc1_config/dm.ini" has already existed
#  FILE "/home/dmdba/dm8/data/dsc/config/dsc1_config/sqllog.ini" has already existed
#  FILE "+DMDATA/data/dsc/dm.ctl" has already existed
#  FILE "+DMLOG/log/dsc0_log01.log" has already existed
#  FILE "+DMLOG/log/dsc0_log02.log" has already existed
#  write to dir [+DMDATA/data/dsc].
#  create dm database success. 2022-05-12 10:23:37
#  

# 拷贝配置文件到B
dmdba@whx01 10.12.10.121 12:33:05 [pwd:~/dm8/data/dsc/config]$ scp -r  ~/dm8/data/dsc/config/dsc1_config whx02:~/dm8/data/dsc/config

9. 修改dmarch.ini

–A
# 手动配置归档
# --修改dm.ini
sed -i '/ARCH_INI/s/= 0/= 1/' /home/dmdba/dm8/data/dsc/config/dsc0_config/dm.ini


# --创建dmarch.ini
cat > /home/dmdba/dm8/data/dsc/config/dsc0_config/dmarch.ini <<-EOF
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL
  ARCH_DEST                = /home/dmdba/dm8/data/dsc/arch_0
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200
[ARCHIVE_REMOTE]
  ARCH_TYPE                = REMOTE
  ARCH_DEST                = DSC1
  ARCH_INCOMING_PATH       = /home/dmdba/dm8/data/dsc/arch_0_remote
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200
EOF

–B

sed -i '/ARCH_INI/s/= 0/= 1/' /home/dmdba/dm8/data/dsc/config/dsc1_config/dm.ini

# --创建dmarch.ini
# --创建dmarch.ini
cat > /home/dmdba/dm8/data/dsc/config/dsc1_config/dmarch.ini <<-EOF
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL
  ARCH_DEST                = /home/dmdba/dm8/data/dsc/arch_1
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200
[ARCHIVE_REMOTE]
  ARCH_TYPE                = REMOTE
  ARCH_DEST                = DSC0
  ARCH_INCOMING_PATH       = /home/dmdba/dm8/data/dsc/arch_1_remote
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200
EOF

10. 启动DMSEVER

A机器
$DM_HOME/bin/dmserver /home/dmdba/dm8/data/dsc/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/dm8/data/dsc/config/dmdcr.ini

B机器
$DM_HOME/bin/dmserver /home/dmdba/dm8/data/dsc/config/dsc1_config/dm.ini dcr_ini=/home/dmdba/dm8/data/dsc/config/dmdcr.ini

11. 注册CSS、ASM、DMSERVER后台服务

A机器
sudo $DM_HOME/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dm8/data/dsc/config/dmdcr.ini -p CSS
sudo $DM_HOME/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dm8/data/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
sudo $DM_HOME/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dm8/data/dsc/config/dsc0_config/dm.ini -dcr_ini /home/dmdba/dm8/data/dsc/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC

B机器
sudo $DM_HOME/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dm8/data/dsc/config/dmdcr.ini -p CSS
sudo $DM_HOME/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dm8/data/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
sudo $DM_HOME/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dm8/data/dsc/config/dsc1_config/dm.ini -dcr_ini /home/dmdba/dm8/data/dsc/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC


备注:删除自启
$DM_HOME/script/root/dm_service_uninstaller.sh -n DmCSSServiceCSS 
$DM_HOME/script/root/dm_service_uninstaller.sh -n DmASMSvrServiceASM
$DM_HOME/script/root/dm_service_uninstaller.sh -n DmServiceDSC

04| 配置监视器–A/B

cat > $DM_HOME/bin/dmcssm.ini <<-EOF
CSSM_OGUID                 = 45331
CSSM_CSS_IP                = 192.168.3.128:5336
CSSM_CSS_IP                = 192.168.3.129:5337
CSSM_LOG_PATH              = ../log
CSSM_LOG_FILE_SIZE         = 512
CSSM_LOG_SPACE_LIMIT       = 2048
EOF

注册监视器(选做)

sudo $DM_HOME/script/root/dm_service_installer.sh -t dmcssm -cssm_ini $DM_HOMEs/bin/dmcssm.ini -p Monitor
备注:删除自启
sudo $DM_HOME/script/root/dm_service_uninstaller.sh -n DmCSSMonitorServiceMonitor

启动监视器

# 1. 使用注册服务名方式启动监视器
$DM_HOME/bin/DmCSSMonitorServiceMonitor start

# 2. 前台启动
$DM_HOME/bin/dmcssm INI_PATH=/opt/dsc/dmdbms/bin/dmcssm.ini

监视器常用操作

命令						 含义
show						查看所有组的信息
show config			查看dmdcr_cfg.ini 的配置信息
show monitor		查看当前连接到主 CSS 的所有监视器信息

show命令输出解析

group[]行显示的内容为: 
name: 	集群名称
seq: 		集群编号 
type: 	集群类型[CSS/ASM/DB] 
control_node: 	集群内控制节点 
ep 			行显示的内容为: 
inst_name: 	节点实例名 
seqno: 	节点编号 
port: 	实例对外提供服务的端口号 
mode: 	模式[控制/普通] 
sys_status: 	实例系统状态[MOUNT/OPEN 等] 
vtd_status: 	实例的集群状态[WORKING/SHUTDOWN/SYSHALT 等] 
is_ok: 	实例在集群内是否正常,ERROR 的节点暂时从集群内剔除 
active: 实例是否活动 
guid:	 	实例的 guid 值 
ts: 		实例的时间戳

二、启停

01| 启动集群–A/B

修改配置文件,将拉起命令的注释去掉

sed -i 's/#DMDCR_ASM_RESTART_INTERVAL/DMDCR_ASM_RESTART_INTERVAL/g' /home/dmdba/dm8/data/dsc/config/dmdcr.ini
sed -i 's/#DMDCR_ASM_STARTUP_CMD/DMDCR_ASM_STARTUP_CMD/g' /home/dmdba/dm8/data/dsc/config/dmdcr.ini
sed -i 's/#DMDCR_DB_RESTART_INTERVAL/DMDCR_DB_RESTART_INTERVAL/g' /home/dmdba/dm8/data/dsc/config/dmdcr.ini
sed -i 's/#DMDCR_DB_STARTUP_CMD/DMDCR_DB_STARTUP_CMD/g' /home/dmdba/dm8/data/dsc/config/dmdcr.ini
# 1. 启动DMCSS --A/B
$DM_HOME/bin/DmCSSServiceCSS start

CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER。

02| 关闭集群–A/B

A/B机器DMSERVER→A/B机器ASM→A/B机器CSS

$DM_HOME/bin/DmServiceDSC stop
$DM_HOME/bin/DmASMSvrServiceASM stop
$DM_HOME/bin/DmCSSServiceCSS stop

📢注意:

  1. DSC正常停库必须2节点同时停止,根据目前脚本配置,CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER,所以停止DMSERVER和ASM后,要尽快停止CSS,避免被自动拉起。
  2. ASM服务在任意节点停止,2个节点的ASM服务都会停止,为了保险起见,可以两边都执行停止命令。
  3. 服务全部停止后,要检查后台进程是否全部停止。

03| 查看集群节点

# 查看节点信息
SQL> select * from V$DSC_EP_INFO;

行号     EP_NAME EP_SEQNO    EP_GUID              EP_TIMESTAMP         EP_MODE      EP_STATUS
---------- ------- ----------- -------------------- -------------------- ------------ ---------
1          DSC0    0           777621574            777623881            Control Node OK
2          DSC1    1           777622883            777625186            Normal Node  OK

# 当前事务的锁信息
SQL> select * from v$dsc_lock;
行号     EP_SEQNO    ADDR                 TRX_ID               LTYPE  LMODE BLOCKED     TABLE_ID    ROW_IDX              IGN_FLAG   
---------- ----------- -------------------- -------------------- ------ ----- ----------- ----------- -------------------- -----------
1          0           139972136923376      11034                OBJECT IS    0           150994944   0                    1
2          1           139972136926848      11039                OBJECT IS    0           150994944   0                    1
3          0           139945427595504      11034                OBJECT IS    0           150994945   0                    1
4          1           139945427598976      11039                OBJECT IS    0           150994945   0                    1
5          0           139945427602448      11034                OBJECT IS    0           7           0                    1

三、 服务名配置

Linux环境:dm_svc.conf放在应用服务器/etc目录下。
Windows32环境:dm_svc.conf放在应用服务器System32目录下。
Windows64环境:dm_svc.conf放在应用服务器System32和SysWOW64目录下。

# dm_svc.conf 文件
TIME_ZONE=(+8:00)
LANGUAGE=(cn)
DSC1=(172.16.1.1:5236,172.16.1.2:5236)

[DSC1]
LOGIN_ENCRYPT=(0)
SWITCH_TIME=(20)
SWITCH_INTERVAL=(2000)

选项说明

1. SWITCH_TIMES
检测到数据库实例故障时,接口在服务器之间切换的次数;超过设置次数没有连接到有效数据库时,断开连接并报错。有效值范围 1~9223372036854775807,默认值为 12. SWITCH_INTERVAL
表示在服务器之间切换的时间间隔,单位为毫秒,有效值范围
1~9223372036854775807,默认值为 2003.LOGIN_DSC_CTRL
服务名连接数据库时是否只选择 DMDSC 控制节点的库。0:否;1:是。默认值为 04. EP_SELECTOR
连接数据库时采用何种模型建立连接。
  0:依次选取列表中的不同节点建立连接,使得所有连接均匀地分布在各个节点上;默认值为 01:选择列表中最前面的节点建立连接,只有当前节点无法建立连接时才会选择下一个节点进行连接。

5. AUTO_RECONNECT
连接发生异常或一些特殊场景下连接处理策略。
  0:关闭连接;默认值为 0
  1:当连接发生异常时自动切换到其他库,无论切换成功还是失败都会抛一个 SQLException,用于通知上层应用进行事务执行失败时的相关处理;
  2:配合 EP_SELECTOR=1 使用,如果服务名列表前面的节点恢复了,将当前连接切换到前面的节点上。

6.CHECK_FREQ
JDBC 专用。服务名连接数据库时,循环检测连接是否需要重置的时间间隔。即每间隔设定时间检测连接对象是否发生改变,若连接对象发生改变,JDBC 连接会自动重置到新对象。单位 ms,有效值范围 0~2147483647。默认值 300000

四、应用连接

<DRIVER>dm.jdbc.driver.DmDriver</DRIVER>
<URL>jdbc:dm://DSC1:5236?compatibleMode=oracle</URL>

附:友情链接链接:

达梦技术社区:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值