达梦数据库(dm8) Centos7 高可用集群

当前安装:在指定版本环境下 测试,仅供参考

  • 官网描述:
    达梦数据守护集群软件(DM Data Watch)是一种集成化的高可靠性解决方案,该方案基于数据库REDO日志,不依赖于第三方软件和存储,用于解决由于硬件故障、自然灾害等原因导致的数据库服务长时间中断问题,提供不间断数据库服务,可同时满足用户对数据安全性和高可用性的要求。数据守护包含的主要部件有:主数据库、备数据库、联机REDO日志系统、本地REDO日志归档服务、实时REDO日志归档服务、REDO日志重做服务、MAL系统、守护进程和监视器。其中,守护进程和监视器是两个独立的工具,其他部件集成在DM8数据库服务器DMSERVER中。
  • 实时监控:
    达梦数据守护能够提供主备机切换、备机接管、应用自动重连、自动同步历史数据功能,通过监控工具DMWMON,可实时监控主、备数据库的状态和数据同步情况。

一、环境详情

  1. 软件版本

    软件版本下载地址
    Centos 7CentOS Linux release 7.9.2009 (Core) x86清华镜像站: link
    达梦数据库dm8_20230418_x86_rh6_64.zip官网: link
  2. 节点分配
    如有需要还可以多配置一个副监视器(node4),部署方式和node3一致

    节点IP角色数据库名实例名portmal inst_dw_portmal dw_port
    node1192.168.162.221主机DM01DMSERVER0152364510165101
    node2192.168.162.222备机DM01DMSERVER0252364510165101
    node3192.168.162.223主监视器

二、Centos7 参数优化(所有节点)

  1. 关闭防火墙
    可以设置防火墙开放 5236 端口,或者直接关闭防火墙,这里选择直接关闭。
  • 关闭防火墙: systemctl stop firewalld
  • 禁止开机自启: systemctl disable firewalld
  1. 修改系统最大进程数和最大文件打开数

    vim /etc/security/limits.conf
    
    修改以下内容:
    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096
    
  2. 修改进程数据限制

    vim /etc/security/limits.d/90-nproc.conf
    修改以下内容:
    * soft nproc 1024
    * soft nproc 2048
    

    查看优化信息

    ulimit -a
    

三、创建用户(所有节点)

  1. 登录 root 创建 mss 用户

    groupadd mss
    useradd -m -d /home/mss mss -g mss 
    passwd mss123456
    
  2. 创建目录
    登录 mss 用户

    # 创建安装目录
    mkdir /home/mss/dm8
    # 创建镜像目录
    mkdir /home/mss/dm8/iso
    

