安装前准备
集群规划
A机器 | B机器 | |||
业务IP | 192.168.56.102 | 192.168.56.101 | ||
心跳IP | 192.168.56.102 | 192.168.56.101 | ||
软件目录 | /mnt | /mnt | ||
安装目录 | /dm8/dmdbms | /dm8/dmdbms | ||
配置文件目录 | /dm8/config | /dm8/config | ||
归档日志目录 | /dm8/arch_0 | /dm8/arch_1 | ||
远程归档目录 | /dm8/arch_0_remote | /dm8/arch_1_remote | ||
备份目录 | /dm8/bak | /dm8/bak | ||
dmdcr_cfg | CSS | DCR_EP_NAME | CSS0 | CSS1 |
DCR_EP_HOST | 192.168.56.102 | 192.168.56.101 | ||
DCR_EP_PORT | 5336 | 5337 | ||
ASM | DCR_EP_NAME | ASM0 | ASM1 | |
DCR_EP_HOST | 192.168.56.102 | 192.168.56.101 | ||
DCR_EP_PORT | 5436 | 5437 | ||
DB | DCR_EP_NAME | DSC0 | DSC1 | |
DCR_EP_PORT | 5236 | 5236 | ||
DCR_CHECK_PORT | 5536 | 5537 | ||
dmasvrmal | MAL_INST_NAME | ASM0 | ASM1 | |
MAL_HOST | 192.168.56.102 | 192.168.56.101 | ||
MAL_PORT | 5636 | 5637 | ||
dminit | PORT_NUM | 5236 | 5236 | |
MAL_HOST | 192.168.56.102 | 192.168.56.101 | ||
MAL_PORT | 5736 | 5737 | ||
归档上限 | 5000 | 5000 | ||
OGUID | 45331 |
服务器配置
系统配置如单机安装
创建用户、目录
A机器:
[root@~]# groupadd dinstall -g 2001;useradd -g dinstall dmdba -u 1001;passwd dmdba
[root@~]# mkdir -p /dm8/setup /dm8/dmdbms /dm8/config /dm8/arch_0 /dm8/arch_0_remote /dm8/bak
[root@~]# chown dmdba.dinstall /dm8 -R;chmod 777 /dm8 -R
[dmdba@~]# /dm8/setup/DMInstall.bin -i
B机器:
[root@~]# groupadd dinstall -g 2001;useradd -g dinstall dmdba -u 1001;passwd dmdba
[root@~]# mkdir -p /dm8/setup /dm8/dmdbms /dm8/config /dm8/arch_1 /dm8/arch_1_remote /dm8/bak
[root@~]# chown dmdba.dinstall /dm8 -R;chmod 777 /dm8 -R
[dmdba@~]# /dm8/setup/DMInstall.bin -i
存储准备
划存储
用途 | 空间规划(总共6T) |
sdb1用于dcr信息 | 100M |
sdb2用于存放vote信息 | 100M |
sdb3用于存放redo log | 20480M |
sdb4用于存放data | 剩下的全部空间 |
- A机器:小于2TB的存储使用fdisk命令来划分
[root@~]# fdisk /dev/sdb
1) 依次输入 n p 1 回车 +100M,完成第一块磁盘划分
2) 依次输入 n p 2 回车 +100M,完成第二块磁盘划分
3) 依次输入 n p 3 回车 +20480M,完成第三块磁盘划分
4) 依次输入 n p 回车 回车 回车,完成第四块磁盘划分
5) 输入w命令,将裸设备划分的设置进行保存
- A机器:大于2TB的需要使用parted命令来划分
[root@~]# parted /dev/sdb
1) 输入 mklabel gpt 回车,将MBR磁盘磁盘转换为gpt格式
2) 输入 mkpart primary 0 100 回车,完成第一块磁盘划分
3) 输入 mkpart primary 100 200 回车,完成第二块磁盘划分
4) 输入 mkpart primary 200 20680 回车,完成第三块磁盘划分
5) 输入 mkpart primary 20680 5498G 回车,完成第四块磁盘划分
6) 输入 quit 回车,完成磁盘划分
- A机器、B机器依次执行
[root@~]# partprobe /dev/sdb
挂存储方法1:直接挂
A机器、B机器依次修改
[root@~]# 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"
[root@~]# partprobe /dev/sdb
[root@~]# reboot
注意:可通过blockdev --getsize64 /dev/raw/raw*命令查看设备大小。
挂存储方法2:多路径绑定
使用命令ll /dev/mappr和ll /dev/dm*查看对应设备的信息
例如,/dev/mapper/mpathg1对应dm-3,主设备编号为253,次设备编号为3
A机器、B机器依次修改
[root@~]# vi /etc/udev/rules.d/70-persistent-ipoib.rules
ACTION=="add",ENV{MAJOR}=="253",ENV{MINOR}=="3",RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add",ENV{MAJOR}=="253",ENV{MINOR}=="4",RUN+="/bin/raw /dev/raw/raw2 %M %m"
ACTION=="add",ENV{MAJOR}=="253",ENV{MINOR}=="5",RUN+="/bin/raw /dev/raw/raw3 %M %m"
ACTION=="add",ENV{MAJOR}=="253",ENV{MINOR}=="6",RUN+="/bin/raw /dev/raw/raw4 %M %m"
ACTION=="add",KERNEL=="raw[1-4]",OWNER="dmdba",GROUP="dinstall",MODE="660"
[root@~]# partprobe /dev/mapper/mpathg
[root@~]# reboot
注意:可通过blockdev --getsize64 /dev/raw/raw*命令查看设备大小。
搭建DSC
创建dmdcr_cfg.ini
A、B机器相同配置
vi /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.56.102 #心跳地址 DCR_EP_PORT = 5336 #CSS端口 [GRP_CSS] DCR_EP_NAME = CSS1 DCR_EP_HOST = 192.168.56.101 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.56.102 #心跳地址 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.56.101 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 |
初始化磁盘组
A机器
[dmdba@dsc2 bin]$ /dm8/dmdbms/bin/dmasmcmd DMASMCMD V8 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
A机器、B机器配置相
vi /dm8/config/dmasvrmal.ini [MAL_INST1] MAL_INST_NAME = ASM0 MAL_HOST = 192.168.56.102 #心跳地址 MAL_PORT = 5636 #MAL监听端口 [MAL_INST2] MAL_INST_NAME = ASM1 MAL_HOST = 192.168.56.101 MAL_PORT = 5637 |
创建dmdcr.ini
A机器
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/dmdbms/bin/dmasmsvr dcr_ini=/dm8/config/dmdcr.ini #DMDCR_DB_RESTART_INTERVAL = 60 #CSS认定DSC故障重启的时间 #DMDCR_DB_STARTUP_CMD=/dm8/dmdbms/bin/dmserver path=/dm8/config/dsc0_config/dm.ini dcr_ini=/dm8/config/dmdcr.ini |
B机器
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 #CSS认定ASM故障重启的时间 #DMDCR_ASM_STARTUP_CMD=/dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/config/dmdcr.ini #DMDCR_DB_RESTART_INTERVAL = 60 #CSS认定DSC故障重启的时间 #DMDCR_DB_STARTUP_CMD=/dm8/dmdbms/bin/dmserver path=/dm8/config/dsc0_config/dm.ini dcr_ini=/dm8/config/dmdcr.ini |
注意:当前为手动拉起A机器和B机器的ASM和DMSERVER服务。待集群配置完成后,再修改为自动拉起(删除dmdcr.ini中红色井号)。
启动CSS、ASM服务
A机器、B机器依次执行
启动css服务
/dm8/dmdbms/bin/dmcss DCR_INI=/dm8/config/dmdcr.ini
启动asm 服务
./dmasmsvr dcr_ini=/dm8/config/dmdcr.ini
创建DMASM磁盘组
A机器
/dm8/dmdbms/bin/dmasmtool DCR_INI=/dm8/config/dmdcr.ini
ASM> create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
ASM> create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
问题:
[dmdba@dsc1 ~]$ /dm8/dmdbms/bin/dmasmtool DCR_INI=/dm8/config/dmdcr.ini
DMASMTOOL V8
[code : -11041] ASM连接异常
原因:没有启动asm服务
创建dminit.ini
A机器、B机器配置相同
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 = 1024 dcr_path = /dev/raw/raw1 dcr_seqno = 0 auto_overwrite = 1 PAGE_SIZE = 32 CASE_SENSITIVE = Y CHARSET = 1 EXTENT_SIZE = 32 [DSC0] config_path = /dm8/config/dsc0_config port_num = 5236 mal_host = 192.168.56.102 mal_port = 5736 log_path = +DMLOG/log/dsc0_log01.log log_path = +DMLOG/log/dsc0_log02.log [DSC1] config_path = /dm8/config/dsc1_config port_num = 5236 mal_host = 192.168.56.101 mal_port = 5737 log_path = +DMLOG/log/dsc1_log01.log log_path = +DMLOG/log/dsc1_log02.log |
初始化实例
A机器
--初始化实例
/dm8/dmdbms/bin/dminit control=/dm8/config/dminit.ini
...
create dm database success. 2020-11-14 21:25:31
--拷贝文件到B机器
scp -r /dm8/config/dsc1_config dmdba@192.168.56.101:/dm8/config/
创建dmarch.ini
A机器
--修改dm.ini
vi /dm8/config/dsc0_config/dm.ini ARCH_INI = 1 |
--创建dmarch.ini
vi /dm8/config/dsc0_config/dmarch.ini [ARCHIVE_LOCAL] ARCH_TYPE = LOCAL ARCH_DEST = /dm8/arch_0 ARCH_FILE_SIZE = 1024 ARCH_SPACE_LIMIT = 5120 [ARCHIVE_REMOTE] ARCH_TYPE = REMOTE ARCH_DEST = DSC1 ARCH_INCOMING_PATH = /dm8/arch_0_remote ARCH_FILE_SIZE = 1024 ARCH_SPACE_LIMIT = 5120 |
B机器
--修改dm.ini
vi /dm8/config/dsc1_config/dm.ini ARCH_INI = 1 |
--创建dmarch.ini
vi /dm8/config/dsc1_config/dmarch.ini [ARCHIVE_LOCAL] ARCH_TYPE = LOCAL ARCH_DEST = /dm8/arch_1 ARCH_FILE_SIZE = 1024 ARCH_SPACE_LIMIT = 5120 [ARCHIVE_REMOTE] ARCH_TYPE = REMOTE ARCH_DEST = DSC0 ARCH_INCOMING_PATH = /dm8/arch_1_remote ARCH_FILE_SIZE = 1024 ARCH_SPACE_LIMIT = 5120 |
启动DMSERVER服务
A机器
/dm8/dmdbms/bin/dmserver /dm8/config/dsc0_config/dm.ini dcr_ini=/dm8/config/dmdcr.ini
B机器
/dm8/dmdbms/bin/dmserver /dm8/config/dsc1_config/dm.ini dcr_ini=/dm8/config/dmdcr.ini
注册CSS、ASM、DMSERVER后台服务
A机器
[root@~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/config/dmdcr.ini -p CSS [root@~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM [root@~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm8/config/dsc0_config/dm.ini -dcr_ini /dm8/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC |
B机器
[root@~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/config/dmdcr.ini -p CSS [root@~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM [root@~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm8/config/dsc1_config/dm.ini -dcr_ini /dm8/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC |
备注:删除自启
[root@~]# /dm8/dmdbms/script/root/dm_service_uninstaller.sh -n DmCSSServiceCSS
[root@~]# /dm8/dmdbms/script/root/dm_service_uninstaller.sh -n DmASMSvrServiceASM
[root@~]# /dm8/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceDSC
配置监视器
创建dmcssm.ini
A机器、B机器配置相同
[dmdba@~]# vi /dm8/dmdbms/bin/dmcssm.ini
CSSM_OGUID = 45331
CSSM_CSS_IP = 192.168.56.102:5336
CSSM_CSS_IP = 192.168.56.101:5337
CSSM_LOG_PATH = ../log
CSSM_LOG_FILE_SIZE = 512
CSSM_LOG_SPACE_LIMIT = 2048
注册服务(选做)
[root@~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmcssm -cssm_ini /dm8/dmdbms/bin/dmcssm.ini -p Monitor
备注:删除自启
[root@~]# /dm8/dmdbms/script/root/dm_service_uninstaller.sh -n DmCSSMonitorServiceMonitor
前台启动集群监视器
./dmcssm INI_PATH=dmcssm.ini
监视器使用
命令 | 含义 |
show | 查看所有组的信息 |
show config | 查看dmdcr_cfg.ini 的配置信息 |
show monitor | 查看当前连接到主 CSS 的所有监视器信息 |
启停服务
启动监视器
[dmdba@~]# /dm8/dmdbms/bin/DmCSSMonitorServiceMonitor start
前台启动:
[dmdba@~]# /dm8/dmdbms/bin/dmcssm INI_PATH=/dm8/dmdbms/bin/dmcssm.ini
启停集群
启动:A/B机器CSS
A/B机器: /dm8/dmdbms/bin/DmCSSServiceCSS start
说明:CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER。
停止: A/B机器DMSERVER→A/B机器ASM→A/B机器CSS
A/B机器: /dm8/dmdbms/bin/DmServiceDSC stop
A/B机器: /dm8/dmdbms/bin/DmASMSvrServiceASM stop
A/B机器: /dm8/dmdbms/bin/DmCSSServiceCSS stop
说明:1)DSC正常停库必须2节点同时停止,根据目前脚本配置,CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER,所以停止DMSERVER和ASM后,要尽快停止CSS,避免被自动拉起。2)ASM服务在任意节点停止,2个节点的ASM服务都会停止,为了保险起见,可以两边都执行停止命令。3)服务全部停止后,要检查后台进程是否全部停止。
达梦技术社区:https://eco.dameng.com