脚本搭建2节点DSC集群

目录

1 集群规划

1.1 存储规划

1.2 ip端口规划

2 脚本部署DSC 

2.1 划分共享存储

2.1.1 创建共享磁盘

2.1.2 配置DSC0.vmx和DSC1.vmx 

2.1.3 添加共享磁盘 

2.2 分区和绑定磁盘

2.2.1 查询磁盘UUID

2.3 配置文件及上传脚本

2.3.1 上传自动部署传脚本

2.3.2 配置dm8_dsc.conf

2.4 执行部署

2.4.1 执行h步骤,查看帮助信息

2.4.2 执行01步骤,ssh连接各节点

2.4.3 执行02步骤,测各个节点网络

2.4.4 执行03步骤,进行部署

2.4.5 执行07步骤,关闭集群

2.4.6 执行06步骤,启动集群

2.4.7 执行05步骤,已删除无法执行

2.4.8 执行q步骤,退出部署工具

3 测试集群功能

1 集群规划

1.1 存储规划

分类

规划

大小

说明

本地磁盘

/opt/dmdbms/bin

>50GB

数据库软件

安装目录

/opt/dmdbms/dsc_config

控制文件、配置文件

存放目录

/opt/dmdbms/temp

临时表空间存放目录

/dmarch/CNDT

本地归档、远程归档

存放目录

/dmbak/CNDT

数据库备份存放目录

共享存储盘

/dev/dm_dcr

2G

存放 dcr 信息

/dev/dm_vote

3G

存放 vote 信息

/dev/dm_redo

8G

存放 redo 日志

/dev/dm_date0

/dev/dm_data1

7G

存放数据文件

/dev/dm_archiv

4G

存放本地归档

1.2 ip端口规划

主机名DSC0DSC1
业务IP192.168.61.192192.168.61.193
心跳IP192.168.61.194192.168.61.195
实例名CNDT_DSC0CNDT_DSC1
DCR_OGUID220928
DB_OGUID191212

PORT_NUM      

31236

DB_INST_PORT

DB_MAL_PORT31246

DCR_CHECK_PORT

31256

ASM_MAL_PORT

31266

ASM_DCR_EP_PORT

31276

CSS_DCR_EP_PORT

31286

2 脚本部署DSC 

2.1 划分共享存储

2.1.1 创建共享磁盘

#在虚拟机目录下,进行共享磁盘创建
cd D:\Program Files (x86)

#创建2G共享磁盘
D:\Program Files (x86)> .\vmware-vdiskmanager.exe -c -s 2G -a lsilogic -t 2 "D:\Work\WorkLinux\shell_DSC0\shared1.vmdk"

#创建3G共享磁盘
D:\Program Files (x86)> .\vmware-vdiskmanager.exe -c -s 3G -a lsilogic -t 2 "D:\Work\WorkLinux\shell_DSC0\shared2.vmdk"

#创建6G共享磁盘
D:\Program Files (x86)> .\vmware-vdiskmanager.exe -c -s 6G -a lsilogic -t 2 "D:\Work\WorkLinux\shell_DSC0\shared3.vmdk"

#创建8G共享磁盘
D:\Program Files (x86)> .\vmware-vdiskmanager.exe -c -s 8G -a lsilogic -t 2 "D:\Work\WorkLinux\shell_DSC0\shared4.vmdk"

#创建7G共享磁盘
D:\Program Files (x86)> .\vmware-vdiskmanager.exe -c -s 7G -a lsilogic -t 2 "D:\Work\WorkLinux\shell_DSC0\shared5.vmdk"

#创建4G共享磁盘
D:\Program Files (x86)> .\vmware-vdiskmanager.exe -c -s 4G -a lsilogic -t 2 "D:\Work\WorkLinux\shell_DSC0\shared6.vmdk"

2.1.2 配置DSC0.vmx和DSC1.vmx 

在虚拟机目录下,分别在DSC0.VMX和DSC1.VMX文件中添加如下信息。 