四、开始安装(所有节点)

  1. 上传镜像
    上传镜像文件(dm8_20230418_x86_rh6_64.iso)到 /home/mss/dm8 下

  2. 挂载镜像
    切换 root 用户

    mount /home/mss/dm8/dm8_20230418_x86_rh6_64.iso /home/mss/dm8/iso/
    # 查看是否挂载
    df -h
    

    授权 mss 用户目录权限

    chown -R mss:mss /home/mss
    
  3. 创建其它文件夹
    切换 mss 用户

    cd /home/mss/dm8
    mkdir install
    
  4. 执行安装

    cd /home/mss/dm8/iso
    ./DMInstall.bin -i
    

    在这里插入图片描述
    选择典型安装-1,安装路径 /home/mss/dm8/install
    安装完成提示:
    在这里插入图片描述

    数据库安装完成后,需要切换至 root 用户执行上图中的命令 root_installer.sh 创建 DmAPService,否则会影响数据库备份。

    su root
    cd  /home/mss/dm8/install/script/root
    ./root_installer.sh
    
  5. 创建实例

    切换 mss 用户
    注: 关于这些参数说明可进入安装目录的bin下,执行./dminit help
    CASE_SENSITIVE:字符串比较大小写敏感,默认开启1(区分大小写),设置为 0 则不区分大小写
    LENGTH_IN_CHAR:VARCHAR 类型对象,是否以字符为单位,默认开启0。1、Y 表示是,0、N 表示否。若是 gb18030 字符集,varchar(2) 才可以存一个汉字;若是 UTF-8 字符集,varchar(3) 才可以存一个汉字。mysql一般以字符为单位,在迁移时VARCHAR最好设置1。
    CHARSET:此参数表示了数据库中所有数据的字符集,包括数据字典的字符集。取值:0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。默认为 0
    SYSAUDITOR_PWD:密码
    PORT_NUM:端口
    LOG_SIZE:该参数控制日志文件使用的簇大小,以 M为单位, 默认每个日志文件大小为 256M,可以配置为64和 2048之间的整数。每个数据库实例至少有两个重做日志文件,循环使用。如果设置过小,更新等较大的事务,可能会导致redo log 频繁切换,从而影响数据库性能。 推荐值:2048M。该参数在创建实例后是可以进行修改的,修改后重启实例。

    在 node1 创建实例一:

    cd /home/mss/dm8/install/bin
    ./dminit path=/home/mss/dm8/data DB_NAME=DM01 INSTANCE_NAME=DBSERVER01 CASE_SENSITIVE=0  PORT_NUM=5236 SYSDBA_PWD=casic@123456 SYSAUDITOR_PWD=casic@123456 PAGE_SIZE=32 EXTENT_SIZE=32  LENGTH_IN_CHAR=1 CHARSET=1  LOG_SIZE=2048
    

    在 node2 创建实例二:

    cd /home/mss/dm8/install/bin
    ./dminit path=/home/mss/dm8/data DB_NAME=DM01 INSTANCE_NAME=DBSERVER02 CASE_SENSITIVE=0  PORT_NUM=5236 SYSDBA_PWD=casic@123456 SYSAUDITOR_PWD=casic@123456 PAGE_SIZE=32 EXTENT_SIZE=32  LENGTH_IN_CHAR=1 CHARSET=1  LOG_SIZE=2048
    

    在 node3 创建监视器:

    cd /home/mss/dm8/install/bin
    ./dminit path=/home/mss/dm8/data DB_NAME=DM01
    
  6. 配置实例参数
    切换 mss 用户

    配置 node1 实例一:------------------------------------------------------------------

    cd /home/mss/dm8/data/DM01
    

    (1)配置dm.ini

    INSTANCE_NAME =DBSERVER01
    PORT_NUM = 5236
    DW_INACTIVE_INTERVAL = 60
    #不允许手工方式修改实例模式/状态/OGUID
    ALTER_MODE_STATUS = 0
    #不允许备库 OFFLINE 表空间
    ENABLE_OFFLINE_TS = 2
    #打开 MAL 系统
    MAL_INI = 1
    #打开归档配置
    ARCH_INI = 1
    #统计最近 64 次的日志重演信息
    RLOG_SEND_APPLY_MON = 64
    

    (2)新建dmmal.ini

    #配置上端口规划中规划的各端口参数:
    #PORT_NUM、MAL_INST_DW_PORT、MAL_DW_PORT
    #[MAL_INST1]中填写主机的、
    #[MAL_INST2]中填写备机的
    
    MAL_CHECK_INTERVAL = 5
    MAL_CONN_FAIL_INTERVAL = 5
    
    [MAL_INST1]
    MAL_INST_NAME = DBSERVER01
    MAL_HOST = 192.168.162.221
    MAL_PORT = 55101
    MAL_INST_HOST = 192.168.162.221
    MAL_INST_PORT = 5236
    MAL_DW_PORT = 65101
    MAL_INST_DW_PORT = 45101
    
    [MAL_INST2]
    MAL_INST_NAME = DBSERVER02
    MAL_HOST = 192.168.162.222
    MAL_PORT = 55101
    MAL_INST_HOST = 192.168.162.222
    MAL_INST_PORT = 5236
    MAL_DW_PORT = 65101
    MAL_INST_DW_PORT = 45101
    

    (3)新建dmarch.ini

    [ARCHIVE_REALTIME]
    ARCH_TYPE = REALTIME
    ARCH_DEST =DBSERVER02
    	
    [ARCHIVE_LOCAL1]
    ARCH_TYPE = LOCAL
    ARCH_DEST = /home/mss/dm8/data/DM01/arch
    ARCH_FILE_SIZE = 128
    ARCH_SPACE_LIMIT = 0
    

    (4)新建dmwatcher.ini

    [GRP1]
    DW_TYPE = GLOBAL
    DW_MODE = AUTO
    DW_ERROR_TIME = 10
    INST_RECOVER_TIME = 60
    INST_ERROR_TIME = 10
    INST_OGUID = 453331
    INST_INI = /home/mss/dm8/data/DM01/dm.ini
    INST_AUTO_RESTART = 1
    INST_STARTUP_CMD = /home/mss/dm8/install/bin/dmserver
    RLOG_SEND_THRESHOLD = 0
    RLOG_APPLY_THRESHOLD = 0
    

    配置 node2 实例二:------------------------------------------------------------------

    cd /home/mss/dm8/data/DM01
    

    (1)配置dm.ini

    INSTANCE_NAME = DBSERVER02
    PORT_NUM = 5236
    DW_INACTIVE_INTERVAL = 60
    ALTER_MODE_STATUS = 0
    ENABLE_OFFLINE_TS = 2
    MAL_INI = 1
    ARCH_INI = 1
    RLOG_SEND_APPLY_MON = 64
    

    (2)新建dmmal.ini

    #配置上端口规划中规划的各端口参数:
    #PORT_NUM、MAL_INST_DW_PORT、MAL_DW_PORT
    #[MAL_INST1]中填写主机的、
    #[MAL_INST2]中填写备机的
    
    MAL_CHECK_INTERVAL = 5
    MAL_CONN_FAIL_INTERVAL = 5
    
    [MAL_INST1]
    MAL_INST_NAME = DBSERVER01
    MAL_HOST = 192.168.162.221
    MAL_PORT = 55101
    MAL_INST_HOST = 192.168.162.221
    MAL_INST_PORT = 5236
    MAL_DW_PORT = 65101
    MAL_INST_DW_PORT = 45101
    
    [MAL_INST2]
    MAL_INST_NAME = DBSERVER02
    MAL_HOST = 192.168.162.222
    MAL_PORT = 55101
    MAL_INST_HOST = 192.168.162.222
    MAL_INST_PORT = 5236
    MAL_DW_PORT = 65101
    MAL_INST_DW_PORT = 45101
    

    (3)新建dmarch.ini

    [ARCHIVE_REALTIME]
    ARCH_TYPE = REALTIME
    ARCH_DEST =DBSERVER01
    
    [ARCHIVE_LOCAL1]
    ARCH_TYPE = LOCAL
    ARCH_DEST = /home/mss/dm8/data/DM01/arch
    ARCH_FILE_SIZE = 128
    ARCH_SPACE_LIMIT = 0
    

    (4)新建dmwatcher.ini

    [GRP1]
    DW_TYPE = GLOBAL
    DW_MODE = AUTO
    DW_ERROR_TIME = 10
    INST_RECOVER_TIME = 60
    INST_ERROR_TIME = 10
    INST_OGUID = 453331
    INST_INI = /home/mss/dm8/data/DM01/dm.ini
    INST_AUTO_RESTART = 1
    INST_STARTUP_CMD = /home/mss/dm8/install/bin/dmserver
    RLOG_SEND_THRESHOLD = 0
    RLOG_APPLY_THRESHOLD = 0
    

    配置 node3 监视器:------------------------------------------------------------------

    cd /home/mss/dm8/data/DM01
    

    (1)新建dmmonitor.ini

    # 0表示普通监视器 ,最多配置8个,1 确认监视器模式
    MON_DW_CONFIRM = 1
    MON_LOG_PATH = /home/mss/dm8/install/log
    # 每隔 60s 定时记录系统信息到日志文件
    MON_LOG_INTERVAL = 60
    # 每个日志文件最大 32M
    MON_LOG_FILE_SIZE = 32
    # 不限定日志文件总占用空间
    MON_LOG_SPACE_LIMIT = 0
    
    [GRP1]
    #组 GRP1 的唯一OGUID 值
    MON_INST_OGUID = 453331
    ##dmmal.ini####MAL_HOST:MAL_DW_PORT###################
    MON_DW_IP = 192.168.162.221:65101
    MON_DW_IP = 192.168.162.222:65101
    
  7. **备份主机数据库 node1 **
    登录 node1 服务器

    su mss
    cd /home/mss/dm8/install/bin/
    # 初始化
    ./dmserver /home/mss/dm8/data/DM01/dm.ini 
    
    #如果dmap没启动执行以下命令
    ./dmap
    
    #执行备份
    ./dmrman CTLSTMT="BACKUP DATABASE '/home/mss/dm8/data/DM01/dm.ini' FULL TO fullbak01 BACKUPSET '/home/mss/dm8/backup/fullbak01'"
    拷贝221备份文件到222
    scp -r /home/mss/dm8/backup mss@192.168.162.222:/home/mss/dm8/
    
  8. **在备份机还原数据库 node2 **
    登录 node2 服务器

    su mss
    cd /home/mss/dm8/install/bin/
    
    #如果dmap没启动执行以下命令
    ./dmap
    
    ./dmrman CTLSTMT="RESTORE DATABASE '/home/mss/dm8/data/DM01/dm.ini' FROM BACKUPSET '/home/mss/dm8/backup/fullbak01'"
    ./dmrman CTLSTMT="RECOVER DATABASE '/home/mss/dm8/data/DM01/dm.ini' FROM BACKUPSET '/home/mss/dm8/backup/fullbak01'"
    ./dmrman CTLSTMT="RECOVER DATABASE '/home/mss/dm8/data/DM01/dm.ini' UPDATE DB_MAGIC"
    
  9. 主机与备机分别以mount方式启动数据库
    在 node1、node2 分别执行以下命令

    cd /home/mss/dm8/install/bin/
    #如果dmap没启动执行以下命令
    ./dmap
    ./dmserver /home/mss/dm8/data/DM01/dm.ini  mount
    
    #创建实例时已经设置 SYSDBA 密码为 casic@123456
    ./disql
    SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
    SQL> SP_SET_OGUID(453331);
    SQL> ALTER DATABASE PRIMARY;
    SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
    
  10. 启动测试服务
    (1) node1 221 机器:

    cd /home/mss/dm8/install/bin/
    ./dmserver /home/mss/dm8/data/DM01/dm.ini  mount
    ./dmwatcher /home/mss/dm8/data/DM01/dmwatcher.ini
    

    在这里插入图片描述
    (2) node1 222 机器:

    cd /home/mss/dm8/install/bin/
    ./dmserver /home/mss/dm8/data/DM01/dm.ini  mount
    ./dmwatcher /home/mss/dm8/data/DM01/dmwatcher.ini
    

    (3) node3 223 机器:

    cd /home/mss/dm8/install/bin/
    ./dmmonitor /home/mss/dm8/data/DM01/dmmonitor.ini
    

    在这里插入图片描述

