首页 > 数据库 > 国内数据库 > 达梦DMTDD透明分布式集群部署
|
计算节点 |
xx.xx.xx.170 |
前端库CSS及DSC |
|
xx.xx.xx.171 |
前端库CSS及DSC | |
|
存储节点 |
xx.xx.xx.173 |
存储服务器SS1 |
|
xx.xx.xx.174 |
存储服务器SS2 | |
|
日志节点 |
xx.xx.xx.172 |
目录服务器 后台库 日志服务器 |
#提前规划好需要部署的环境
# 注意关闭所有的服务器的防火墙
systemctl stop firewalld
# 首先在所有的节点上安装数据库软件
一、配置存储节点
(1) 分别在
2
台
SS
节点初始化
SS
并启动。我们这里以
SS1
为例
:
初始化:
[root@localhost /]# chown -R dmdba:dinstall /DM8
./dmdssinit path=/DM8 inst=SS1 port=35300 REGION_SIZE=2 DBF_SIZE=102400 RLOG_SIZE=128
./dmdssinit path=/DM8 inst=SS2 port=35300 REGION_SIZE=2 DBF_SIZE=102400 RLOG_SIZE=128
# 注意此参数 DBF_SIZE=102400 越大越好,最小 20G 否则在部署好之后就会在创建表空间的时候报错磁盘空间不足,因为一个宏区默认的大小就是 10G ,也就是说 10G 的大小初始化之后就满了。
# 完成之后就会在这个路径下生成这些文件。
(2 )启动DSS
方法一:临时启动
./dmdss path=/DM8/SS2/dss.ini
方法二:注册服务后启动
在其他 2 个 SS 节点重复以上操作。 注意替换实例名
建议把 DSS 注册成服务再用服务启动,用 root 执行如下命令进行注册
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmdss -p ss1 -dss_ini /DM8/SS1/dss.ini
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmdss -p ss2 -dss_ini /DM8/SS2/dss.ini
启动:
systemctl start DmDSSServicess1
systemctl start DmDSSServicess2
ps -ef|grep dmdss
二、日志节点操作
1 初始化后台库
./dminit path=/DM8 db_name=dcs_db instance_name=DCS_DB port_num=35200
# 成功安装
1.1 注册服务启动数据库
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p dcs -dm_ini /DM8/dcs_db/dm.ini
1.2 前台启动目录库
./dmserver /DM8/dcs_db/dm.ini
1.3 后台启动目录库
[root@localhost ~]# systemctl start DmServicedcs
# 启动数据库服务
ps -ef|grep dm.ini
1.4 初始化 TDD 环境
启动 DISQL, 初始化后台数据库的 DMTDD 环境
./disql SYSDBA/SYSDBA:35200
SP_DFS_DCS_INIT(1);
# 此时 DCS 默认端口为 3333 ,可以通过修改 DCS.INI 更改 DCS 的端口等信息
2 启动 DCS 服务
2.1 创建 dcs.key :
./dmdcs -init=1 user=SYSDBA PASSWORD=SYSDBA PATH=/DM8/scs.key
2.2 启动 DCS 的两种方法
( 1 )直接命令行前台启动:
./dmdcs server=xx.xx.xx.172:35200
( 2 )注册服务并启动:
注册服务时需要指定 dcs.ini 文件,默认没有该文件。所以该文件需要手动建立并添加内容。
编写 dcs.ini 文件
vi /DM8/dcs.ini
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmdcs -p dcs -server xx.xx.xx.172:35200 -dcs_ini /DM8/dcs.ini
启动 DCS :
systemctl start DmDCSServicedcs
3 添加 RS 和 SS
3.1 添加存储 SS 服务
使用 dmdcstool 工具添加 FD 和 SS ,注意这里 dmdcstool 必须连接的是 DCS ,而不是 RS ,注意端口号。
./dmdcstool host=xx.xx.xx.172 port_num=3333
DCS>add micro fault domain fd1
DCS>add micro fault domain fd2
DCS>add micro storage server SS1 (' xx.xx.xx.173' : 35300) in fd1
DCS>add micro storage server SS2 (' xx.xx.xx.174' : 35300) in fd2
DCS>alter storage server refresh size
DCS>alter storage server open
3.2 添加组和 RS
./dmdcstool host= xx.xx.xx.172 port_num=3333
# 还是在目录服务器里面添加
DCS>add group grp1
DCS>add rlog server "DRS" (' xx.xx.xx' : 3332) group grp1
注意
1
:
RS
和组是一对一的关系。
2
:若想支持多
RS
,这里需要创建多个组,然后把不同的
RS
添加到不同的组里。
3.3 启动 RS
在 /DM8 目录下创建 drs.ini 文件,并添加如下内容:
vi /DM8/drs.ini
NSTANCE_NAME = DRS # 实例名,默认 DRS
SYSTEM_PATH = /DM8/drs # 系统路径
PORT_NUM = 3332 #DRS 对外提供服务的监听端口,默认 333
# 该 PORT_NUM 值与上一步的 add rlog server 中的端口号一致
DCS_IP = xx.xx.xx.172 # 依赖的 DCS 的 IP
DCS_PORT = 3333 # 依赖的 DCS 的端口
MEMORY_POOL = 100 # 使用的内存池大小,单位 M
TASK_THREAD_NUM = 10 # 任务线程数
LOCAL_ARCH_PATH = /DM8/larch # 本地归档目录
启动 RS, 同样有两种方式:
( 1 )命令行直接启动:
./dmdrs path=/DM8/drs.ini
( 2 )注册服务并启动:
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmdrs -p drs -drs_ini /DM8/drs.ini
[root@localhost ~]# systemctl start DmDRSServicedrs
3.4 创建存储目录
./dmdcstool host= xx.xx.xx .172 port_num=3333
DCS>create dir '/dameng/dsc/asmdisks'
三、搭建两节点 DSC
1 在两个节点的 /DM8 下面分别创建 dsc 目录
1.1 创建 dsc 目录
[dmdba@localhost DM8]$ mkdir dsc
# 注意这个目录建在哪叫什么名字都可以,看自己的安装习惯。只在一个计算节点上创建即可,之后的文件我们都可以放到这个路径下,然后一起复制给另一个节点。
1.2 编写 dmdcr_cfg.ini 配置文件
# 注意:此文件非常重要如果参数写错可能导致出现各种问题,一定要对比好。
vi /DM8/dsc/dmdcr_cfg.ini
DCR_N_GRP = 2
DCR_VTD_PATH = $/dameng/dsc/asmdisks/vtd.asm
DCR_OGUID = 65535
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 10
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = xx.xx.xx.170
DCR_EP_PORT = 35641
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = xx.xx.xx.171
DCR_EP_PORT = 35641
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 10
[GRP_DSC]
DCR_EP_NAME = DSC0
DCR_EP_PORT = 35610
DCR_CHECK_PORT = 35657
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_PORT = 35610
DCR_CHECK_PORT = 35657
1.3 创建 dmdfs.ini 配置文件
vi /DM8/dsc/dmdfs.ini
DFS_HOST = xx.xx.xx.172
DFS_PORT = 3332
DFS_COPY_NUM = 2
2 使用 dmasmcmd 工具初始化
./dmasmcmd dfs_ini=/DM8/dsc/dmdfs.ini
ASM>create emptyfile '/DM8/asmdisks/dcr.asm' size 32
ASM>create emptyfile '/DM8/asmdisks/vtd.asm' size 32
ASM>create dcrdisk '/DM8/asmdisks/dcr.asm' 'dcr' 32
ASM>create votedisk '/DM8/asmdisks/vtd.asm' 'vtd' 32
ASM>init dcrdisk '/DM8/asmdisks/dcr.asm' from '/DM8/dmdcr_cfg.ini' identified by 'hust4400'
ASM>init votedisk '/DM8/asmdisks/vtd.asm' from '/DM8/dmdcr_cfg.ini'
# 将本地文件系统 dcr/vtd 存入 RS
ASM>init ddfsdcr '$/dameng/dsc/asmdisks/dcr.asm' from '/DM8/asmdisks/dcr.asm'
ASM>init ddfsvtd '$/dameng/dsc/asmdisks/vtd.asm' from '/DM8/asmdisks/vtd.asm'
3 创建 dminit.ini 配置文件
vi /DM8/dsc/ dminit.ini
db_name = dsc
system_path = /DM8
system = $/dsc/system.dbf
system_size = 128
roll = $/dsc/roll.dbf
roll_size = 128
main = $/dsc/main.dbf
main_size = 128
ctl_path = $/dsc/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = $/dameng/dsc/asmdisks/dcr.asm
dcr_seqno = 0
auto_overwrite = 0
page_size = 8
extent_size = 32
CASE_SENSITIVE =0
UNICODE_FLAG =1
dfs_db_name = db_dsc
share_flag = 1
dfs_flag = 1
dfs_path = $/dameng
dfs_host = xx.xx.xx.172
dfs_port = 3332
dfs_copy_num = 2
[dsc0]
config_path = /DM8/dsc/dsc0
port_num = 35610
mal_host = xx.xx.xx.170
mal_port = 35680
[dsc1]
config_path = /DM8/dsc/dsc1
port_num = 35610
mal_host = xx.xx.xx.171
mal_port = 35680
4 初始化库
哪个几点上有 dminit.ini 文件就在哪个节点上操作。
./dminit control=/DM8/dminit.ini
5 将 dsc 目录复制到另一个节点
[dmdba@localhost bin]$ scp -r /DM8/dsc dmdba@ xx.xx.xx.171:/DM8/
6 编写 dmdcr 文件
# 文件放在哪不重要主要是要有权限,注意两个计算几点都要编写,注意文件名需要不一样来区分实例以及里面的内容参数是不一样的。
( 1 ) vi /DM8/dsc/dmdcr0.ini
DMDCR_PATH = $/dameng/dsc/asmdisks/dcr.asm
DMDCR_SEQNO = 0
# 添加到节点 1
( 2 ) vi /DM8/dsc/dmdcr1.ini
DMDCR_PATH = $/dameng/dsc/asmdisks/dcr.asm
DMDCR_SEQNO = 1
7 向 DMTDD 添加前端数据服务器
在任意 DSC 节点启动 dmdcstool ,连接 DCS 并执行添加命令:
./dmdcstool host= xx.xx.xx.172 port_num=3333
DCS>add data server dsc0 group grp1 database db_dsc arch_dir '/DM8/dsc/dsc0/arch_dsc0'
DCS>add data server dsc1 group grp1 database db_dsc arch_dir '/DM8/dcs/dsc1/arch_dsc1'
# 在这个步骤最重要的是这两个服务名,这两个服务名的参数主要是根据 dminit.ini 和 dmdcr_cfg.ini 文件中的参数来定义的。
8 启动 CSS 服务
( 1 )计算节点点 1
./dmcss dcr_ini=/DM8/dsc/dmdcr0.ini dfs_ini=/DM8/dmdfs.ini
( 2 )计算节点 2
./dmcss dcr_ini=/DM8/dsc/dmdcr1.ini dfs_ini=/DM8/dsc/dmdfs.ini
# 在启动 CSS 服务之前 需要重新执行一下 ./dmasmcmd 初始化的操作。
./dmasmcmd dfs_ini=/DM8/dsc/dmdfs.ini
ASM>init dcrdisk '/DM8/asmdisks/dcr.asm' from '/DM8/dsc/dmdcr_cfg.ini' identified by 'hust4400'
ASM>init votedisk '/DM8/asmdisks/vtd.asm' from '/DM8/dsc/dmdcr_cfg.ini'
ASM>init ddfsdcr '$/dameng/dsc/asmdisks/dcr.asm' from '/DM8/asmdisks/dcr.asm'
ASM>init ddfsvtd '$/dameng/dsc/asmdisks/vtd.asm' from '/DM8/asmdisks/vtd.asm'
9 启动DSC两个计算节点
(1)启动节点1
./dmserver /DM8/dsc/dsc0/dm.ini dcr_ini=/DM8/dsc/dmdcr0.ini
( 2 )启动节点 2
./dmserver /DM8/dsc/dsc1/dm.ini dcr_ini=/DM8/dsc/dmdcr1.ini
10 测试连接
结束:到这里一套五节点的DMTDD环境就安装完成了,达梦TDD是集高可用、分部式存储、数据守护等多种高级特性于一身的集群部署方案。具体的DMTDD原理请参考:
https://www.cndba.cn/dave/article/3735
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69978820/viewspace-2722260/ ,如需转载,请注明出处,否则将追究法律责任。