scsi1.sharedBus = "virtual" 
scsi1:1.deviceType = "disk"
scsi1:2.deviceType = "disk"
scsi1:3.deviceType = "disk"
scsi1:4.deviceType = "disk"
scsi1:5.deviceType = "disk"
scsi1:6.deviceType = "disk"

disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
disk.EnableUUID = "TRUE"

2.1.3 添加共享磁盘 

将创建的所有盘,添加到两个DSC节点,需在关机状态下添加,否则会导致磁盘的UUID查询不到。

2.2 分区和绑定磁盘

2.2.1 查询磁盘UUID

[root@localhost ~]# for i in b c d e f g;
> do
> echo "sd$i" "`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i` ";
> done

#配置规则文件,两节点都配置
vi /etc/udev/rules.d/66-dm-asmdevices.rules

KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29a0c753219a7c5e173bc5e4180",SYMLINK+="dm_dcr",OWNER="dmdba",GROUP="dinstall",MODE="0660"

KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29e195a31ff13fa94ff454ed3e8",SYMLINK+="dm_vote",OWNER="dmdba",GROUP="dinstall",MODE="0660"

KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c298bfbf5e81b9ca036949538cfa",SYMLINK+="dm_redo",OWNER="dmdba",GROUP="dinstall",MODE="0660"

KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29b6dd9a180d70e0ad8e124f6bf",SYMLINK+="dm_data0",OWNER="dmdba",GROUP="dinstall",MODE="0660"

KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c297201f64772c2da86022b397e0",SYMLINK+="dm_data1",OWNER="dmdba",GROUP="dinstall",MODE="0660"

KERNEL=="sd?",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29494ef3faf830613ac80aff52b",SYMLINK+="dm_archive",OWNER="dmdba",GROUP="dinstall",MODE="0660"

两个节点都将UUID修改为查询到的磁盘UUID

#使配置生效,两节点
udevadm control --reload-rules

systemctl restart systemd-udev-trigger.service

检查磁盘是否绑定成功

blockdev --getsize64 /dev/dm_dcr

blockdev --getsize64 /dev/dm_vote

blockdev --getsize64 /dev/dm_redo

blockdev --getsize64 /dev/dm_data0

blockdev --getsize64 /dev/dm_data1

blockdev --getsize64 /dev/dm_archive

或者:

ll /dev/dm_*

2.3 配置文件及上传脚本

2.3.1 上传自动部署传脚本

 2.3.2 配置dm8_dsc.conf

#切换到自动化部署目录,在节点1进行
[dmdba@localhost opt]$ cd dm8_dsc_dw
[dmdba@localhost dm8_dsc_dw]$ vi dm8_dsc.conf

#提前创建下面的目录

[dmdba@localhost ~]$ mkdir /opt/dmdbms/dsc_config
[dmdba@localhost ~]$ mkdir /opt/dmdbms/temp
[dmdba@localhost ~]$ mkdir /mppdata
[dmdba@localhost ~]$ mkdir /mppdata/dsc_dw


[GLOBAL]

DM_HOME          = /opt/dmdbms/bin                 #根据实际修改

DB_PATH          = /opt/dmdbms/dsc_config          #DSC 节点的目录,里面存放控制文件、配置文件等

TEMP_PATH        = /opt/dmdbms/temp                #DSC 临时表空间目录,里面存放节点的临时表空间。

ARCH_PATH        = /dmarch/CNDT                           #DSC 节点的本地归档、远程归档路径,只有ARCH_INI_OPEN=1时生效。

BAK_PATH         = /dmbak/CNDT                            #DSC 节点数据库备份的默认路径

DCR_ASM_PATH     = /dev/dm_dcr                            #操作系统绑定的dcr路径

VOTE_ASM_PATH    = /dev/dm_vote                           #操作系统绑定的vote路径

LOG_ASM_PATH     = /dev/dm_redo                           #操作系统绑定的redo日志路径,对应磁盘组DMLOG

DATA_ASM_PATH    = /dev/dm_data0,/dev/dm_data1            #操作系统绑定的数据库数据文件路径,对应磁盘组DMDATA