五、服务注册启动

  1. 进行服务注册

    切换 root 用户
    (1)node1 221 机器 实例一

    su root
    cd  /home/mss/dm8/install/script/root
    ./dm_service_installer.sh -p DMSERVER -t dmserver -dm_ini /home/mss/dm8/data/DM01/dm.ini 
    ./dm_service_installer.sh -p dmwatcher -t dmwatcher -watcher_ini  /home/mss/dm8/data/DM01/dmwatcher.ini
    

    (2)node2 222 机器 实例二

    su root
    cd  /home/mss/dm8/install/script/root
    ./dm_service_installer.sh -p DMSERVER -t dmserver -dm_ini /home/mss/dm8/data/DM01/dm.ini 
    ./dm_service_installer.sh -p dmwatcher -t dmwatcher -watcher_ini  /home/mss/dm8/data/DM01/dmwatcher.ini
    

    (3)node3 223 机器 监测

    su root
    cd  /home/mss/dm8/install/script/root
    ./dm_service_installer.sh -p dmmonitor  -t dmmonitor -monitor_ini   /home/mss/dm8/data/DM01/dmmonitor.ini
    

    //注释: 此命令为删除服务:./dm_service_uninstaller.sh -n DmServiceDMSERVER

  2. 启停数据库命令
    (1)node1 221 机器 实例一

    # 启动
    systemctl start DmServiceDMSERVER.service
    systemctl start DmWatcherServicedmwatcher.service
    # 停止
    systemctl stop DmServiceDMSERVER.service
    systemctl stop DmWatcherServicedmwatcher.service
    # 重启
    systemctl restart DmServiceDMSERVER.service
    systemctl restartDmWatcherServicedmwatcher.service
    # 状态
    systemctl status DmServiceDMSERVER.service
    

    (2)node2 222 机器 实例二

    # 启动
    systemctl start DmServiceDMSERVER.service
    systemctl start DmWatcherServicedmwatcher.service
    # 停止
    systemctl stop DmServiceDMSERVER.service
    systemctl stop DmWatcherServicedmwatcher.service
    # 重启
    systemctl restart DmServiceDMSERVER.service
    systemctl restartDmWatcherServicedmwatcher.service
    # 状态
    systemctl status DmServiceDMSERVER.service
    

    (3)node3 223 机器 监视器

    systemctl status DmMonitorServicedmmonitor.service
    systemctl start DmMonitorServicedmmonitor.service
    
  3. 连接数据库
    账户:SYSDBA
    密码:casic@123456

