达梦DM8DSC共享集群部署与日常维护

一、DMDSC概念(Oracle:RAC、ASM):

DMDSC集群是一个多实例、单数据库的系统,具有高可用性、高吞吐量、负载均衡等特性。
多个数据库实例可以同时访问、修改同一个数据库的数据。
用户可以登录集群中的任意任意一个数据库实例,获得完整的数据库服务。
数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件。
各个节点有自己独立的联机日志和归档日志,这些文件就保存在共享存储上。
DMDSC集群得以实现的重要基础就是共享存储。
DM支持的共享存储有两种:裸设备、DMASM。
DMDSC集群主要由数据库和数据库实例、共享存储、本地存储、通信网络以及集群控制软件DMCSS组成。
图片取自官网
共享存储:
DMDSC集群中,为了实现多个实例同时访问、修改数据,要求将数据文件、控制文件、日志文件保存在共享存储上;
DMDSC支持使用裸设备或DMASM文件系统作为共享存储;
配置DMDSC集群需要的DCR、Voting disk ,也必须保存在共享存储上,目前仅支持裸设备存放DCR和Voting disk 。
本地存储:
DMDSC集群中,本地存储用来保存配置文件记录数据库实例配置信息的dm.ini、dmarch.ini、dmmal.ini本地归档日志、远程归档日志。
通信网络:
DMDSC集群中,网络分为内部网络和公共网络两个部分。
实际应用中一般还存在服务器到共享存储的网络。
内部网络用于数据库实例之间交换信息和数据,MAL链路使用的就是内部网络。
公共网络用于对外提供数据库服务,用户使用公共网络地址登录DM DSC集群访问数据库。
DMASM:
DM分布式文件系统(DMASM),来管理裸设备的磁盘和文件,DMASM存储管理的最小单元,AU的大小为1M,DMASM提供了基本的数据文件访问接口,可以有效降低DMDSC共享存储的维护难度,DMASM提供的主要功能包括:
分布式管理(多台机器并发访问DMASM磁盘和文件,提供全局并发控制);
磁盘组管理(支持创建和删除磁盘组,一个磁盘组可以包含一个或多个DMASM磁盘;磁盘组支持在线增加DMASM磁盘,实现动态存储扩展);
文件系统(支持创建、删除、截断文件,支持创建目录,支持动态扩展文件);
完善、高效的访问接口(dmasmapi);
通用功能的管理工具(dmasmtool);
Voting disk(心跳):
DMCSS实例启动后,每隔1秒向Voting disk指定区域写入心跳信息(包括自身的状态、时间戳等),表示DMCSS节点处于活动状态。
DMCSS(集群控制):
DMCSS是一款集群控制软件,专门负责监控集群中各个节点的运行状态。
DMCSS主要功能包括:管理集群的启动和关闭、控制节点故障处理以及管理节点重新加入流程的管理。
DMCSS控制节点通过一系列的集群指令,控制被监控对象的启动、故障处理、状态切换等。
如何选举DMCSS控制节点:
DMCSS启动后向Voting disk写入信息,并读取其他DMCSS节点的信息,如果DMCSS集群中还没有活动的控制节点,则选举DMCSS控制节点。
DMCSS选举的原则有两条:
1.先启动的DMCSS作为控制节点
2.DMCSS同时启动,则选择节点号小的节点作为控制节点
选取监控对象控制节点:
DMCSS控制节点启动后,会为基于DMASM裸设备的DMDSC集群指定控制节点。DMCSS选取监控对象控制节点的原则有两条:
只有一个活动节点,则设置活动节点为控制节点;
存在多个控制节点,则选择节点号小的节点为控制节点;
节点故障处理与重新加入:
DMCSS控制节点检测到实例故障后,首先向故障实例的Voting disk区域写入kill命令(所有实例一旦发现kill命令,无条件自杀),避免故障实例仍然处于活动状态,引起脑裂,然后启动故障处理流程,不同类型实例的故障处理流程㛮一些差异;如果检测到故障节点恢复,DMCSS会通知控制节点启动节点重加入流程。

二、DMDSC安装前规划:

1 台(共享存储):4G 内存,2CPU,100G,win2019,192.168.63.130
2 台 ( DMDSC) : 4G 内 存, 2/4CPU , 100G, RHEL7.6,192.168.63.131/132
数据库名:wjdb
实例名:wjdb1/wjdb2
安装前的规划 :
操作系统:RHEL 7.6
软件名称:达梦8
时区:+0800
内存:4g
OS 用户名/密码:root/root,dmdba/dmdba
系统组:dinstall
数据库 SID:wjdb1/wjdb2
数据库名称:wjdb
归档文件:无
数据库版本:DM Database Server x64 V8
DM_HOME 目录:/dm/dmdbms/dm8
数据库监听端口:5236
数据库字符集:GB18030
数据库用户:sysdba 密码/dameng123
页大小:8k
日志组:3 个 256M

三、DMDSC共享存储安装与配置、DMDSC安装配置、日常维护:

数据库安装(略)

su - dmdba

vi /dm/dmdbms/dm8/data/dmdcr_cfg.ini 
DCR_N_GRP = 3 
DCR_VTD_PATH = /dev/raw/raw2 
DCR_OGUID = 63635 
[GRP] 
DCR_GRP_TYPE = CSS 
DCR_GRP_NAME = wjcss 
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[wjcss] 
DCR_EP_NAME = wjcss1 
DCR_EP_HOST = 192.168.63.131 
DCR_EP_PORT = 9541 
[wjcss] 
DCR_EP_NAME = wjcss2 
DCR_EP_HOST = 192.168.63.132 
DCR_EP_PORT = 9542 
[GRP] 
DCR_GRP_TYPE = ASM 
DCR_GRP_NAME = wjasm 
DCR_GRP_N_EP = 2 
DCR_GRP_DSKCHK_CNT = 60 
[wjasm] 
DCR_EP_NAME = wjasm1 
DCR_EP_SHM_KEY = 93360 
DCR_EP_SHM_SIZE = 10 
DCR_EP_HOST = 192.168.63.131 
DCR_EP_PORT = 9641 
DCR_EP_ASM_LOAD_PATH = /dev/raw
[wjasm] 
DCR_EP_NAME = wjasm2 
DCR_EP_SHM_KEY = 93361 
DCR_EP_SHM_SIZE = 10 
DCR_EP_HOST = 192.168.63.132 
DCR_EP_PORT = 9642
DCR_EP_ASM_LOAD_PATH = /dev/raw 
[GRP] 
DCR_GRP_TYPE = DB 
DCR_GRP_NAME = wjdsc 
DCR_GRP_N_EP = 2 
DCR_GRP_DSKCHK_CNT = 60 
[wjdsc] 
DCR_EP_NAME = wjdsc1 
DCR_EP_SEQNO = 0 
DCR_EP_PORT = 5236 
DCR_CHECK_PORT = 9741 
[wjdsc] 
DCR_EP_NAME = wjdsc2 
DCR_EP_SEQNO = 1 
DCR_EP_PORT = 5236 
DCR_CHECK_PORT = 9742

su - dmdba
[dmdba@linux131 ~]$ dmasmcmd DMASMCMD V8
ASM>

create dcrdisk '/dev/raw/raw1' 'dcr' 
create votedisk '/dev/raw/raw2' 'vote' 
create asmdisk '/dev/raw/raw3' 'logdisk1' 
create asmdisk '/dev/raw/raw4' 'datadisk1' 
create asmdisk '/dev/raw/raw5' 'datadisk2'  init dcrdisk '/dev/raw/raw1' from	'/dm/dmdbms/dm8/data/dmdcr_cfg.ini' 	identified by 'dmdsc' 
init votedisk '/dev/raw/raw2' from	'/dm/dmdbms/dm8/data/dmdcr_cfg.ini

192.168.63.131/192.168.63.132:

vi /dm/dmdbms/dm8/data/dmasvrmal.ini

[MAL_INST1] 
MAL_INST_NAME = wjasm1 
MAL_HOST = 192.168.63.131 
MAL_PORT = 7236 
[MAL_INST2] 
MAL_INST_NAME = wjasm2 
MAL_HOST = 192.168.63.132 
MAL_PORT = 7237 

vi /dm/dmdbms/dm8/data/dmdcr.ini

DMDCR_PATH = /dev/raw/raw1 #dmasmsvr 使用的 MAL 配置文件路径 
DMDCR_MAL_PATH =/dm/dmdbms/dm8/data/dmasvrmal.ini 
DMDCR_SEQNO = 0 
#第一台为 0,第二台改为 1 
#DMDCR_SEQNO = 1 

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