ARCH_ASM_PATH    = /dev/dm_archive                        #操作系统绑定的本地归档存储路径,只有ARCH_INI_OPEN=2/3时生效,其对应的磁盘组DMARCH,如值与DATA_ASM_PATH完全一致,归档将存储在磁盘组DMDATA上。

[ARCH]

ARCH_INI_OPEN    = 2                                      #是否开启DSC节点的本地归档,0不开启,1开启本地归档且放在本地,2开启本地归档且放在ASM,3:DSC+备机,并且dsc归档放在asm上。

ARCH_SPACE_LIMIT = 10240                                 #单个节点的本地归档或远程归档的大小空间限制,如是4节点DSC,则需要预留4*ARCH_SPACE_LIMIT的空间。

SSH_PORT         = 22                                     #远程Linux服务器的ssh端口号,一般为22,某些客户出于安全考虑,会更改ssh的默认连接端口

[DSC_DMINIT]                                              #初始化DSC实例的一些参数

DB_NAME             = CNDT                                #实例名称

SYS_PATH            = data                                #在ASM存储中的数据文件路径,注意大小写

SYSTEM_SIZE         = 1024                                #SYSTEM.dbf的大小

ROLL_SIZE           = 10000                               #Roll表空间的大小

MAIN_SIZE           = 1024                                #MAIN表空间的大小

CTL_SIZE            = 8                                   #dm.ctl文件的大小

LOG_SIZE            = 2048                                #redo文件的大小,搭建集群完成后,通过17步骤扩大集群的redo文件到log_size大小。

AUTO_OVERWRITE      = 1                                   #ASM中的同名文件是否覆盖

PAGE_SIZE           = 16                                  #初始化实例时的页大小

EXTENT_SIZE         = 16                                  #初始化实例时的簇大小

DB_SYSDBA_PWD       = SYSDBA_PWD                          #初始化数据库时的SYSDBA密码,包括后续修改SYSDBA密码后的一些运维操作

DB_INIT_PARA        = CASE_SENSITIVE=1,UNICODE_FLAG=0     #其它初始化参数,需要什么参数按格式增加即可,多个参数以逗号隔开

[DSC_CONF]

DCR_OGUID           = 220928                              #DCR的oguid,取6位数字即可,常用规律为当前日期

[DSC_PORT]                               #搭建集群时所用到的各个端口号

DB_INST_PORT                = 31236      #DSC实例端口号

DB_MAL_PORT                 = 31246      #DSC实例的MAL通信端口号

DCR_CHECK_PORT              = 31256      #DCR 检查端口号。检查实例是否活动的时候用,各实例不能冲突,故该端口会随着实例自动+1

ASM_MAL_PORT                = 31266      #ASM 通信的端口号

ASM_DCR_EP_PORT             = 31276      #ASM 节点 TCP 监听端口。各实例不能冲突,故该端口会随着实例自动+1

CSS_DCR_EP_PORT             = 31286      #CSS 节点 TCP 监听端口

[DSC_TIME]                                 #DSC集群一些心跳故障认证时间

DB_DCR_GRP_DSKCHK_CNT       = 57           #心跳,DSC DB 故障认定时间

ASM_DCR_GRP_DSKCHK_CNT      = 61           #心跳,DSC ASM 故障认定时间

CSS_DCR_GRP_DSKCHK_CNT      = 65           #心跳,DSC CSS 故障认定时间

DMDCR_ASM_RESTART_INTERVAL  = 71           #DMCSS 认定 DMASM 节点故障重启的时间间隔(取值 0~86400s),0则不会执行拉起

DMDCR_DB_RESTART_INTERVAL   = 0            #DMCSS 认定 DMDSC 节点故障重启的时间间隔(取值 0~86400s),0则不会执行拉起

DMDCR_AUTO_OPEN_CHECK       = 111          #指定时间内如果节点实例未启动,DMCSS 会自动将节点踢出集群环境,单位为秒