六、相关sql命令

	# 查询配置参数
	select * from v$option;
	
	# 结果:
	# GLOBAL_CHARSET: 0表示GB18030,1表示UTF-8,2代表韩文字符集ENU-KR,默认为0。
	# LENGTH_IN_CHAR: 0表示长度不是以字符为单位,1表示长度以字符为单位,默认为0。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在CentOS 7中安装达梦数据库 8,你可以按照以下步骤进行操作: 1. 下载达梦数据库 8 的安装包: 前往达梦官方网站(https://www.dameng.com/)下载达梦数据库 8 的安装包。选择适用于 CentOS 7 的版本,并确保下载的是与你服务器架构(32位或64位)相匹配的版本。 2. 解压安装包: 在终端或命令行界面中,使用以下命令解压下载的安装包(假设下载的文件名为 `dameng-db-8.0.0.tar.gz`): ``` tar -zxvf dameng-db-8.0.0.tar.gz ``` 3. 进入解压后的目录: 使用以下命令进入解压后的达梦数据库安装目录: ``` cd dameng-db-8.0.0 ``` 4. 执行安装脚本: 运行安装脚本 `install.sh` 来执行达梦数据库的安装。在终端或命令行界面中,使用以下命令: ``` ./install.sh ``` 5. 按照提示进行安装: 安装脚本会提示一些配置选项,如安装路径、端口号、管理员密码等。根据实际需求进行配置,并按照提示完成安装过程。 6. 启动达梦数据库: 安装完成后,使用以下命令启动达梦数据库: ``` dmmysql start ``` 7. 验证安装: 运行以下命令验证达梦数据库的安装: ``` dmmysql -u <username> -p ``` 其中,`<username>` 是管理员用户名。输入管理员密码后,如果成功登录到达梦数据库的命令行界面,则表示安装成功。 完成以上步骤后,你就在CentOS 7上成功安装了达梦数据库 8。你可以根据需要进行进一步的配置和使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值