DMDCR_ASM_RESTART_INTERVAL = 0 
DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmasmsvr 
DCR_INI=/dm/dmdbms/dm8/data/dmdcr.ini 

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

DMDCR_DB_RESTART_INTERVAL = 0 
DMDCR_DB_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver 
path=/dm/dmdbms/dm8/data/wjdsc1_config/dm.ini 
DCR_INI=/dm/dmdbms/dm8/data/dmdcr.ini 

#第二台:

#DMDCR_DB_STARTUP_CMD = /dm/dmdbms/dm8/bin/dmserver 
path=/dm/dmdbms/dm8/data/wjdsc2_config/dm.ini 
DCR_INI=/dm/dmdbms/dm8/data/dmdcr.ini 

关闭 virbr0:

ifconfig,检查是不是有 virbr0,一定要禁用,否则影响后面的使用:
virbr0 是 KVM 默认创建的一个 Bridge,其作用是为连接其上的虚机网
卡提供 NAT 访问外网的功能。
禁用端口

ifconfig virbr0 down 

删除端口

brctl delbr virbr0 

virbr0 是由 libvirtd 服务创建,关闭服务:

systemctl disable libvirtd

root:
192.168.63.131:

/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmcss -dcr_ini 
/dm/dmdbms/dm8/data/dmdcr.ini -p wjdsc1 
/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmasmsvr 
-dcr_ini /dm/dmdbms/dm8/data/dmdcr.ini -p wjdsc1 -y  DmCSSServicewjdsc1 

第二台:192.168.63.132:

/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmcss -dcr_ini 
/dm/dmdbms/dm8/data/dmdcr.ini -p wjdsc2 
/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmasmsvr 
-dcr_ini /dm/dmdbms/dm8/data/dmdcr.ini -p wjdsc2 -y DmCSSServicewjdsc2 

192.168.63.131:

root:

systemctl start DmCSSServicewjdsc1 
systemctl start DmASMSvrServicewjdsc1 

or:
su - dmdba

DmCSSServicewjdsc1 start 
DmASMSvrServicewjdsc1 start 

192.168.63.132:
root:

systemctl start DmCSSServicewjdsc2 
systemctl start DmASMSvrServicewjdsc2 

or:

su - dmdba 
DmCSSServicewjdsc2 start 
DmASMSvrServicewjdsc2 start 

su - dmdba
[dmdba@linux131 ~]$

dmasmtool 
DCR_INI=/dm/dmdbms/dm8/data/dmdcr.ini 
DMASMTOOL V8 
ASM> 
create diskgroup 'dglog' asmdisk '/dev/raw/raw3' 
create diskgroup 'dgdata01' asmdisk '/dev/raw/raw4'
vi /dm/dmdbms/dm8/data/dminit.ini 
db_name = wjdsc 
system_path = +dgdata01/data 
system = +dgdata01/data/wjdsc/system.dbf 
system_size = 128 
roll = +dgdata01/data/wjdsc/roll.dbf 
roll_size = 128 
main = +dgdata01/data/wjdsc/main.dbf 
main_size = 128 
ctl_path = +dgdata01/data/wjdsc/dm.ctl 
ctl_size = 8 
log_size = 256 
dcr_path = /dev/raw/raw1 
dcr_seqno = 0 
auto_overwrite = 1 
[wjdsc1] 
#inst_name跟dmdcr_cfg.ini 中DB类型 group中DCR_EP_NAME对应 
config_path = /dm/dmdbms/dm8/data/wjdsc1_config 
port_num = 5236 
mal_host = 192.168.63.131 
mal_port = 9340 
log_path = +dglog/log/wjdsc1_log01.log 
log_path = +dglog/log/wjdsc1_log02.log 
[wjdsc2]
#inst_name 跟 dmdcr_cfg.ini中DB类型group中DCR_EP_NAME对应 
config_path = /dm/dmdbms/dm8/data/wjdsc2_config 
port_num = 5236 
mal_host = 192.168.63.132 
mal_port = 9341 
log_path = +dglog/log/wjdsc2_log01.log 
log_path = +dglog/log/wjdsc2_log02.log 

192.168.63.131:

dminit control=/dm/dmdbms/dm8/data/dminit.ini 
scp -r /dm/dmdbms/dm8/data/wjdsc2_config 
wj82:/dm/dmdbms/dm8/data/ 

