达梦DSC及ODBC学习

本文详细介绍了如何搭建达梦DMDSC集群,包括设置共享磁盘、规划集群配置、初始化磁盘组、配置参数文件、启动服务、配置监视器以及模拟故障切换的过程。同时,提到了ODBC的配置步骤,包括安装、配置ODBC.INI和odbcinst.ini,并测试其可用性。
摘要由CSDN通过智能技术生成

 达梦DSC集群

1. 基本概念

1) 定义

DMDSC集群是一个多实例、单数据库的系统,主要由数据库和数据库实例、共享存储、本地存储、通信网络、以及集群控制软件DMCSS组成。多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、联机日志、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件就保存在共享存储上。

2) 与MPP对比

达梦大规模数据处理集群软件(DMMPP)是基于达梦数据库管理系统研发的完全对等无共享式的并行集群组件,支持将多个DM8节点组织为一个并行计算网络,对外提供统一的数据库服务,最多可支持1024个节点。DMMPP采用完全对等的无共享架构,每个数据库服务器称为一个EP,每个EP都是独立的数据库。该架构中各个EP节点的功能完全一样,用户可连接DMMPP系统内的任意一个EP节点进行数据操作。

达梦数据共享集群DMDSC目前已经支持到8节点共享存储集群,用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、联机日志、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件就保存在共享存储上。多个数据库实例可以同时访问、修改同一个数据库的数据。

DMMPP是分布式存储,采用完全对等的无共享架构,每个节点都是独立的数据库库,数据也是分布式存储,适合分析型应用场景。

DMDSC采用的是集中式存储,相关数据存储在同一磁盘设备中,适合交易型应用场景。

2. 搭建实操

1) 设置共享磁盘

在虚拟机中,新建磁盘供两个节点共同使用

磁盘空间必须提前完全置备,不可以采用厚置备延迟置零或者精简置备

将两台虚拟机共用一个虚拟磁盘文件,做到共享存储的效果

需要对虚拟机的vmx配置文件中添加如下参数,以保证虚拟机支持共享磁盘

scsi1.sharedBus = "virtual"

disk.locking = "false"

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"

diskLib.dataCacheMinReadAheadSize = "0"

diskLib.dataCachePageSize = "4096"

diskLib.maxUnsyncedWrites = "0"

disk.EnableUUID = "TRUE"

对磁盘进行分区,规划如下:

用途

空间规划(总共50GB)

sdb1用于dcr信息

100M

sdb2用于存放vote信息

100M

sdb3用于存放redo log

20480M

sdb4用于存放data

剩下的全部空间

当前共享磁盘容量小于2TB,故采用fdisk命令进行磁盘分区

使用命令刷新kernel识别磁盘信息使两个节点都识别到分区

partprobe /dev/sdb

使用如下命令挂载磁盘,两个节点都需要修改

修改/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"

使用命令再次刷新两个节点,重启后生效

2) 规划集群

A机器

B机器

业务IP

172.16.100.31

172.16.100.32

心跳IP

192.168.100.31

192.168.100.32

软件目录

/home/dmdba/

/home/dmdba/

安装目录

/home/dmdba/dmdbms

/home/dmdba/dmdbms

配置文件目录

/home/dmdba/config

/home/dmdba/config

归档日志目录

/home/dmdba/dmarch

/home/dmdba/dmarch

远程归档目录

/home/dmdba/dmarch_remote

/home/dmdba/dmarch_remote

备份目录

/home/dmdba/dmbak

/home/dmdba/dmbak

dmdcr_cfg

CSS

DCR_EP_NAME

CSS1_01

CSS1_02

DCR_EP_HOST

192.168.100.31

192.168.100.32

DCR_EP_PORT

5336

5337

ASM

DCR_EP_NAME

ASM1_01

ASM1_02

DCR_EP_HOST

192.168.100.31

192.168.100.32

DCR_EP_PORT

5436

5437

DB

DCR_EP_NAME

DSC1_01

DSC1_02

DCR_EP_PORT

5236

5236

DCR_CHECK_PORT

5536

5537

dmasvrmal

MAL_INST_NAME

ASM0

ASM1

MAL_HOST

192.168.100.31

192.168.100.32

MAL_PORT

5636

5637

dminit

PORT_NUM

5236

5236

MAL_HOST

192.168.100.31

192.168.100.32

MAL_PORT

5736

5737

归档上限

51200

51200

OGUID

453333

3) 配置参数文件

A. 配置dmdcr_cfg.ini(在两个节点分别配置)

DCR_N_GRP                = 3  #集群环境有多少个GROUP,范围:1~16

