达梦8 DSC架构

用来做个人测试记录的

一、基础概念

 

达梦8 DSC架构_第1张图片

1、基础概念

(1)DM 共享存储数据库集群的英文全称 DM Data Shared Cluster,简称 DMDSC。

(2)多个数据库实例同时访问、操作同一数据库

(3)数据文件、控制文件在集群系统中只有一份

2、DMDSC 集群

(1)DMDSC 集群由若干数据库实例(Instance)组成,实例间通过网络(MAL 链路)连接

(2)通过DMCSS,集群同步服务的协助,共同操作一个数据库

3、DMCSS 集群

(1)每个集群节点都需要有一个 DMCSS 服务。这些 DMCSS 服务又共同构成一个 DMCSS 集群

(2)DMCSS 是 DM 集群同步服务的简称,是 DMDSC 集群应用的基础,负责集群环境中(3)节点的启动、故障处理、节点重加入等操作

4、DMASM集群

(1)专用的分布式文件系统。支持多个节点同时访问、修改数据文件

(2)要求 DMASM 站点数和 DMCSS 站点数一致,且只能存在一个 DMCSS 组和一个 DMASM 组。这些 DMASM 站点共同构成了一个 DMASM 集群。

5、DCR

(1)DCR 是 DM 集群注册表的简称

(2)存储、维护集群配置的详细信息,整个集群环境共享 DCR 配置信息

(3)DCR 必须存储在集群中所有节点都可以访问到的共享存储中,并且只支持裸设备。在一个集群环境中只能配置一个 DCR 磁盘

6、表决磁盘

(1)DM 集群通过 Voting Disk 进行心跳检测

(2)用来传递命令,在集群的不同状态(启动、节点故障、节点重加入等)DMCSS 通过 Voting Disk 传递控制命令

(3)只支持裸设备。在一个集群环境中只能配置一个表决磁盘。

7、HeartBeat (心跳机制)

(1)通过Voting Disk的Disk Heartbeat。

8、与单节点相比使用限制

(1)支持定时器,但只有控制节点上配置的定时器生效。只支持脱机配置定时器,不支

持联机配置

(2)支持作业,但只有控制节点上支持执行作业

(3)不支持 HUGE 表

(4)不支持外部表

(5)不支持类型别名相关操作

(6)不支持 table 级别的 space limit 功能

(7)不支持全文索引、词库相关操作

(8)不支持安全版本

(9)不支持 DBMS_ALERT、DBMS_LOCK 包

(10)不支持数据复制

(11)不能与 MPP 集群混合使用

(12)不支持为表空间文件指定 mirror_path

(13)不支持闪回查询,不允许打开闪回功能

二、DSC搭建

1、存储配置

2、udev设置权限

cat >> /etc/udev/rules.d/60-raw.rules << EOF

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="dminstall", MODE="660"

EOF

udevadm control --reload-rules

systemctl restart systemd-udev-trigger

3、准备配置文件

(1)dmdcr_cfg.ini

cat >> /opt/dmdbms/data/dmdcr_cfg.ini << EOF

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 = CSS0

DCR_EP_HOST = 10.10.1.3

DCR_EP_PORT = 9341

[GRP_CSS]

DCR_EP_NAME = CSS1

DCR_EP_HOST = 10.10.1.3

DCR_EP_PORT = 9342