192.168.63.131:
root:

/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmserver 
-dm_ini /dm/dmdbms/dm8/data/wjdsc1_config/dm.ini -dcr_ini 
/dm/dmdbms/dm8/data/dmdcr.ini -p wjdsc1 -y 
DmASMSvrServicewjdsc1 

systemctl start DmServicewjdsc1
或者:
su - dmdba

DmServicewjdsc1 start 

192.168.63.132:
root:

/dm/dmdbms/dm8/script/root/dm_service_installer.sh -t dmserver 
-dm_ini /dm/dmdbms/dm8/data/wjdsc2_config/dm.ini -dcr_ini 
/dm/dmdbms/dm8/data/dmdcr.ini -p wjdsc2 -y
DmASMSvrServicewjdsc2 

systemctl start DmServicewjdsc2
or:
su - dmdba

DmServicewjdsc1 start 

./disql

alter user sysdba identified by dameng123; 
select * from v$dsc_ep_info; 
select instance_name from v$instance; 
select group_id,disk_id,disk_name,disk_path,size/1024 from V$ASMDISK; 
select group_id,group_name,au_size,total_size from v$asmgroup; 
select file_id,path,size_bytes/1024/1024 from v$asmfile; 

192.168.63.131/192.168.63.132:都需要修改:

vi /etc/dm_svc.conf 
wjdsc=(192.168.63.131:5236,192.168.63.132:5236) 
SWITCH_INTERVAL=(3) 
SWITCH_TIME=(10000) 
TIME_ZONE=(480) 
LANGUAGE=(cn) 

dm_svc.conf 配置文件包含如下配置选项:
1.SERVERNAME:连接服务名,用户通过连接服务名访问数据库。
2.IP:数据库所在的 IP 地址,如果是 IPv6 地址,为了区分端口,需要
用[]封闭 IP 地址。
3.PORT:数据库使用的 TCP 连接端口,可选配置,不配置则使用连接
上指定的端口。
4.SWITCH_INTERVAL:检测到数据库实例故障时,接口在服务器之间切
换的次数;超过设置次数没有连接到有效数据库时,断开连接并报错。有
效值范围 1~9223372036854775807,默认值为 3。
5.SWITCH_TIME:表示在服务器之间切换的时间间隔,单位为毫秒,有
效值范围 1~9223372036854775807,默认值为 200。

[dmdba@linux132 ~]$ ./disql SYSDBA/dameng123@wjdsc 
select * from v$dsc_ep_info;

Windows 上配置文件:
64 位 的 DM 安 装 在 Win64 操 作 平 台 下 , 此 文 件 位
于%SystemRoot%\system32

dm_svc.conf: 
wjdsc=(192.168.63.131:5236,192.168.63.132:5236) 
SWITCH_INTERVAL=(10) 
SWITCH_TIME=(10000) 
TIME_ZONE=(480) 
LANGUAGE=(cn) 

D:\dmdbms\bin>./disql sysdba/dameng123@wjdsc 
select * from v$dsc_ep_info;
create tablespace wj datafile '+dgdata01/data/wjdsc/wj01.dbf' 
size 100 autoextend off; 
create tablespace wj_idx datafile 
'+dgdata01/data/wjdsc/wj_idx01.dbf' size 100 autoextend off; 
create user "wj" identified by "wj123456" default tablespace wj 
default index tablespace wj_idx; 
grant dba to wj; 
conn wj/wj123456; 
create table wj (id int,name varchar(50),create_date date); 
insert into wj values(1,'shui','2021-04-01'); 
insert into wj values(2,'ku','2021-04-02'); 
commit; 
select count(*) from wj;
wjdsc1: 

vi /dm/dmdbms/dm8/data/wjdsc1_config/dmarch.ini

[ARCHIVE_LOCAL1] 
ARCH_TYPE = LOCAL 
ARCH_DEST = /dm/dmarch/wjdsc1 
ARCH_FILE_SIZE = 128 
ARCH_SPACE_LIMIT = 0 
[ARCH_REMOTE1] 
ARCH_TYPE = REMOTE 
ARCH_DEST = wjdsc2 
ARCH_INCOMING_PATH = /dm/dmarch/wjdsc2 
ARCH_FILE_SIZE = 128 
ARCH_SPACE_LIMIT = 0 

vi /dm/dmdbms/dm8/data/wjdsc1_config/dm.ini

