目录
环境部署
环境描述
两台相同配置机器,2G 内存,20G 本地磁盘,2 块网卡,另有一块共享磁盘
20G。
DSC集群 | ||||
机器名 | 初始状态 | 内部通信IP | 外部通行IP | 操作系统 |
DSC1 | 主节点DSC0 | 192.168.3.1 | 192.168.3.11 | Linux |
DSC2 | 节点DSC1 | 192.168.3.2 | 192.168.3.22 | Linux |
挂共享磁盘
打开VM VirtualBox虚机,创建两个机器DSC1,DSC2,并安装dm8数据库软件。
之后关闭虚机后,点击DSC1,点击设置,再点击存储,加上一块虚拟硬盘(注意:创建硬盘必须是固定大小分配,大小为20G):
然后点击管理,进入虚拟介质管理,找到新建的虚拟硬盘:DSC1_1vdi更改其类型为可共享。
最后挂在DSC2虚机上挂上该共享磁盘即可
创建所需目录
两机器同时创建:
mkdir -p /dm8/setup /dm8/dmdbms /dm8/config /dm8/arch_0 /dm8/arch_0_remote /dm8/bak
划分磁盘
利用fdisk命令划分磁盘(root用户下执行):
fdisk /dev/sdb
1) 依次输入 n p 1 回车 +100M,完成第一块磁盘划分
2) 依次输入 n p 2 回车 +100M,完成第二块磁盘划分
3) 依次输入 n p 3 回车 +2048M,完成第三块磁盘划分
4) 依次输入 n p 回车 回车 回车,完成第四块磁盘划分
5) 输入w命令,保存
挂存储
vi /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"
partprobe /dev/sdb
reboot
搭建DSC
编辑dmdcr_cfg.ini
两机器相同配置
vim /dm8/config/dmdcr_cfg.ini
DCR_N_GRP = 3 #集群环境有多少个GROUP,范围:1~16
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 45331
[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 = CSS0 #CSS节点名
DCR_EP_HOST = 192.168.3.1 #心跳地址
DCR_EP_PORT = 5336 #CSS端口
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.3.2
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 = ASM0 #ASM节点名,和dmasvrmal的MAL_INST_NAME一致
DCR_EP_SHM_KEY = 93360 #共享内存标识
DCR_EP_SHM_SIZE = 10 #共享内存大小
DCR_EP_HOST = 192.168.3.1 #心跳地址
DCR_EP_PORT = 5436 #ASM端口
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.3.2
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 = DSC0 #实例名,和dm.ini的INSTANCE_NAME一致
DCR_EP_SEQNO = 0 #组内序号,不能重复
DCR_EP_PORT = 5236 #实例端口,和dm.ini的PORT_NUM一致
DCR_CHECK_PORT = 5536 #DCR检查端口
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 5537
初始化磁盘组
DSC1机器
在/dm8/bin目录下执行:./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 '/dm8/config/dmdcr_cfg.ini' identified by 'admin1234'
ASM> init votedisk '/dev/raw/raw2' from '/dm8/config/dmdcr_cfg.ini'
创建dmasvrmal.ini
两台机器配置:
vi /dm8/config/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.3.1 #心跳地址
MAL_PORT = 5636 #MAL监听端口
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.3.2
MAL_PORT = 5637
创建dmdcr.ini
DSC1机器
vi /dm8/config/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /dm8/config/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_AUTO_OPEN_CHECK = 90
DMDCR_ASM_RESTART_INTERVAL = 30 #CSS认定ASM故障重启的时间
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr dcr_ini=/dm8/config/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 60 #CSS认定DSC故障重启的时间
DMDCR_DB_STARTUP_CMD =/dm8/bin/dmserver path=/dm8/config/dsc0_config/dm.ini dcr_ini=/dm8/config/dmdcr.ini
DSC2机器
vi /dm8/config/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /dm8/config/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_AUTO_OPEN_CHECK = 90
DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr dcr_ini=/dm8/config/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 60
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver path=/dm8/config/dsc1_config/dm.ini dcr_ini=/dm8/config/dmdcr.ini
注意:当前为手动拉起A机器和B机器的ASM和DMSERVER服务。待集群配置完成后,再修改为自动拉起(删除dmdcr.ini中红色井号)。
启动CSS、ASM服务
/dm8/bin/dmcss DCR_INI=/dm8/config/dmdcr.ini
/dm8/bin/dmasmsvr DCR_INI=/dm8/config/dmdcr.ini
创建DMASM磁盘组
cd /dm8/bin
./dmasmtool DCR_INI=/dm8/config/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
创建dminit.ini
DSC1机器下配置:
vi /dm8/config/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 = 128
dcr_path = /dev/raw/raw1
dcr_seqno = 0
auto_overwrite = 1
PAGE_SIZE = 32
CASE_SENSITIVE = Y
CHARSET = 0
[DSC0]
config_path = /dm8/config /dsc0_config/DSC0
port_num = 5236
mal_host = 192.168.3.1
mal_port = 5736
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1]
config_path = /dm8/config /dsc1_config/DSC1
port_num = 5236
mal_host = 192.168.3.2
mal_port = 5737
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
初始化实例
到bin下初始化实例:
./dminit control=/dm8/config/dminit.ini
把dsc1_config传到另外一个节点上:
scp -r /dm8/config/dsc1_config dmdba@192.168.3.2:/dm8/config/
配置归档
创建dmarch.ini
DSC1机器
vi /dm8/config/dsc0_config/dm.ini
ARCH_INI = 1
vi /dm8/config/dsc0_config/dmarch.ini
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch_0
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 51200
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = /dm8/arch_0_remote
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 51200
DSC2机器
vi /dm8/config/dsc1_config/dm.ini
ARCH_INI = 1
--创建dmarch.ini
[dmdba@~]# vi /dm8/config/dsc1_config/dmarch.ini
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch_1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 51200
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = /dm8/arch_1_remote
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 51200
启动实例服务
到bin目录下启动实例:
./dmserver /dm8/config/dsc0_config/DSC0/dm.ini dcr_ini=/dm8/config/dmdcr.ini
./dmserver /dm8/config/dsc1_config/DSC1/dm.ini dcr_ini=/dm8/config/dmdcr.ini
后续可以配置监视器查看DSC集群状态,配置CSS,ASM和实例服务让集群可以开机自启。