DM8共享存储集群DSC

一、环境准备

  1. 安装VM虚拟机

   获取的VM虚拟机版本是12.1.0 build-3272444的,安装2台操作系统是CentOS 6.5的虚拟机。具体操作可以参考下面的文章,值得注意的是虚拟机网络连接需要配置成桥接模式,虚拟机单独设置IP,这样可以组网搭建DSC集群。如下图:

安装VM操作系统https://blog.csdn.net/qq_39038465/article/details/81478847

 

服务器规划:

机器名

IP

程序目录

配置文件目录

dm1/节点1

192.168.0.11

/home/dmdba/dmdbms

/home/dmdba/data

dm2/节点2

192.168.0.12

/home/dmdba/dmdbms

/home/dmdba/data

 

2. 在2台虚拟机上添加共享磁盘

可以按下面地址的方法在VM环境添加共享磁盘。

https://blog.csdn.net/suyishuai/article/details/30974917

受笔记本磁盘容量限制,这里只添加一个10G的磁盘,真实的生产环境中,建议至少配置两块共享磁盘,分别用来存放联机日志文件和数据文件。

在上述CSDN文章第四步修改虚拟机vmx文件,可能因为VM虚拟机版本不一样,这个步骤未能到达预期,参考了另外一篇CSDN文章配置VMX文件。

两台虚拟机添加的vmx文件下都添加一下信息:

disk.locking = "false"

diskLib.dataCacheMaxSize = "0"

diskLib.dataCacheMaxReadAheadSize = "0"

diskLib.DataCacheMinReadAheadSize = "0"

diskLib.dataCachePageSize = "10240"

diskLib.maxUnsyncedWrites = "0"

scsi1:0.deviceType = "disk"

scsi1:1.deviceType = "disk"

scsi1:2.deviceType = "disk"

scsi1:3.deviceType = "disk"

scsi1.sharedBus = "VIRTUAL"

输入:fdisk -l|grep "Disk /dev/sd*",查看新添加的盘,两台服务器都可以看到。

这些都是测试环境准备工作,正常运行的共享集群一般不会在虚拟机。下面开始DSC搭建步骤。

 

二、搭建2节点DMDSC集群

看手册推荐的是ASM方式,所以现在搭建的基于DMASM的DSC集群。

  1. 在共享磁盘上裸设备划分,只在一台服务器上配置。

输入:fdisk /dev/sdb

进入命令模式后依次输入:

n,p,1,回车,+100M,回车,完成第一块磁盘划分

n,p,2,回车,+100M,回车,完成第二块磁盘划分

n,p,3,回车,+2048M,回车,完成第三块磁盘划分

n,p,回车,回车,完成第四块磁盘划分

最后w退出

(这里1-4分区其实对应是DCR、vote、日志、数据分区)

PS: 另一台虚拟机/dev目录下要看到sdb1-4几个分区需要重启虚拟机或者执行partprobe。

绑定裸设备,两台服务器上都需要进行以下操作

编辑/etc/udev/rules.d/60-raw.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="root", GROUP="root", MODE="777"

这里要给777的权限,不然通过dmdba启动没有文件的权限。

 

修改文件后执行start_udev,完成裸设备绑定。

使用ll /dev/raw命令查看是否绑定成功,通过blockdev --getsize64 /dev/raw/raw1命令查看裸设备大小:

 

2. 准备dmdcr_cfg.ini配置文件,放在/home/dmdba/data下,后续DMASMCMD工具执行init语句会用到。只需在一台服务器上配置。

PS:  不同节点服务器间对应的DCR_EP_PORT端口可以相同,但是两个服务器配的ASMDCR_EP_SHM_KEY不能相同。

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 = 192.168.0.11
DCR_EP_PORT = 9341

