DM8搭建DSC集群搭建及故障修复

一、概述

        DMDSC集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。DMDSC支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。

二、DMDSC主要特点

        1、 高可用性 只要集群中有一个活动节点,就能正常提供数据库服务。此外,当出现磁盘损坏或数据丢失时,既可以利用其他镜像副本继续提供数据库服务,又可以使用其他镜像副本进行数据恢复。

        2、高吞吐量 多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。

        3、负载均衡 一方面,通过巧用服务名,用户的连接请求被平均分配到集群中的各个节点,确保连接负载平衡;另一方面,条带化技术可保证写入的数据均匀分布到磁盘组内的不同磁盘中,实现数据负载均衡。

        DM8中,新增加了监视器的功能。需要注意的是DSC中的监视器与DM实时主备或读写分离集群中的监视器不同,没有确认监视器与非确认监视器,同一个DMDSC集群中,允许最多同时启动10个监视器,建议监视器放在独立的第三方机器上,避免由于节点间网络不稳定等原因导致监视器误判节点故障。下面开始创建共享磁盘,搭建DSC集群。

三、搭建DSC集群

3.1 关闭防火墙

 3.2 添加共享磁盘

1、VMware虚拟机创建共享磁盘:

     C:\Program Files (x86)\VMware\VMware Workstation>vmware-vdiskmanager.exe -c -s 20GB -a lsilogic -t 2 "D:\shared\test-DSC-20G.vmdk"

2、修改相关虚拟机文件

两台虚拟机添加的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"

查看磁盘信息:

注:两台虚拟机在添加共享磁盘将两台scsi设置成一样的

可能会遇到问题:

解决方案:将所提示路径*.lck结尾文件全部删除

3.3 进行裸设备划分

注意:只需要在一台机器上操作

输入 fdisk /dev/sdb

        依次输入 n → p → 1 →回车→ +100M →回车,完成第一块磁盘划分

        依次输入 n → p → 2 →回车→ +100M →回车,完成第二块磁盘划分

        依次输入 n → p → 3 →回车→ +2048M →回车,完成第三块磁盘划分

        依次输入 n → p →回车→回车,完成第四块磁盘划分

w保存配置并退出 fdisk -l或者lsblk可以查看分区是否成功

3.4 绑定裸设备

1、编辑/etc/udev/rules.d/70-raw.rules文件

        注:两节点均需配置

2、编辑之后,保存退出。两节点均需执行以下命令完成裸设备的绑定或者重启机器:

        partprobe /dev/sdb

        /sbin/udevadm control --reload

        注:partprobe可以在不重启的情况下重读分区。将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表。

3、完成裸设备绑定后,进行检查好两节点是否同步

 blockdev --getsize64 /dev/raw/raw1、2、3、4

3.5 安装数据库软件

 1、创建用户组及用户和数据库目录

        groupadd dinstall

        useradd dmdba -g dinstall

        passwd dmdba

        mkdir /data/dmdata -p

        chown dmdba:dinstall /data -R

注:两节点均需安装但不进行实例初始化步骤

步骤省略

3.6 配置dmdcr_cfg.ini文件

提示:所有配置文件均放在:/home/dmdba/config/目录下

使用 dmdba用户,进行编辑配置文件

