• 达梦主备部署


    一.概括

    1)环境软件下载

    环境:centos7 x86
    达梦版本开发版:dm8_20231011_x86_rh6_64
    下载地址官网下载:https://eco.dameng.com/download/?_blank
    百度网盘下载:链接:https://pan.baidu.com/s/15nG4oRGf0BzEzZf3QQXubw  提取码:cc69
    odbc驱动下载:https://developer.aliyun.com/packageSearch?word=unixodbc
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2)集群规划

    组名称组ID
    GDW145331
    dmserver的IPdmwatcher的IPdmserver名称dmserver端口号MAL端口MAL守护进程端口dmwatcher端口
    192.168.1.5192.168.1.5DW1_015236533654365536
    192.168.1.6192.168.1.6DW1_01B5236533654365536
    dmmonitor的IP192.168.1.7监视器----

    二.安装

    192.168.1.5、192.168.1.6、192.168.1.7都要安装

    1)安装前

    创建组和用户,挂载磁盘。
    1.创建用户组

    groupadd dinstall
    
    • 1

    2.创建用户

    useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
    
    • 1

    3.修改用户密码

    passwd dmdba
    
    • 1

    4.修改文件最大打开数

    vi /etc/security/limits.conf
    
    • 1

    在文件最后添加以下四句话

    dmdba hard nofile 65536
    dmdba soft nofile 65536
    dmdba hard stack 32768
    dmdba soft stack 16384
    
    • 1
    • 2
    • 3
    • 4

    切换 dmdba用户查看是否生效

    su - dmdba
    ulimit -a
    
    • 1
    • 2

    5.挂载磁盘
    切换到root用户下,将.iso文件放到/opt目录下,执行如下命令挂载磁盘

    su root
    mount -o loop /opt/dm8_20231011_x86_rh6_64.iso /mnt
    
    • 1
    • 2

    6.修改tmp文件大小

    mount -o remount,size=3G /tmp
    
    • 1

    7.创建安装目录,修改权限

    mkdir /dm8
    chown dmdba:dinstall -R /dm8/
    chmod -R 755 /dm8
    
    • 1
    • 2
    • 3

    2)安装数据库

    1.安装

    su - dmdba
    cd /mnt/
    ./DMInstall.bin -i
    
    • 1
    • 2
    • 3
    1.默认中文
    2.key: n
    3.是否设置时区:y
       默认21
    4.典型安装
    5.安装目录:/dm8
    6.确认安装路径/dm8: y
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.创建DmAPService
    否则影响脱机备份

    su root
    /dm8/script/root/root_installer.sh
    
    • 1
    • 2

    三.主备机器部署

    以下操作都是在登录用户dmdba下执行

    1)初始化数据库

    (1)主库配置

    1.初始化实例

    source ~/.bash_profile 
    /dm8/bin/dminit path=/dm8/data/ page_size=32 extent_size=32 CASE_SENSITIVE=1 CHARSET=1  LOG_SIZE=2048 INSTANCE_NAME=DW1_01
    
    • 1
    • 2

    2.启动服务器,启动diqsl,通过disql修改dm.ini配置

    cd /dm8/bin
    ./dmserver /dm8/data/DAMENG/dm.ini
    
    • 1
    • 2

    新开控制台执行

    cd /dm8/tool
    ./disql
    SQL>conn SYSDBA/SYSDBA;
    
    • 1
    • 2
    • 3
    SP_SET_PARA_VALUE (2,'PORT_NUM',5236);
    SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
    SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
    SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
    SP_SET_PARA_VALUE (2,'MAL_INI',1);
    SP_SET_PARA_VALUE (2,'ARCH_INI',1);
    SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3.创建dmmal.ini主备配置文件

    [dmdba@~]# vi /dm8/data/DAMENG/dmmal.ini
    MAL_CHECK_INTERVAL         = 10  #MAL链路检测时间间隔
    MAL_CONN_FAIL_INTERVAL     = 10  #判定MAL链路断开的时间
    MAL_TEMP_PATH              = /dm8/data/malpath/  #临时文件目录
    MAL_BUF_SIZE               = 512  #单个MAL缓存大小,单位MB
    MAL_SYS_BUF_SIZE           = 2048  #MAL总大小限制,单位MB
    MAL_COMPRESS_LEVEL         = 0  #MAL消息压缩等级,0表示不压缩
    
    
    [MAL_INST1]
      MAL_INST_NAME            = DW1_01  #实例名,和 dm.ini的INSTANCE_NAME一致
      MAL_HOST                 = 192.168.1.5  #MAL系统监听TCP连接的IP地址
      MAL_PORT                 = 5336  #MAL系统监听TCP连接的端口
      MAL_INST_HOST            = 192.168.1.5  #实例的对外服务IP地址
      MAL_INST_PORT            = 5236  #实例对外服务端口,和dm.ini的PORT_NUM一致
      MAL_DW_PORT              = 5436  #实例对应的守护进程监听TCP连接的端口
      MAL_INST_DW_PORT         = 5536  #实例监听守护进程TCP连接的端口
    
    [MAL_INST2]
      MAL_INST_NAME            = DW1_01B
      MAL_HOST                 = 192.168.1.6
      MAL_PORT                 = 5336
      MAL_INST_HOST            = 192.168.1.6
      MAL_INST_PORT            = 5236
      MAL_DW_PORT              = 5436
      MAL_INST_DW_PORT         = 5536
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    4.创建dmarch.ini归档文件
    主库需要同步至备库,所以ARCH_DEST对应备库名称

    [dmdba@~]# vi /dm8/data/DAMENG/dmarch.ini
    [ARCHIVE_LOCAL]
      ARCH_TYPE                = LOCAL  #本地归档类型
      ARCH_DEST                = /dm8/data/DAMENG/arch/  #本地归档存放路径
      ARCH_FILE_SIZE           = 1024  #单个归档大小,单位MB
      ARCH_SPACE_LIMIT         = 51200  #归档上限,单位MB
    [ARCHIVE_REALTIME]
      ARCH_TYPE                = REALTIME  #实时归档类型
      ARCH_DEST                = DW1_01B  #实时归档目标实例名
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    5.创建dmwatcher.ini守护进程配置文件

    [dmdba@~]# vi /dm8/data/DAMENG/dmwatcher.ini
    [GDW1]
      DW_TYPE                  = GLOBAL  #全局守护类型
      DW_MODE                  = AUTO  #故障自动切换模式 
      DW_ERROR_TIME            = 20  #远程守护进程故障认定时间
      INST_ERROR_TIME          = 20  #本地实例故障认定时间
      INST_RECOVER_TIME        = 60  #主库守护进程启动恢复的间隔时间
      INST_OGUID               = 45331  #守护系统唯一OGUID值
      INST_INI                 = /dm8/data/DAMENG/dm.ini  #dm.ini文件路径
      INST_AUTO_RESTART        = 1  #打开实例的自动启动功能
      INST_STARTUP_CMD         = /dm8/bin/dmserver  #命令行方式启动
      RLOG_SEND_THRESHOLD      = 0  #指定主库发送日志到备库的时间阈值,默认关闭
      RLOG_APPLY_THRESHOLD     = 0  #指定备库重演日志的时间阈值,默认关闭
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    (2)备库配置

    1.初始化实例

    /dm8/bin/dminit path=/dm8/data/ page_size=32 extent_size=32 CASE_SENSITIVE=1 CHARSET=1  LOG_SIZE=2048 INSTANCE_NAME=DW1_01B
    
    • 1

    2.将主库的dm.ini、dmmal.ini、dmarch.ini、dmwatcher.ini的四个文件拷贝到/dm8/data/DAMENG/下

    3.修改dm.ini

    INSTANCE_NAME                   = DW1_01B
    
    • 1

    4.修改dmarch.ini

      ARCH_DEST                = DW1_01  #实时归档目标实例名
    
    • 1
    1. 启动服务器,初始化数据库
    cd /dm8/bin
    ./dmserver /dm8/data/DAMENG/dm.ini
    
    • 1
    • 2

    2)脱机备份

    即使是新dmini的数据,不做备份还原处理,主备服务器状态会一直是mount

    (1)主服务器上备份

    cd /dm8/bin
    ./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET  '/dm8/data/BACKUP_FILE_01'"
    
    • 1
    • 2

    将备份生成的文件BACKUP_FILE_01拷贝到备库服务器的/dm8/data/DAMENG/下

    (2)备服务上还原更新

    cd /dm8/bin
    ./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/BACKUP_FILE_01'"
    
    • 1
    • 2
    ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
    
    • 1

    (3)注释

    备份还原如果提示:[-7170]:bakres连接DMAP失败

    cd /dm8/bin
    ./DmAPService start
    
    • 1
    • 2

    3)启动服务器

    (1)主服务器上

    1.启动主服务器

    cd /dm8/bin
    ./dmserver /dm8/data/DAMENG/dm.ini mount
    
    • 1
    • 2

    2.新开控制台,disql设置主机模式

    cd /dm8/tool
    ./disql
    SQL>conn SYSDBA/SYSDBA;
    
    • 1
    • 2
    • 3
    SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
    sp_set_oguid(45331);
    alter database primary;
    SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
    
    • 1
    • 2
    • 3
    • 4

    3.启动守护进程

    cd /dm8/bin
    ./dmwatcher /dm8/data/DAMENG/dmwatcher.ini
    
    • 1
    • 2

    (3)备服务器上

    1.启动主服务器

    cd /dm8/bin
    ./dmserver /dm8/data/DAMENG/dm.ini mount
    
    • 1
    • 2

    2.新开控制台,disql设置备机模式

    cd /dm8/tool
    ./disql
    SQL>conn SYSDBA/SYSDBA;
    
    • 1
    • 2
    • 3
    SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
    sp_set_oguid(45331);
    alter database standby; 
    SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
    
    • 1
    • 2
    • 3
    • 4

    3.启动守护进程

    cd /dm8/bin
    ./dmwatcher /dm8/data/DAMENG/dmwatcher.ini
    
    • 1
    • 2

    (3)监控服务器上

    1.添加dmmonitor.ini 监控服务配置

    [dmdba@~]# vi /dm8/monitor/dmmonitor.ini
    MON_DW_CONFIRM             = 1  #0为非确认,1为确认
    MON_LOG_PATH               = /dm8/monitor/log  #监视器日志文件存放路径
    MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
    MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位MB
    MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位MB
    
    [GDW1]
      MON_INST_OGUID           = 45331  #组GDW1的唯一OGUID 值
      MON_DW_IP                = 192.168.1.5:5436  #IP对应MAL_HOST,PORT对应MAL_DW_PORT
      MON_DW_IP                = 192.168.1.6:5436
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    2.启动监控服务器

    cd /dm8/bin
    ./dmmonitor /dm8/monitor/dmmonitor.ini
    
    • 1
    • 2

    4)添加服务实现开机自启

    cd /dm8/script/root/
    ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DAMENG/dm.ini -p DMSERVER
    ./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DAMENG/dmwatcher.ini -p A
    ./dm_service_installer.sh -t dmmonitor -monitor_ini /dm8/monitor/dmmonitor.ini -p M
    
    • 1
    • 2
    • 3
    • 4

    DmServiceDMSERVER
    DmWatcherServiceA
    DmMonitorServiceM

    四.odbc驱动链接

    1.安装驱动后查看配置

    [root@localhost dm8]# odbcinst -j
    unixODBC 2.3.7
    DRIVERS............: /etc/odbcinst.ini
    SYSTEM DATA SOURCES: /etc/odbc.ini
    FILE DATA SOURCES..: /etc/ODBCDataSources
    USER DATA SOURCES..: /root/.odbc.ini
    SQLULEN Size.......: 8
    SQLLEN Size........: 8
    SQLSETPOSIROW Size.: 8
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.修改:\etc\dm_svc.conf

    DMHA=(192.168.1.5:5236,192.168.1.6:5236)
    LOGIN_MODE=(1) 
    SWITCH_TIMES=(3)
    SWITCH_INTERVAL=(100) 
    
    • 1
    • 2
    • 3
    • 4

    LOGIN_MODE=(1):只连接主库
    SWITCH_TIMES=(3):以服务名连接库时,若未找到符合条件的库建立连接,将尝试遍历服务名中库列表的次数
    SWITCH_INTERVAL=(100):在服务器之间切换的时间间隔,单位为毫秒

    3.修改:\etc\odbc.ini

    [dm8]
    Description = DM ODBC DSN
    Driver = DM8 ODBC DRIVER
    SERVER = DMHA
    UID = SYSDBA
    PWD = SYSDBA
    TCP_PORT = 5236
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4.检测链接

    [root@localhost dm8]# isql -v DM8
    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    SQL>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    Docker容器教程 - 从入门安装 --> Compose编排Java服务 --> 重量级监控(建议收藏)
    手写 分页
    电脑操作系统你真的搞懂了分类?(第五十三课)
    uniapp 微信小程序端使用百度地图API
    Day667.开发避免踩坑注意点 -Java业务开发常见错误
    常见的java话题
    Windows 小工具之 Wifi 固定器
    恒星的正方形问题
    【SpringBoot】启动过程之——SpringApplication初始化及运行
    分享股票下单API接口的方式和API攻略
  • 原文地址:https://blog.csdn.net/cxd1314520/article/details/134282125