[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

DCR_EP_SHM_KEY = 93360

DCR_EP_SHM_SIZE = 20

DCR_EP_HOST = 10.10.1.3

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 = 10.10.1.3

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 = 7236

DCR_CHECK_PORT = 9741

[GRP_DSC]

DCR_EP_NAME = DSC1

DCR_EP_SEQNO = 1

DCR_EP_PORT = 7237

DCR_CHECK_PORT = 9742

EOF

(2)dmasvrmal.ini

各节点相同

cat >> /opt/dmdbms/data/dmasvrmal.ini << EOF

[MAL_INST1]

MAL_INST_NAME = ASM0

MAL_HOST = 10.10.1.3

MAL_PORT = 8236

[MAL_INST2]

MAL_INST_NAME = ASM1

MAL_HOST = 10.10.1.3

MAL_PORT = 8237

EOF

(3)dmdcr.ini

cat > /opt/dmdbms/data/DSC0_config/dmdcr.ini << EOF

DMDCR_PATH = /dev/raw/raw1

DMDCR_MAL_PATH =/opt/dmdbms/data/dmasvrmal.ini  #使用的 MAL 配置文件路径

DMDCR_SEQNO = 0

#ASM 重启参数,命令行方式启动

DMDCR_ASM_RESTART_INTERVAL = 0

DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr dcr_ini=/opt/dmdbms/data/dmasvrmal.ini

#DB 重启参数,命令行方式启动

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini

EOF

cat > /opt/dmdbms/data/DSC1_config/dmdcr.ini << EOF

DMDCR_PATH = /dev/raw/raw1

DMDCR_MAL_PATH =/opt/dmdbms/data/dmasvrmal.ini  #使用的 MAL 配置文件路径

DMDCR_SEQNO = 1

#ASM 重启参数,命令行方式启动

DMDCR_ASM_RESTART_INTERVAL = 0

DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr dcr_ini=/opt/dmdbms/data/dmasvrmal.ini

#DB 重启参数,命令行方式启动

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini

EOF

(4)dminit.ini (初始化DSC数据库必须)

cat >> /opt/dmdbms/data/dminit.ini << EOF

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 = 0

[DSC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应

config_path = /opt/dmdbms/data/DSC0_config

port_num = 7236

mal_host = 10.10.1.3

mal_port = 9350

log_path = +DMLOG/log/dsc0_log01.log

log_path = +DMLOG/log/dsc0_log02.log

[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应

config_path = /opt/dmdbms/data/DSC1_config

port_num = 7237

mal_host = 10.10.1.3

mal_port = 9352

log_path = +DMLOG/93log/dsc1_log01.log

log_path = +DMLOG/log/dsc1_log02.log

EOF

4、创建初始化asm磁盘

dmasmcmd

create dcrdisk '/dev/raw/raw1' 'DCR'

create votedisk '/dev/raw/raw2' 'VOTE'

create asmdisk '/dev/raw/raw3' 'LOG'

create asmdisk '/dev/raw/raw4' 'DATA1'

#create asmdisk '/dev/raw/raw1' 'DATA2'

init dcrdisk '/dev/raw/raw1' from '/opt/dmdbms/data/dmdcr_cfg.ini' identified by 'dameng123'

init votedisk '/dev/raw/raw2' from '/opt/dmdbms/data/dmdcr_cfg.ini'

5、启动集群服务

(1)节点1

dmcss DCR_INI=/opt/dmdbms/data/DSC0_config/dmdcr.ini

dmasmsvr DCR_INI=/opt/dmdbms/data/DSC0_config/dmdcr.ini

(2)节点2

dmcss DCR_INI=/opt/dmdbms/data/DSC1_config/dmdcr.ini

dmasmsvr DCR_INI=/opt/dmdbms/data/DSC1_config/dmdcr.ini

6、创建ASM磁盘组

(1)任一实例使用dmasmtool工具创建

dmasmtool DCR_INI=/opt/dmdbms/data/DSC0_config/dmdcr.ini

create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'

create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

#alter diskgroup 'DMDATA' add asmdisk '/dev/asmdisk/asm-dmdata2'

7、初始化数据库实例(只在单个节点执行)

dminit control=/opt/dmdbms/data/dminit.ini

##拷贝到dsc1节点

#scp -r /opt/dmdbms/data/DSC1_config/ [email protected]:/opt/dmdbms/data/

8、启动实例

dmserver /opt/dmdbms/data/DSC0_config/dm.ini  dcr_ini=/opt/dmdbms/data/DSC0_config/dmdcr.ini

dmserver /opt/dmdbms/data/DSC1_config/dm.ini  dcr_ini=/opt/dmdbms/data/DSC1_config/dmdcr.ini

9、验证

(1)查看节点信息

达梦8 DSC架构_第2张图片

 

(2)dm_svr.ini配置服务名访问

DSC=(10.10.1.3:7236, 10.10.1.3:7237)

SWITCH_TIME=(10000)

SWITCH_INTERVAL=(10)

达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心

你可能感兴趣的:(达梦,数据库)