配置文件内容如下:

        DCR_N_GRP = 3

        DCR_VTD_PATH = /dev/raw/raw2  ##规划的vote盘

        DCR_OGUID = 63635      ## DMCSSM 登录DMCSS 消息校验用

        [GRP]

        DCR_GRP_TYPE = CSS     

        DCR_GRP_NAME = GRP_CSS  ##CSS服务组名,规则要求

        DCR_GRP_N_EP = 2       

        DCR_GRP_DSKCHK_CNT = 60 ##参数的标准配置规范

        [GRP_CSS]    ##与CSS [GRP]标签配置中的DCR_GRP_NAME保持一致

        DCR_EP_NAME = CSS0     ##节点CSS服务名

        DCR_EP_HOST = 192.168.233.104     #心跳ip

        DCR_EP_PORT = 5230   ##端口使用规范

        [GRP_CSS]   ##与[GRP]标签配置中的DCR_GRP_NAME保持一致

        DCR_EP_NAME = CSS1   ##节点CSS服务名

        DCR_EP_HOST = 192.168.233.105  #心跳ip

        DCR_EP_PORT = 5230  

        [GRP]

        DCR_GRP_TYPE = ASM

        DCR_GRP_NAME = GRP_ASM   ##ASM服务组名

        DCR_GRP_N_EP = 2

        DCR_GRP_DSKCHK_CNT = 60

        [GRP_ASM]   ##与ASM [GRP]标签配置中的DCR_GRP_NAME保持一致

        DCR_EP_NAME = ASM0  ##节点ASM服务名

        DCR_EP_SHM_KEY = 93360

        DCR_EP_SHM_SIZE = 10  #共享内存大小,每10M管理600G的ASM磁盘空间,初始化配置100,可管理6T

        DCR_EP_HOST = 192.168.233.104  #心跳ip

        DCR_EP_PORT = 5231

        DCR_EP_ASM_LOAD_PATH = /dev/raw/

  

        [GRP_ASM]  ##与ASM [GRP]标签配置中的DCR_GRP_NAME保持一致

        DCR_EP_NAME = ASM1  ##节点ASM服务名

        DCR_EP_SHM_KEY = 93361

        DCR_EP_SHM_SIZE = 10    #共享内存大小,每10M管理600G的ASM磁盘空间,初始化配置100,可管理6T

        DCR_EP_HOST = 192.168.233.105   #心跳ip

        DCR_EP_PORT = 5231

        DCR_EP_ASM_LOAD_PATH = /dev/raw   ##规划的磁盘目录

        [GRP]

        DCR_GRP_TYPE = DB

        DCR_GRP_NAME = GRP_DAMENG    ##DB服务组名

        DCR_GRP_N_EP = 2

        DCR_GRP_DSKCHK_CNT = 60

        [GRP_DAMENG]

        DCR_EP_NAME = DAMENG0

        DCR_EP_SEQNO = 0

        DCR_EP_PORT = 5236

        DCR_CHECK_PORT = 9741

        [GRP_DAMENG]

        DCR_EP_NAME = DAMENG1

        DCR_EP_SEQNO = 1

        DCR_EP_PORT = 5236

        DCR_CHECK_PORT = 9742

注:

  1. 不同节点服务器间对应的DCR_EP_PORT端口可以相同,但是两个服务器配的ASM的DCR_EP_SHM_KEY不能相同。
  2. dmdcr_cfg.ini只需在一个节点配置,后续DMASMCMD工具执行 init 语句会使用到。本集群在dsc1 节点上进行操作

3.7 使用DMASMCMD工具进行初始化

        只在一台机器上执行即可,此处dmdcr_cfg.ini配置文件在主节点dsc1上,所以执行初始化,也在dsc1完成即可。

执行初始化:

        /home/dmdba/dmdbms/bin/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/config/dmdcr_cfg.ini'identified by 'abcd'

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

注:

  1. 需切换dmdba用户,且只在dsc1节点上执行。
  2. 进行初始化之前对dmdba用户进行授权,不进行授权,执行初始化操作只能用 root用户进行,此操作后,使用dmdba用户进行初始化即可。

3.8 配置dmasvrmal.ini文件

vi /home/dmdba/config/dmasvrmal.ini

文件内容如下:

        [MAL_INST1]

        MAL_INST_NAME = ASM0

        MAL_HOST = 192.168.233.104

        MAL_PORT = 5233

        [MAL_INST2]

        MAL_INST_NAME = ASM1

        MAL_HOST = 192.168.233.105

        MAL_PORT = 5234

将dmasvrmal.ini文件拷贝给dsc2节点:

        scp dmasvrmal.ini dmdba@192.168.233.105: /home/dmdba/config

注:所有节点dmasvrmal.ini配置文件需保持一致。

3.9 配置dmdcr.ini文件

提示:两个节点分别配置dmdcr.ini,dmdcr_path相同, dmdcr_seqo分别为0和1

1、主节点dsc1的dmdcr.ini(控制节点)

        vi /home/dmdba/config/dmdcr.ini

文件内容如下:

        DMDCR_PATH = /dev/raw/raw1

        DMDCR_MAL_PATH =  /home/dmdba/config/dmasvrmal.ini

        DMDCR_SEQNO = 0

        DMDCR_AUTO_OPEN_CHECK = 90

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

        ##DMDCR_ASM_RESTART_INTERVAL = 71 

        ##DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmASMSvrServiceASM0 start  ##服务名与注册的服务名保持一致

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

        ##DMDCR_DB_RESTART_INTERVAL = 81

       ##DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServiceDAMENG0 start    

       

