欢迎光临
我们一直在努力

达梦本机主备的安装及报错解决

本机主备是在单台服务器上部署两个独立的数据库实例,通过端口错开、目录分离、独立进程等方式实现逻辑层面的主备隔离,使二者能够完成数据同步与故障自动切换。但由于两个实例共享同一套物理资源,该架构仅能应对数据库进程或实例级别的故障,无法防范服务器硬件损坏、操作系统崩溃、磁盘故障等底层风险。

一、环境信息与规划

1、基本信息

操作系统版本为银河麒麟高级服务器操作系统V10

达梦数据库版本为DM8 V8 64位版本(dm8_20260428_x86_kylin10_sp3_64)

虚拟化平台:Oracle VM VirtualBox7.1.6

远程管理工具:MobaXterm

数据库管理工具:达梦数据库管理工具

2、网络规划

3、端口规划

4、实例路径规划

5、归档文件路径规划

二、新建虚拟机dm111

1、在VirtualBox中新建虚拟机,命名为dm111放在D盘;使用麒麟操作系统ISO镜像

网络连接方式改为Host-Only显示设置放大至 250%

  • 启动虚拟机,选择中文,磁盘分区默认,软件选择最小安装。
  • 3、网络和主机名中打开以太网开关,配置IPv4ip设置成192.168.56.111,子网掩

    设置成255.255.255.0,网关设置成192.168.56.1;勾选"需要 IPv4 地址完成这个连接";主机名设置为 dm111应用。

    4、设置 root 密码后进行安装,完成后重启。

    5、登录root用户,并配置网卡自动启动。

    即:vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

    将ONBOOT=no 改成 ONBOOT=yes

    三、系统环境配置

    1、挂载镜像

    将虚拟机的光驱从麒麟系统替换成达梦安装包。

    mount /dev/cdrom /media

    2、创建用户

    cd /media/

    groupadd dinstall

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

    passwd dmdba

    3、修改存放目录后进行安装

    export DM_INSTALL_TMPDIR=/home

    ./DMInstall.bin -i

    (选择简体中文;不输入key;时区21;典型安装;默认路径)

    4、配置环境变量

    su – dmdba

    vi .bash_profile

    在里面添加:export PATH=$PATH:$DM_HOME/bin

    source .bash_profile

    5、给dmdba权限并创建data目录

    cd /opt

    mkdir data

    chown -R dmdba:dinstall data/

    su – dmdba

    6、关闭防火墙

    sudo systemctl stop firewalld

    sudo systemctl disable firewalld

    sudo systemctl status firewalld

    四、本机主备集群配置

    1、创建数据目录并赋权:

    mkdir -p /opt/data/dmdw01

    mkdir -p /opt/data/dmdw02

    mkdir -p /opt/data/arch01

    mkdir -p /opt/data/arch02

    chown -R dmdba:dinstall /opt/data/

    2、初始化主库实例 dmdw01(端口 5236)

    su – dmdba

    dminit path=/opt/data/dmdw01 db_name=dmdw instance_name=dmdw01 port_num=5236 sysdba_pwd=Zhangxinyu-0221 sysauditor_pwd=Zhangxinyu-0221

    启动实例:

    dmserver /opt/data/dmdw01/dmdw/dm.ini

    SYSTEM IS READY后退出

    3、初始化备库实例 dmdw02(端口 5237)

    dminit path=/opt/data/dmdw02 db_name=dmdw instance_name=dmdw02 port_num=5237 sysdba_pwd=Zhangxinyu-0221 sysauditor_pwd=Zhangxinyu-0221

    启动实例:

    dmserver /opt/data/dmdw02/dmdw/dm.ini

    SYSTEM IS READY后退出

  • 主库备份与备库还原
  • 创建备份目录并赋权:

    su – root

    mkdir -p /opt/dbfull01

    chown -R dmdba:dinstall /opt/dbfull01

    su – dmdba后进行:

    使用dmrman工具进行主库备份:

    dmrman

    backup database '/opt/data/dmdw01/dmdw/dm.ini' backupset '/opt/dbfull01';

    exit退出

    使用dmrman工具进行备库还原

    dmrman

    restore database '/opt/data/dmdw02/dmdw/dm.ini' from backupset '/opt/dbfull01';

    recover database '/opt/data/dmdw02/dmdw/dm.ini' from backupset '/opt/dbfull01';

    recover database '/opt/data/dmdw02/dmdw/dm.ini' update db_magic;

    exit退出

    5、修改dmdw01和dmdw02的dm.ini

    vi /opt/data/dmdw01/dmdw/dm.ini

    6、主备机上都创建dmarch.ini

    主库:vi /opt/data/dmdw01/dmdw/dmarch.ini,写入:

    [ARCHIVE_REALTIME]

    ARCH_TYPE = REALTIME

    ARCH_DEST = dmdw02

    [ARCHIVE_LOCAL1]

    ARCH_TYPE = LOCAL

    ARCH_DEST = /opt/data/arch01

    ARCH_FILE_SIZE = 1024

    ARCH_SPACE_LIMIT = 51200

    备库:vi /opt/data/dmdw02/dmdw/dmarch.ini,写入:

    [ARCHIVE_REALTIME]

    ARCH_TYPE = REALTIME

    ARCH_DEST = dmdw01

    [ARCHIVE_LOCAL1]

    ARCH_TYPE = LOCAL

    ARCH_DEST = /opt/data/arch02

    ARCH_FILE_SIZE = 1024

    ARCH_SPACE_LIMIT = 51200

    7、主备机上都创建 dmmal.ini

    注意:单节点主备必须使用真实网卡 IP(192.168.56.111),不能使用 127.0.0.1,否则 MAL 初始化会失败。

    主库:vi /opt/data/dmdw01/dmdw/dmmal.ini

    备库:vi /opt/data/dmdw02/dmdw/dmmal.ini

    都写入:

    MAL_CHECK_INTERVAL = 5

    MAL_CONN_FAIL_INTERVAL = 5

    [MAL_INST1]

    MAL_INST_NAME = dmdw01

    MAL_HOST = 192.168.56.111

    MAL_PORT = 61141

    MAL_INST_HOST = 192.168.56.111

    MAL_INST_PORT = 5236

    MAL_DW_PORT = 52141

    MAL_INST_DW_PORT = 33141

    [MAL_INST2]

    MAL_INST_NAME = dmdw02

    MAL_HOST = 192.168.56.111

    MAL_PORT = 61142

    MAL_INST_HOST = 192.168.56.111

    MAL_INST_PORT = 5237

    MAL_DW_PORT = 52142

    MAL_INST_DW_PORT = 33142

    8、主备机上都创建dmwatcher.ini

    主库:vi /opt/data/dmdw01/dmdw/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 = /opt/data/dmdw01/dmdw/dm.ini

    INST_AUTO_RESTART = 1

    INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver

    备库:vi /opt/data/dmdw02/dmdw/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 = /opt/data/dmdw02/dmdw/dm.ini

    INST_AUTO_RESTART = 1

    INST_STARTUP_CMD = /opt/dmdbms/bin/dmserver

    9、启动主备集群(分别开启多个终端执行以下命令)

    (1)在终端1上启动主库为 mount 状态

    dmserver /opt/data/dmdw01/dmdw/dm.ini mount

    (2)在终端2上登录主库,设置 primary

    disql sysdba/Zhangxinyu-0221@192.168.56.111:5236

    SQL> sp_set_oguid(453331);

    SQL> alter database primary;

    SQL> exit

    (3)在终端3上启动备库为 mount 状态

    dmserver /opt/data/dmdw02/dmdw/dm.ini mount

    (4)在终端4上登录备库,设置 standby

    disql sysdba/Zhangxinyu-0221@192.168.56.111:5237

    SQL> sp_set_oguid(453331);

    SQL> alter database standby;

    SQL> exit

    (5)在终端5上启动主库守护进程

    主库:dmwatcher /opt/data/dmdw01/dmdw/dmwatcher.ini

    (6)在终端6上启动备库守护进程

    备库:dmwatcher /opt/data/dmdw02/dmdw/dmwatcher.ini

    (守护进程启动后,主备库会自动 open)

    10、验证主备同步

    连接主库:disql sysdba/Zhangxinyu-0221@192.168.56.111:5236

    SQL> select * from v$instance;

    应该显示 MODE = PRIMARY, STATUS = OPEN

    连接备库:disql sysdba/Zhangxinyu-0221@192.168.56.111:5237

    SQL> select * from v$instance;

    应该显示 MODE = STANDBY, STATUS = OPEN

    11、在主库上配置监视器

    vi /opt/data/dmdw01/dmmonitor.ini后写入:

    MON_DW_CONFIRM = 1

    MON_LOG_PATH = /opt/data/log

    MON_LOG_INTERVAL = 60

    MON_LOG_FILE_SIZE = 32

    MON_LOG_SPACE_LIMIT = 0

    [GRP1]

    MON_INST_OGUID = 453331

    MON_DW_IP = 192.168.56.111:52141

    MON_DW_IP = 192.168.56.111:52142

    12、注册主备库系统服务(可选)

    先进入到root用户:cd /opt/dmdbms/script/root/

    注册主库服务:

    ./dm_service_installer.sh -t dmserver -p dmdw01 -dm_ini /opt/data/dmdw01/dmdw/dm.ini

    ./dm_service_installer.sh -t dmwatcher -p dmdw01 -watcher_ini /opt/data/dmdw01/dmdw/dmwatcher.ini

    注册备库服务:

    ./dm_service_installer.sh -t dmserver -p dmdw02 -dm_ini /opt/data/dmdw02/dmdw/dm.ini

    ./dm_service_installer.sh -t dmwatcher -p dmdw02 -watcher_ini /opt/data/dmdw02/dmdw/dmwatcher.ini

    13、启动监视器

    su – dmdba

    dmmonitor /opt/data/dmdw01/dmmonitor.ini

    show

    可查看主备状态、OGUID、守护进程状态等信息。

    五、单节点主备与双节点主备配置对比

    本机主备与双机主备的核心差异在于故障隔离的层级不同:前者仅在数据库实例层面实现主备分离,两个实例共享同一台服务器的CPU、内存、磁盘及操作系统,因此只能应对数据库进程崩溃等软件级故障,一旦硬件损坏或系统宕机则整体失效;后者则在物理机器层面完全隔离,主备库分属独立服务器,各自拥有专属资源,既能处理软件故障,也能抵御单台机器断电、硬盘损坏、主板故障等硬件级风险,是真正具备容灾能力的生产级方案。

    六、常见问题

    1、备份时提示 “No space left on device”

    磁盘空间不足,需要扩容虚拟机磁盘或者清理无用文件,当清理完后还是没用就需要扩容虚拟机磁盘,此处采用的方法是直接扩大现有磁盘:

    (1)关闭dm111虚拟机(必须关机才能扩容)

    (2)在虚拟硬盘页面直接拉大磁盘

    (3)开启虚拟机dm111,查看当前分区

    fdisk -l

    lsblk

    (4)扩大sda2分区

    fdisk /dev/sda后依次输入:

    结束后执行:

    partprobe /dev/sda

    pvresize /dev/sda2

    lvextend -l +100%FREE /dev/mapper/klas-root

    xfs_growfs /dev/mapper/klas-root

    (5)df -h后可以看到扩容成功

    2、systemctl 启动服务失败

    检查是否已有手动启动的进程占用端口,如果有则需要先kill掉再启动。

    ps -ef | grep -E "dmserver|dmwatcher"

    kill -9 [进程]

    3、备库在磁盘空间不足、扩大磁盘还原后启动失败,提示需要再次update db_magic

    即在dmrman中执行recover database '备库路径' update db_magic;

    达梦数据库 – 新一代大型通用关系型数据库 | 达梦在线服务平台

    赞(0)
    未经允许不得转载:171主机测评 » 达梦本机主备的安装及报错解决
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址