[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.0.12
DCR_EP_PORT = 9341

[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.0.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.0.12
DCR_EP_PORT = 9349
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 = DSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741

[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741

 

3. 使用DMASMCMD工具初始化,只需在一台机器执行

进入数据库程序bin目录,输入执行./dmasmcmd启动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 '/home/dmdba/data/dmdcr_cfg.ini'identified by 'abcd'

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

PS:也可以将命令写入 asmcmd.txt 文件,执行 dmasmcmd script_file=asmcmd.txt,只需在一台机器执行即可,但是脚本文件必须以#asm script file开头。

4. 配置DMASM的MAL配置文件,命名为dmasvrmal.ini。使用DMASM的所有节点都要配置,内容完全一样,保存到/home/dmdba/data目录下,各个节点的dmasvrmal.ini文件内容是一样的。

[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.0.11
MAL_PORT = 7236

[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.0.12
MAL_PORT = 7236

 

5. 配置dmdcr.ini文件,保存到/home/dmdba/data目录下,DMASM 的两个节点分别都要配置dmdcr.ini。 dmdcr_seqno 分别为 0 和 1,dm.ini的path不同,已标红。

节点192.168.0.11上:

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /home/dmdba/data/dmasvrmal.ini
DMDCR_SEQNO = 0

DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/data/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/data/dsc0_config/dm.ini dcr_ini=/home/dmdba/data/dmdcr.ini

如果不好查看,具体内容如下图:

节点192.168.0.12上:

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /home/dmdba/data/dmasvrmal.ini
DMDCR_SEQNO = 1

DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/data/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/data/dsc1_config/dm.ini dcr_ini=/home/dmdba/data/dmdcr.ini

截图:

这里的DMDCR_ASM_RESTART_INTERVALDMDCR_DB_RESTART_INTERVAL配置的都是0,即:ASMDB不会被DMCSS自动拉起。

 

6.启动 DMCSSDMASM服务程序,分别在两个节点上启动

都进入数据库bin目录下

先启动192.168.0.11上的dmcss:

./dmcss DCR_INI=/home/dmdba/data/dmdcr.ini

再启动192.168.0.11上的dmasm,没有配置CSS自动拉起ASM,所以这里需要手动启动:

./dmasmsvr dcr_ini=/home/dmdba/data/dmdcr.ini

再启动192.168.0.12上的DMCSS和DMASM,同样进入/home/dmdba/dmdbms/bin

./dmcss DCR_INI=/home/dmdba/data/dmdcr.ini

./dmasmsvr dcr_ini=/home/dmdba/data/dmdcr.ini

 

其实首次启动的时候有个报错,节点通知失败,想到可能是节点间通信问题,就尝试关闭防火墙后,服务启动成功。防火墙需要永久关闭。chkconfig iptables off

两个都启动完成后,成功状态的主节点CSS上会打印:

 

7.使用dmasmtool工具创建DMASM磁盘组,只需在一个节点上执行。

进入bin目录下

./dmasmtool dcr_ini=/home/dmdba/data/dmdcr.ini

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

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

同时,192.168.0.12节点上dmasmsvr服务上也会打印添加成功的信息

8.准备dminit.ini配置文件,保存到/home/dmdba/data目录下,只需要在一个节点上配置

db_name = dsc
system_path = +DMDATA/data
system = +DMDATA/data/dsc/system.dbf
system_size = 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 128
main = +DMDATA/data/dsc/main.dbf
main_size = 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = /dev/raw/raw1
dcr_seqno = 0
auto_overwrite = 1

[DSC0]
config_path = /home/dmdba/data/dsc0_config
port_num = 5236
mal_host = 192.168.0.11
mal_port = 9340
log_path = +DMLOG/dsc0_log01.log
log_path = +DMLOG/dsc0_log02.log

[DSC1]
config_path = /home/dmdba/data/dsc1_config
port_num = 5236
mal_host = 192.168.0.12
mal_port = 9340
log_path = +DMLOG/dsc1_log01.log
log_path = +DMLOG/dsc1_log02.log

9. 使用dminit初始化DB环境,只需在一个节点执行

  要给程序目录、数据目录、裸设备dmdba:dinstall用户组权限,不然这里会报错

  chown -R dmdba:dinstall /home/dmdba

chown -R dmdba:dinstall /dev/raw

在192.168.0.11的bin目录下执行:

./dminit control=/home/dmdba/data/dminit.ini

 

执行成功会在dminit.ini中配置的config_path下生成一个dsc0_config目录和一个dsc1_config目录。将dsc1_config目录传到节点192.168.0.12的相同目录(/home/dmdba/data)下

 

10. 在两个机器上启动数据库服务,在192.168.0.11上执行:

./dmserver /home/dmdba/data/dsc0_config/dm.ini dcr_ini=/home/dmdba/data/dmdcr.ini

在192.168.0.12上执行:

./dmserver /home/dmdba/data/dsc1_config/dm.ini dcr_ini=/home/dmdba/data/dmdcr.ini

 

11. 通过上面的步骤,已经完成搭建,并且前台启动DSC集群成功。

如果需要服务启动,需要注册各种服务。也可根据模板修改:/bin/service_template/ DmDSSService文件。

通过DMCSS服务去拉起DMASM和DMSERVER,需要配置dmdcr.ini的参数DMDCR_ASM_RESTART_INTERVAL和DMDCR_DB_RESTART_INTERVAL不等于0,这里我给的5。

 并且给裸设备dmdba权限。

chown -R dmdba:dinstall /dev/raw

 

启动的时候,先启动dmcss,再启动dmasm,最后启动dmserver

也可以通过DMCSS去拉起其他服务。

停止服务的时候,先停止dmserver,再停dmasm,最后停dmcss

 

12. 配置DMCSSM监视器

DMCSSM的配置文件名称为dmcssm.ini

#和dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635

#和dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.0.11:9341
CSSM_CSS_IP = 192.168.0.12:9341

CSSM_LOG_PATH = /home/dmdba/data/cssmlog
CSSM_LOG_FILE_SIZE = 512
CSSM_LOG_SPACE_LIMIT = 1024

启动监视器:

./dmcssm INI_PATH=/home/dmdba/data/dmcssm.ini

Show一下看看

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值