2、主节点dsc2的dmdcr.ini(普通节点)

        DMDCR_PATH = /dev/raw/raw1

        DMDCR_MAL_PATH = /home/dmdba/config/dmasvrmal.ini

        DMDCR_SEQNO = 1

        DMDCR_AUTO_OPEN_CHECK = 90

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

        ##DMDCR_ASM_RESTART_INTERVAL = 71 

        ##DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmASMSvrServiceASM1 start  ##服务名与注册的服务名保持一致

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

        ##DMDCR_DB_RESTART_INTERVAL = 81

        ##DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServiceDAMENG1 start  

        注:如果DMDCR_DB_RESTART_INTERVAL/DMDCR_ASM_RESTART_INTERVAL配置为 0,则不会执行自动拉起操作,默认为 60s。

        配置过程中dmdcr.ini中先不将ASM服务和DMSERVER自动拉起,配置过程中先手动启动DMCSS、DMASM、DMSERVER服务,待所有配置都完成后,再修改dmdcr.ini将ASM服务和DMSERVER服务配置成自动拉起。

3.10 配置监控器dmcssm.ini

配置内容如下,两节点配置文件相同

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

    CSSM_CSS_IP = 192.168.233.104:5230  #与DMDCR_CFG.INI中CSS配置项的DCR_EP_HOST和DCR_EP_PORT保持一致

    CSSM_CSS_IP = 192.168.233.105:5230   #与DMDCR_CFG.INI中CSS配置项的DCR_EP_HOST和DCR_EP_PORT保持一致

        CSSM_LOG_PATH =/home/dmdba/dmdbms/log   #监视器日志文件存放路径

        CSSM_LOG_FILE_SIZE = 256      #每个日志文件大小上限

        CSSM_LOG_SPACE_LIMIT = 1024   #限定日志文件总占用空间

3.11 启动DMCSS和DMASM服务

dsc1和dsc2节点均在dmdba用户下执行(手动启动DMASM服务):

1、手动启动CSS服务

        cd /home/dmdba/dmdbms/bin

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

2、手动启动ASM服务

        cd /home/dmdba/dmdbms/bin

        ./dmasmsvr DCR_INI=/home/dmdba/config/dmdcr.ini

3.12 创建DMASM磁盘组

注:选择一个节点执行即可,本次操作在dsc1节点

        su – dmdba

        cd /home/dmdba/dmdbms/bin

        ./dmasmtool DCR_INI=/home/dmdba/config/dmdcr.ini

执行:

        create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'             --创建日志磁盘组

        create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'            --创建数据磁盘组

注:创建成功后可以在之前的两台主机ASM服务窗口中查看到信息

        cd /home/dmdba/dmdbms/bin

        ./dmasmcmd

        ASM > listdisks /dev/raw

3.13 配置dminit.ini文件

文件内容如下:

        db_name = DAMENG

        system_path = +DMDATA/data

        system = +DMDATA/data/DAMENG/system.dbf

        system_size = 128

        roll = +DMDATA/data/DAMENG/roll.dbf

        roll_size = 128

        main = +DMDATA/data/DAMENG/main.dbf

        main_size = 128

        ctl_path = +DMDATA/data/DAMENG/dm.ctl

        ctl_size = 8

        log_size = 256

        dcr_path = /dev/raw/raw1

        dcr_seqno = 0

        auto_overwrite = 1

        [DAMENG0]

        config_path = /data/dmdata/DAMENG0_config

        port_num = 5236

        mal_host = 192.168.233.104

        mal_port = 9340

        log_path = +DMLOG/DAMENG0_log01.log

        log_path = +DMLOG/DAMENG0_log02.log

        [DAMENG1]

        config_path = /data/dmdata/DAMENG1_config

        port_num = 5237

        mal_host = 192.168.233.105

        mal_port = 9341

        log_path = +DMLOG/DAMENG1_log01.log

        log_path = +DMLOG/DAMENG1_log02.log

注:只需要一个节点创建即可,此处在dsc1节点创建

3.14 dmini初始化数据库

在dsc1节点执行:

        cd /home/dmdba/dmdbms/bin

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

        执行完毕可以看到/data/dmdata/目录生成两个文件夹,因为是dsc1节点进行初始化,所以将DAMENG1_config传输至dsc2节点的/data/dmdata目录下。并将dsc1节点DAMENG1_config文件删除或者重命名。

        scp -r DAMENG1_config dmdba@192.168.233.105:/data/dmdata

注:传输之后需要看下dsc2节点的/data/dmdata目录下DAMENG1_config文件属组属主及权限。

