JOE_达梦共享集群DMDSC搭建

一、 DMDSC  搭建

 

1.1  环境准备 

 

硬件 : 两台相同配置机器, 2G  内存, 100G  本地磁盘, 2  块网卡,另有一块共享磁盘  100G 。

操作系统 :RedHat Linux 64 位。

网络配置 :eth0  网卡为  10.0.2.x  内网网段,两台机器分别为 10.0.2.11/10.0.2.12;eth1 为 192.168.242.x 外网网段,两台机器分别为192.168.242.11/192.168.242.12 。内网网段用于  MAL  通讯。

DM  各种工具位于目录 :/dm7/dmdbms/bin 。 配置文件位于目录 :/data 。

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

 

1.2  搭建  2  节点  DMDSC(DMASM)

1.  节点一在共享磁盘上裸设备划分

1)  输入  fdisk /dev/vdb

2)  依次输入  n -> p -> 1 -> 回车 -> +100M -> 回车,完成第一块磁盘划分 

3)  依次输入  n -> p -> 2 -> 回车 -> +100M -> 回车,完成第二块磁盘划分 

4)  依次输入  n -> p -> 3 -> 回车 -> +2048M -> 回车,完成第三块磁盘划分 

5)  依次输入  n -> p -> 4 -> 回车 -> 回车 -> 回车,完成第四块磁盘划分

6)  编辑 /etc/udev/rules.d/60-raw.rules  文件,增加以下语句 :

ACTION=="add", KERNEL=="vdb1", RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add", KERNEL=="vdb2", RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", KERNEL=="vdb3", RUN+="/bin/raw /dev/raw/raw3 %N"

ACTION=="add", KERNEL=="vdb4", RUN+="/bin/raw /dev/raw/raw4 %N"

ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"

最后执行  start_udev ,完成裸设备绑定

 

节点二:

执行 partprobe

ll /dev/vdb*  是否全部存在

编辑 /etc/udev/rules.d/60-raw.rules  文件,增加以下语句 :

ACTION=="add", KERNEL=="vdb1", RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add", KERNEL=="vdb2", RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", KERNEL=="vdb3", RUN+="/bin/raw /dev/raw/raw3 %N"

ACTION=="add", KERNEL=="vdb4", RUN+="/bin/raw /dev/raw/raw4 %N"

ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"

最后执行  start_udev ,完成裸设备绑定

 

备注:可以通过  blockdev --getsize64 /dev/raw/raw1  命令查看裸设备大小

 

2.  配置 dmdcr_cfg.ini 文件,保存到 /data/ 目录下面。后续 DMASMCMD 工具执行  init  语句会使用到。

vi 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 =2

DCR_GRP_DSKCHK_CNT = 60

[GRP_CSS]

DCR_EP_NAME = CSS0

DCR_EP_HOST = 10.0.2.11

DCR_EP_PORT = 9341

[GRP_CSS]

DCR_EP_NAME = CSS1

DCR_EP_HOST = 10.0.2.12

DCR_EP_PORT = 9343