DCR_VTD_PATH             = /dev/raw/raw2

DCR_OGUID                = 453333

[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              = CSS1_01  #CSS节点名

DCR_EP_HOST              = 192.168.100.31  #心跳地址

DCR_EP_PORT              = 5336  #CSS端口

[GRP_CSS]

DCR_EP_NAME              = CSS1_02

DCR_EP_HOST              = 192.168.100.32

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              = ASM1_01  #ASM节点名,和dmasvrmalMAL_INST_NAME一致

DCR_EP_SHM_KEY           = 93360  #共享内存标识

DCR_EP_SHM_SIZE          = 10  #共享内存大小

DCR_EP_HOST              = 192.168.100.31  #心跳地址

DCR_EP_PORT              = 5436  #ASM端口

DCR_EP_ASM_LOAD_PATH     = /dev/raw

[GRP_ASM]

DCR_EP_NAME              = ASM1_02

DCR_EP_SHM_KEY           = 93361

DCR_EP_SHM_SIZE          = 10

DCR_EP_HOST              = 192.168.100.32

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              = DSC1_01  #实例名,和dm.iniINSTANCE_NAME一致

DCR_EP_SEQNO             = 0  #组内序号,不能重复

DCR_EP_PORT              = 5236  #实例端口,和dm.iniPORT_NUM一致

DCR_CHECK_PORT           = 5536  #DCR检查端口

[GRP_DSC]

DCR_EP_NAME              = DSC1_02

DCR_EP_SEQNO             = 1

DCR_EP_PORT              = 5236

DCR_CHECK_PORT           = 5537

B. 初始化磁盘组(仅在主节点配置)

使用dmasmcmd初始化磁盘组

ASM> create dcrdisk '/dev/raw/raw1' 'dcr'

ASM> create votedisk '/dev/raw/raw2' 'vote'

ASM> create asmdisk '/dev/raw/raw3' 'LOG0'

ASM> create asmdisk '/dev/raw/raw4' 'DATA0'

ASM> init dcrdisk '/dev/raw/raw1' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini' identified by 'admin1234'

ASM> init votedisk '/dev/raw/raw2' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini'

C.配置dmasvrmal.ini(在两个节点分别配置)

[MAL_INST1]

MAL_INST_NAME            = ASM1_01

MAL_HOST                 = 192.168.100.31  #心跳地址

MAL_PORT                 = 5636  #MAL监听端口

[MAL_INST2]

MAL_INST_NAME            = ASM1_02

MAL_HOST                 = 192.168.100.32

MAL_PORT                 = 5637

D.配置dmdcr.ini

主节点:

DMDCR_PATH                 = /dev/raw/raw1

DMDCR_MAL_PATH             = /home/dmdba/dmdbms/config/dmasvrmal.ini

DMDCR_SEQNO                = 0

DMDCR_AUTO_OPEN_CHECK      = 90

#DMDCR_ASM_RESTART_INTERVAL = 30  #CSS认定ASM故障重启的时间

#DMDCR_ASM_STARTUP_CMD      = /home/dmdba/dmdbms/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL  = 60  #CSS认定DSC故障重启的时间

#DMDCR_DB_STARTUP_CMD       = /home/dmdba/dmdbms/dmdbms/bin/dmserver path=/home/dmdba/dmdbms/config/dsc1_01_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

备节点:

DMDCR_PATH                 = /dev/raw/raw1

DMDCR_MAL_PATH             = /home/dmdba/dmdbms/config/dmasvrmal.ini

DMDCR_SEQNO                = 1

DMDCR_AUTO_OPEN_CHECK      = 90

#DMDCR_ASM_RESTART_INTERVAL = 30

#DMDCR_ASM_STARTUP_CMD      = /home/dmdba/dmdbms/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL  = 60

#DMDCR_DB_STARTUP_CMD       = /home/dmdba/dmdbms/dmdbms/bin/dmserver path=/home/dmdba/dmdbms/config/dsc1_02_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

E. 启动CSS,ASM服务(在两个节点分别启动)

启动CSS服务:

/home/dmdba/dmdbms/bin/dmcss DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

启动ASM服务:

/home/dmdba/dmdbms/bin/dmasmsvr DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

F. 创建DMASM磁盘组(仅在主节点配置)

/home/dmdba/dmdbms/bin/dmasmtool DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

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

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

G. 配置dminit.ini(在两个节点分别配置)

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

[DSC1_01]

config_path              = /home/dmdba/dmdbms/config/dsc1_01_config

port_num                 = 5236

mal_host                 = 192.168.100.31

mal_port                 = 5736

log_path                 = +DMLOG/log/dsc0_log01.log

log_path                 = +DMLOG/log/dsc0_log02.log

[DSC1_02]

config_path              = /home/dmdba/dmdbms/config/dsc1_02_config

port_num                 = 5236

mal_host                 = 192.168.100.32

mal_port                 = 5737

log_path                 = +DMLOG/log/dsc1_log01.log

log_path                 = +DMLOG/log/dsc1_log02.log

H. 初始化实例(仅在主节点进行)

初始化实例

/home/dmdba/dmdbms/bin/dminit control=/home/dmdba/dmdbms/config/dminit.ini

拷贝实例文件到备节点

scp -r /home/dmdba/dmdbms/config/dsc1_02_config dmdba@192.168.100.32:/home/dmdba/dmdbms/config/

I. 配置dmarch.ini(两个节点分别配置)

主节点:

修改dm.ini的ARCH_INI参数为1,开启归档

配置dmarch.ini:

[ARCHIVE_LOCAL]

ARCH_TYPE                = LOCAL

ARCH_DEST                = /home/dmdba/dmarch_01

ARCH_FILE_SIZE           = 1024

ARCH_SPACE_LIMIT         = 51200

[ARCHIVE_REMOTE]

ARCH_TYPE                = REMOTE

ARCH_DEST                = DSC1_02

ARCH_INCOMING_PATH       = /home/dmdba/dmarch_01_remote

ARCH_FILE_SIZE           = 1024

ARCH_SPACE_LIMIT         = 51200

备节点:

修改dm.ini的ARCH_INI参数为1,开启归档

配置dmarch.ini:

[ARCHIVE_LOCAL]

ARCH_TYPE                = LOCAL

ARCH_DEST                = /home/dmdba/dmarch_02

ARCH_FILE_SIZE           = 1024

ARCH_SPACE_LIMIT         = 51200

[ARCHIVE_REMOTE]

ARCH_TYPE                = REMOTE

ARCH_DEST                = DSC1_01

ARCH_INCOMING_PATH       = /home/dmdba/dmarch_02_remote

ARCH_FILE_SIZE           = 1024

ARCH_SPACE_LIMIT         = 51200

J.启动DMSERVER服务

主节点:

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/config/dsc1_01_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

备节点:

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/config/dsc1_02_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

此处遇到故障,提示如图

经过排查,将各配置文件中的有下划线“_”的名称进行了修改,然后重新初始化共享磁盘及实例后,完成服务正常启动

目前怀疑故障为字符”_”导致实例无法正常启动,下周再次实验进行验证

K. 注册CSS,ASM,DMSERVER服务

主节点:

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/config/dsc1_01_config/dm.ini -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC

备节点:

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/config/dsc1_02_config/dm.ini -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC

4) 配置监视器