3.15 启动实例

dsc1节点:

        cd /home/dmdba/dmdbms/bin

        ./dmserver /data/dmdata/DAMENG0_config/dm.ini dcr_ini=

        /home/dmdba/config/dmdcr.ini

dsc2节点:

        cd /home/dmdba/dmdbms/bin        

        ./dmserver   /data/dmdata/DAMENG1_config/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini

查看集群信息:

        /home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA

        Select * from v$dsc_ep_info;

3.16 切换root用户进行注册服务

1、停止数据库服务及ASM、CSS服务。Ctrl+c或者exit

2、注册CSS服务

dsc1节点

        cd /home/dmdba/dmdbms/script/root

        ./dm_service_installer.sh -t dmcss -p CSS0 -dcr_ini /home/dmdba/config/dmdcr.ini

关闭开机自启

        systemctl disable DmCSSServiceCSS0

dsc2节点:

        cd /home/dmdba/dmdbms/script/root

        ./dm_service_installer.sh -t dmcss -p CSS1 -dcr_ini /home/dmdba/config/dmdcr.ini

关闭开机自启

        systemctl disable DmCSSServiceDMCSS1

3、注册ASM服务

dsc1节点

        cd /home/dmdba/dmdbms/script/root

    ./dm_service_installer.sh -t dmasmsvr -p ASM0 -dcr_ini /home/dmdba/config/dmdcr.ini -y DmCSSServiceCSS0

关闭开机自启

        systemctl disable DmASMSvrServiceDMASM0.service

dsc2节点

        cd /home/dmdba/dmdbms/script/root

     ./dm_service_installer.sh -t dmasmsvr -p  ASM1 -dcr_ini /home/dmdba/config/dmdcr.ini -y DmCSSServiceCSS1

关闭开机自启

        systemctl disable DmASMSvrServiceASM1.service

4、注册SERVER服务

dsc1节点

        cd /home/dmdba/dmdbms/script/root

 ./dm_service_installer.sh -t dmserver -p DAMENG0 -dm_ini /data/dmdata/DAMENG0_config/dm.ini -y DmASMSvrServiceASM0 -dcr_ini /home/dmdba/config/dmdcr.ini

关闭开机自启

        systemctl disable DmServiceDAMENG0

dsc2节点:

        cd /home/dmdba/dmdbms/script/root

 ./dm_service_installer.sh -t dmserver -p DAMENG1 -dm_ini /data/dmdata/DAMENG1_config/dm.ini -y DmASMSvrServiceASM1 -dcr_ini /home/dmdba/config/dmdcr.ini

关闭开机自启

        systemctl disable DmServiceDAMENG1

注:注册完成服务,请将dmdcr.ini文件注释的ASM和DB服务注释部分取消,重启路径中实例名修改注册的服务名。

3.17 DMDSC启动、关闭流程

启动顺序:

        DMCSS—>DMASMSVR—>DMSERVICE
关闭顺序:

        DMSERVICE—>DMASMSVR—>DMCSS。

四 故障及修复

4.1监听端口报错

1、报错信息:

        dmcss startup failed,[CODE:-1],error info:css_lsnr_create_sock failed, code:[-1]

2、解决方案:

(1)查看服务是否启动systemctl status DmCSSServiceCSS0,若没有启动则先启动服务。

(2)查看端口占用情况 netstat -ntulp | grep 9341。

         若被占用,则查看占用端口的进程号lsof -i :9341

         杀死对应进程 kill -9 PID

(3)查看防火墙和访问控制 getenforce

4.2 CSS启动失败

1、问题描述

        注册服务后启动CSS服务失败,手动启动也是失败。

2、解决方案

 (1)看报错提示,简单错误可以直接解决。

 (2)跳转到日志文件路径下,查看最新生成的相关的志文件,主要关注 error 和 warning 信息。

 (3)查看防火墙和访问控制。

 (4)检查配置文件。

 (5)检查文件权限。

 (6)先启动一个节点在启动另外的节点,避免争夺控制节点。

4.3 ASM连接异常

1、问题描述

        dmasm api init failed,[code:-11041] ASM connection exception

2、解决方案

(1)查看磁盘分区是否错误。

        cd /home/dmdba/dmdbms/bin

        ./dmasmcmd

        ASM > listdisks /dev/raw

(2)查看CSS服务和ASM服务是否开启。

(3)查看防火墙是否关闭

(4)检查配置文件、端口、外部虚拟机的磁盘与网卡等。

社区地址:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值