[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 = 10

DCR_EP_HOST = 192.168.242.11

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

DCR_EP_HOST = 192.168.242.12

DCR_EP_PORT = 9351

DCR_EP_ASM_LOAD_PATH = /dev/raw

[GRP]

DCR_GRP_TYPE = DB

DCR_GRP_NAME = GRP_RAC

DCR_GRP_N_EP = 2

DCR_GRP_DSKCHK_CNT = 60

[GRP_RAC]

DCR_EP_NAME = RAC0

DCR_EP_SEQNO = 0

DCR_EP_PORT = 5236

DCR_CHECK_PORT = 9741

[GRP_RAC]

DCR_EP_NAME = RAC1

DCR_EP_SEQNO = 1

DCR_EP_PORT = 5236

DCR_CHECK_PORT = 9742

 

3.  使用 DMASMCMD 工具初始化

su - dmdba

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 '/data/dmdcr_cfg.ini' identified by 'abcd'

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

 

备注:可以启动  dmasmcmd  工具,依次输入以上命令,或者将命令写入  asmcmd.txt 文件,执行dmasmcmd        script_file=asmcmd.txt ,只需在一台机器执行即可。

用户没有指定脚本文件,则 dmasmcmd 进入交互模式运行,逐条解析、运行命令 ; 用户指定脚本文件(比如 asmcmd.txt )则以行为单位读取文件内容,并依次执行,执行完成以后,自动退出  dmasmcmd 工具。脚本文件必须以 “#asmscriptfile” 开头,否则认为是无效脚本文件 ; 脚本中其它行以 “#” 表示注释 ; 脚本文件大小不超过 1M 。

 

 

4.  准备 DMASM 的 MAL 配置文件 ( 命名为 dmasvrmal.ini) ,使用 DMASM 的所有节点都要配置,内容完全一样,保存到 /data 目录下

vi dmasvrmal.ini  (所有节点)

 

[MAL_INST1]

MAL_INST_NAME = ASM0

MAL_HOST = 10.0.2.11

MAL_PORT  = 7236

[MAL_INST2]

MAL_INST_NAME = ASM1

MAL_HOST = 10.0.2.12

MAL_PORT = 7237

 

5.  准备 dmdcr.ini 配置文件,保存到 /data 目录下面

DMASM  的两个节点分别配置  dmdcr.ini 。 dmdcr_path  相同, dmdcr_seqo  分别为  0  和  1 。

 

vi dmdcr.ini

node01:

 

DMDCR_PATH = /dev/raw/raw1

DMDCR_MAL_PATH = /data/dmasvrmal.ini

DMDCR_SEQNO = 0

DMDCR_ASM_RESTART_INTERVAL = 0

DMDCR_ASM_STARTUP_CMD = /dm7/dmdbms/bin/dmasmsvr dcr_ini=/data/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /dm7/dmdbms/bin/dmserver path=/data/rac0_config/dm.ini dcr_ini=/data/dmdcr.ini

 

node02:

 

DMDCR_PATH = /dev/raw/raw1

DMDCR_MAL_PATH = /data/dmasvrmal.ini

DMDCR_SEQNO = 1

DMDCR_ASM_RESTART_INTERVAL = 0

DMDCR_ASM_STARTUP_CMD = /dm7/dmdbms/bin/dmasmsvr dcr_ini = /data/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /dm7/dmdbms/bin/dmserver path = /data/rac1_config/dm.ini dcr_ini = /data/dmdcr.ini

 

6.  启动 DMCSS 、 DMASM 服务程序

在节点一和节点二先后分别启动  dmcss 、 dmasmsvr  程序 (初次配置可以使用前台的方式启动)

 

节点一:

su - dmdba

nohup dmcss DCR_INI=/data/dmdcr.ini &

nohup dmasmsvr DCR_INI=/data/dmdcr.ini &

备注:如果  DMCSS  配置有自动拉起  dmasmsvr  的功能,可以等待  DMCSS  自动拉起  dmasmsvr 程序,不需要手动启动。

 

节点二:

su - dmdba

nohup dmcss DCR_INI=/data/dmdcr.ini &

nohup dmasmsvr DCR_INI=/data/dmdcr.ini &

 

7.  使用 dmasmtool 工具创建 DMASM 磁盘组

一个节点执行即可,通常一节点:

su - dmdba

dmasmtool DCR_INI=/data/dmdcr.ini

输入下列语句创建  DMASM  磁盘组 :

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

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

 

8.  配置 dminit.ini 文件,保存到 /data 目录

 

vi dminit.ini ( 一个节点配置即可,通常一节点 )

 

db_name = rac

system_path = +DMDATA/data

system = +DMDATA/data/rac/system.dbf

system_size = 128

roll = +DMDATA/data/rac/roll.dbf

roll_size = 128

main = +DMDATA/data/rac/main.dbf

main_size = 128

ctl_path = +DMDATA/data/rac/dm.ctl

ctl_size = 8

log_size = 256

dcr_path = /dev/raw/raw1

dcr_seqno = 0

auto_overwrite = 1

[RAC0]

config_path = /data/rac0_config

port_num = 5236

mal_host = 10.0.2.11

mal_port = 9340

log_path = +DMLOG/log/rac0_log01.log

log_path = +DMLOG/log/rac0_log02.log

[RAC1]

config_path = /data/rac1_config

port_num = 5237

mal_host = 10.0.2.12

mal_port = 9341

log_path = +DMLOG/log/rac1_log01.log

log_path = +DMLOG/log/rac1_log02.log

 

9.  使用 dminit 初始化 DB 环境

节点一启动  dminit  工具初始化数据库

su - dmdba

dminit control=/data/dminit.ini

 

备注: dminit  执行完成后,会在  config_path  目录 (/data/rac0_config  和  /data/rac1_config) 下生成配置文件  dm.ini  和 dmmal.ini。

 

10.  启动数据库服务器

将节点一  /data/rac1_config  目录拷贝到节点二相同目录下,再分别启动  dmserver  即可完成  DMDSC  集群搭建。

 

备注:如果  DMCSS  配置有自动拉起  dmserver  的功能,可以等待  DMCSS  自动拉起实例,不需要手动启动。 如果需要手动启动,可参考下面的操作步骤。

节点一:

nohup dmserver /data/rac0_config/dm.ini dcr_ini=/data/dmdcr.ini &

节点二:

nohup dmserver /data/rac1_config/dm.ini dcr_ini=/data/dmdcr.ini &

 

二、故障自动重连

当用户连接到  DM  共享存储集群时,实际上是连接到集群中的一个实例,用户的所有增删改查操作都是由该实例完成的。但是如果该实例出现故障,那么用户连接会被转移到其他正常实例。而这种转移对用户是透明的,用户的增删改查继续返回正确结果,感觉不到异常。这种功能就是故障自动重连。实现故障自动重连的前提条件是在配置  DM  共享存储集群的时候,必须配置连接服务名。

 

配置 DMDSC 集群,一般要求配置连接服务名,以实现故障自动重连。连接服务名可以在 DM 提供的 JDBC 、 DPI 等接口中使用,连接数据库时指定连接服务名,接口会随机选择 一个  IP  进行连接,如果连接不成功或者服务器状态不正确,则顺序获取下一个  IP  进行连接,直至连接成功或者遍历了所有 IP 。可以通过编辑 dm_svc.conf  文件,配置连接服务名。 dm_svc.conf  配置文件在  DM  安装时生成, Windows  平台下位于 %SystemRoot%\system32  目录, Linux  平台下位于  /etc  目录。

 

配置一个名为  dmdsc_svc  的连接服务名,使用  dmdsc_svc  连接  DMDSC  集群中的数据库,即可实现故障自动重连。

 

客户端配置:

vi /etc/dm_svc.conf

dmdsc_svc=(192.168.242.11:5236,192.168.242.12:5237)

SWITCH_TIME=(10000)

SWITCH_INTERVAL=(1000)

 

三、监控  DMDSC

DMDSC 集群的运行情况可以通过 DMCSSM 监视器进行查看,也可以查询 DMDSC 相关的动态视图获取更详细的信息。DMCSSM 监视器支持一些控制命令,可以用来启动、关闭 DMDSC  集群,还可以进行手动控制节点故障处理和节点重加入。

 

同一个  DMDSC  集群中,允许最多同时启动  10  个监视器,建议监视器放在独立的第三 方机器上,避免由于节点间网络不稳定等原因导致监视器误判节点故障。

下面举例说明监视器的配置步骤,以上面搭建的  2  节点  DMDSC  环境为基础,配置对应的监视器,监视器放在第三方机器上,为 linux 操作系统, dmcssm.ini  配置文件路径为 /data ,可根据实际情况调整配置环境及路径。

 

1.  配置  dmcssm.ini  文件

 

vi dmcssm.ini ( 监控节点上 )

 

CSSM_OGUID = 63635

CSSM_CSS_IP = 10.0.2.11:9341

CSSM_CSS_IP = 10.0.2.12:9343

CSSM_LOG_PATH =/data/log

CSSM_LOG_FILE_SIZE = 32

CSSM_LOG_SPACE_LIMIT = 0

 

2.  启动  dmcssm  监视器

 

dmcssm ini_path=/data/dmcssm.ini

 

 

四、服务注册

服务类型  -t:

 dmap 、  dmamon 、  dmserver  、 dmwatch  、 dmrww  、 dmwmon  、 dmwatcher 、 dmmonitor  、 dmasmsvr  、 dmcss  、dmcssm

 

参数文件  -i:

dmserver : dm.ini

dmwatch : dmwatch.ini

dmrww : dmrww.ini

dmwmon : dmwmon.ini

dmwatcher : dmwatcher.ini

dmmonitor : dmmonitor.ini

dmasmsvr : dmdcr.ini

dmcss : dmdcr.ini

dmcssm : dmcssm.ini

 

dmcss:

./dm_service_installer.sh -t dmcss -i /data/dmdcr.ini -p dmcss

 

dmasmsvr:

./dm_service_installer.sh -t dmasmsvr -i /data/dmdcr.ini -p dmasmsvr

 

dmserver:

./dm_service_installer.sh -t dmserver -i /data/rac0_config/dm.ini -d /data/dmdcr.ini -p DMSERVER

 

dmcssm:

./dm_service_installer.sh -t dmcssm -i /data/dmcssm.ini -p dmcssm

 

dmmonitor:

./dm_service_installer.sh -t dmmonitor -i /data/dmcssm.ini -p dmmonitor

 

删除服务:

./dm_service_uninstaller.sh -n DmMonitorServicedmmonitor

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