配置dmcssm.ini

CSSM_OGUID = 453333

CSSM_CSS_IP = 192.168.100.31:5336

CSSM_CSS_IP = 192.168.100.32:5337

CSSM_LOG_PATH = /home/dmdba/dmdbms/log

CSSM_LOG_FILE_SIZE = 32

CSSM_LOG_SPACE_LIMIT = 0

使用dmcssm工具可以打开监视器

/home/dmdba/dmdbms/bin/dmcssm ini_path=/home/dmdba/dmdbms/data/DAMENG/dmcssm.ini

监视器常见命令

命令

含义

show

查看所有组的信息

show config

查看dmdcr_cfg.ini 的配置信息

show monitor

查看当前连接到主 CSS 的所有监视器信息

5) 模拟故障切换

被动切换

使用kill命令停止css0控制节点的数据库服务,可以查看到监视器的控制节点切换信息

此时show命令可以看到DB的控制节点已发生切换

在原控制节点CSS0上重启服务

使用show命令可以看到控制节点已恢复

二 ODBC配置

ODBC配置学习

1. 安装对应的包

安装gcc包

2. 无图形化界面安装odbc

./configure --enable-gui=no

3. 编译ODBC

4. 查看odbc版本

odbc_config --version

5. 查看ODBC配置文件路径

odbc_config --odbcini

odbcinst -j

6. 配置ODBC.INI

[dm8]

Desription = DM ODBC DSND

Driver = DM7 ODBC DRIVER

SERVER = localhost

UID = SYSDBA

PWD = SYSDBA

TCP_PORT = 5236

7. 配置odbcinst.ini

[DM8 ODBC DRIVER]

Description = ODBC DRIVER FOR DM8

DRIVER = /home/dmdba/dmdbms/bin/libdodbc.so

8. 测试ODBC

证明odbc可用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值