MAL_CHECK_INTERVAL          = 87           #MAL 链路检测时间间隔,取值范围(0s-1800s)为了防止误判,DMDSC 集群中,建议将配置值>= DB_DCR_GRP_DSKCHK_CNT。

MAL_CONN_FAIL_INTERVAL      = 33           #判定 MAL 链路断开的时间,取值范围(2s-1800s)

[ASM]

DCR_EP_SHM_KEY              = 42424       #共享内存标识,不同实例的该值不一样,故该端口会随着实例自动+1

DCR_EP_SHM_SIZE             = 200         #共享内存大小

[DataWatcher]                                            #该组参数只有在ARCH_INI_OPEN=3时生效,表示搭建DSC+单机备机

DATA_PATH                   = /mppdata/dsc_dw                   #备机数据库数据文件路径,根据实际修改,但要确保该目录只为该集群所用。

MAL_DW_PORT                 = 52141                             #dmmal.ini中的MAL_DW_PORT端口,用于集群中所有守护进程、监视器的通信。

MAL_INST_DW_PORT            = 5276                              #DM8的参数,数据守护4.0

DB_OGUID                    = 191212                            #建议修改#OGUID,代表集群的唯一标识,表示数据库的OGUID

DW_TYPE                     = REALTIME                          #搭建的集群类型:即时归档:TIMELY;实时归档:REALTIME,如无特殊需求,建议用REALTIME

DW_MODE                     = MANUAL                            #集群的故障切换模式:自动切换(AUTO),非自动切换(MANUAL)          

ASYNC_NODE                  = 1                                 #异步备机的数量,取值0-8。始终从最后的NODE为异步备机,如只有2NODE,则表示1主1异步备机。

AUTO_RESTART                = 1                                 #实例自动重启,1表示自动重启,0表示不自动重启,仅针对备机有效,对DSC无效

INST_RECOVER_TIME           = 60                                #主库守护进程启动恢复的间隔时间

INST_ERROR_TIME             = 120                               #本地数据库故障认定时间

DW_ERROR_TIME               = 120                               #远程主(备)机守护进程故障认定时间

ARCH_WAIT_APPLY             = 0                                 #高性能模式为0,事务强一致模式为1

ARCH_FLUSH_BUF_SIZE         = 0                                 #写本地归档时,合并rlog为多少M再写。202009月度版才支持,之前版本该值需要设置为0.

[MAIL]#一般不用改参数,以128GB内存为例

MAL_SYS_BUF_SIZE=6000

MAL_BUF_SIZE=3000

MAL_VPOOL_SIZE=5000

MAL_COMPRESS_LEVEL=0

#各节点配置

[DSC1]

DSC_MAL_HOST = 192.168.61.192    #内网IP

DSC_INST_HOST = 192.168.61.194   #外网IP

DSC_INST_UID  = dmdba

DSC_INST_PWD  = hust4400

[DSC2]

DSC_MAL_HOST = 192.168.61.193

DSC_INST_HOST = 192.168.61.195

DSC_INST_UID  = dmdba

DSC_INST_PWD  = hust4400

2.4 执行部署

[dmdba@localhost ~]$ cd /opt/dm8_dsc_dw

#执行脚本
[dmdba@localhost dm8_dsc_dw]$ python dm8_dsc.py

2.4.1 执行h步骤,查看帮助信息

2.4.2 执行01步骤,ssh连接各节点

2.4.3 执行02步骤,测各个节点网络

2.4.4 执行03步骤,进行部署

2.4.5 执行07步骤,关闭集群

2.4.6 执行06步骤,启动集群

2.4.7 执行05步骤,已删除无法执行

2.4.8 执行q步骤,退出部署工具

3 测试集群功能

在节点1,创建建表emp,并插入数据。

SQL> create table emp(name varchar(20),id number);
SQL> insert into emp values('heihei',1);
SQL> commit;

 节点2,查询emp表数据。若查询到数据,说明创建成功。

至此,dsc自动化部署完成。


想要了解更多关于DSC集群信息,可以到达梦官网查看相应的手册。

达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值