ARCH_INI=1 

wjdsc2:
vi /dm/dmdbms/dm8/data/wjdsc2_config/dmarch.ini

[ARCHIVE_LOCAL1] 
ARCH_TYPE = LOCAL 
ARCH_DEST = /dm/dmarch/wjdsc2 
ARCH_FILE_SIZE = 128 
ARCH_SPACE_LIMIT = 0 
[ARCH_REMOTE1] 
ARCH_TYPE = REMOTE 
ARCH_DEST = wjdsc1 
ARCH_INCOMING_PATH = /dm/dmarch/wjdsc1 
ARCH_FILE_SIZE = 128 
ARCH_SPACE_LIMIT = 0 

vi /dm/dmdbms/dm8/data/wjdsc2_config/dm.ini

	ARCH_INI=1 
call SF_SET_SYSTEM_PARA_VALUE ('MAX_OS_MEMORY',95,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('MAX_SESSIONS',1000,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('MAX_SESSION_STATEMENT',5000,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('BUFFER',1024,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('MAX_BUFFER',1024,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('BUFFER_POOLS',2,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('RECYCLE',512,1,2);
call SF_SET_SYSTEM_PARA_VALUE ('RECYCLE_POOLS',1,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('HJ_BUF_GLOBAL_SIZE',500,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('HJ_BUF_SIZE',300,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('DICT_BUF_SIZE',50,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('TEMP_SIZE',200,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('VM_POOL_SIZE',256,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('SESS_POOL_SIZE',256,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('CACHE_POOL_SIZE',200,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('WORKER_THREADS',2,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('TASK_THREADS',2,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('USE_PLN_POOL',1,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('OLAP_FLAG',2,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('OPTIMIZER_MODE',1,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('VIEW_PULLUP_FLAG',1,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('COMPATIBLE_MODE',2,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('ENABLE_MONITOR',0,1,2); 
call SF_SET_SYSTEM_PARA_VALUE ('SVR_LOG',0,1,2);

DmServicewjdsc1 stop
DmServicewjdsc2 stop
DmServicewjdsc1 start
DmServicewjdsc2 start

./disql sysdba/dameng123 
select arch_mode from v$database; 
select * from v$dm_arch_ini; 
SELECT NAME , FIRST_TIME , NEXT_TIME , FIRST_CHANGE# , NEXT_CHANGE# FROM V$ARCHIVED_LOG; 

192.168.63.131:

systemctl start DmCSSServicewjdsc1 

192.168.63.132:

systemctl start DmCSSServicewjdsc2 

192.168.63.131:
root:

systemctl disable DmCSSServicewjdsc1 
systemctl disable DmASMSvrServicewjdsc1 
systemctl disable DmServicewjdsc1 
systemctl start DmCSSServicewjdsc1 
systemctl start DmASMSvrServicewjdsc1 
systemctl start DmServicewjdsc1 

or:
su - dmdba

DmCSSServicewjdsc1 start 
DmASMSvrServicewjdsc1 start 
DmServicewjdsc1 start 

192.168.63.132:
root:

systemctl disable DmCSSServicewjdsc2 
systemctl disable DmASMSvrServicewjdsc2 
systemctl disable DmServicewjdsc2 
systemctl start DmCSSServicewjdsc2 
systemctl start DmASMSvrServicewjdsc2 
systemctl start DmServicewjdsc2 

or:
su - dmdba

DmCSSServicewjdsc2 start 
DmASMSvrServicewjdsc2 start 
DmServicewjdsc2 start 
DMSERVICE—>DMASMSVR—>DMCSS 

192.168.63.131:
root:

systemctl stop DmServicewjdsc1 
systemctl stop DmASMSvrServicewjdsc1 
systemctl stop DmCSSServicewjdsc1 

or:
su - dmdba

DmServicewjdsc1 stop 
DmASMSvrServicewjdsc1 stop 
DmCSSServicewjdsc1 stop 

192.168.63.132:
root:

systemctl stop DmServicewjdsc2 
systemctl stop DmASMSvrServicewjdsc2 
systemctl stop DmCSSServicewjdsc2 

or:
su - dmdba

DmServicewjdsc2 stop 
DmASMSvrServicewjdsc2 stop 
DmCSSServicewjdsc2 stop

更多问题处理方式尽在达梦分享平台:https://eco.dameng.com/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值