达梦搭建一主两备、两从

总体来说,跟一主一备没啥区别,就是mal跟arch文件多配制一个远程端即可

[root@~]# vi /etc/sysctl.conf

fs.file-max = 6815744

fs.aio-max-nr = 1048576

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

vm.overcommit_memory = 1

vm.swappiness = 0

vm.dirty_background_ratio = 3

vm.dirty_ratio = 80

vm.dirty_expire_centisecs = 500

vm.dirty_writeback_centisecs = 100

[root@~]# sysctl -p

[root@~]# sysctl -p /etc/sysctl.conf

[root@~]# sysctl -q vm.swappiness

调整limits.conf

[root@~]# ulimit -n65536

[root@~]# vi /etc/security/limits.conf

dmdba soft nice 0

dmdba hard nice 0

dmdba soft as unlimited

dmdba hard as unlimited

dmdba soft fsize unlimited

dmdba hard fsize unlimited

dmdba soft nproc 65536

dmdba hard nproc 65536

dmdba soft nofile 65536

dmdba hard nofile 65536

dmdba soft core unlimited

dmdba hard core unlimited

dmdba soft data unlimited

dmdba hard data unlimited

[root@~]# vi /etc/security/limits.d/90-nproc.conf

* soft nproc 65536

[root@~]# vi /etc/profile

ulimit -SHn 65536

[root@~]# vi /etc/pam.d/login

session required /lib64/security/pam_limits.so

session required pam_limits.so

selinux

[root@~]# vi /etc/sysconfig/selinux

SELINUX = disabled

SELINUX = disabled

[root@dm-02 bin]# systemctl stop firewalld #关闭防火墙

[root@dm-02 bin]# systemctl disable firewalld

[root@dm-02 bin]# setenforce 0 ##关闭selinux

[root@dm-02 bin]# vim /etc/selinux/config

SELINUX=disabled

随机自启动的数据库服务,其能打开的最大文件描述符、proc数量等不受limits.conf控制(root用户)

vim /etc/systemd/system.conf

data seg size=unlimited

file size=unlimited

open files=unlimited

virtual memory=unlimited

切记key文件放在达梦的bin目录下 命名为dm.key 权限为dmdba:dinstall 600

安装数据库:

groupadd -g 12349 dinstall 创建组

useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba 创建用户

passwd dmdba 密码

[root@~]# mkdir /dm8/dmdbms

[root@~]# mkdir /dm8/dmsetup

[root@~]# chown dmdba.dinstall /dm8/dmdbms -R;chmod 777 /opt/dmdbms -R

[root@~]# chown dmdba.dinstall /opt/dmsetup -R;chmod 777 /opt/dmsetup -R

mount -o loop /opt/dm8_setup_rh7_64_ent_8.1.1.45_20191121.iso /mnt ##root用户挂载

su - dmdba 开始安装

cd /mnt/

./DMInstall.bin -i

安装完成执行备份脚本。。。

cd /home/dmdba/ ##root用户

vim .bash_profile 环境变量

export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

su - dmdba

source .bash_profile 生效

创建实例:【三台服务器的数据库名字可以一样,实例名必须不一致】

./dminit path=/dm8/data/ CHARSET=0 CASE_SENSITIVE=0 PAGE_SIZE=32 EXTENT_SIZE=32 DB_NAME=DM1 INSTANCE_NAME=TEST1 PORT_NUM=5236 log_size=2048

./dminit path=/dm8/data/ CHARSET=0 CASE_SENSITIVE=0 PAGE_SIZE=32 EXTENT_SIZE=32 DB_NAME=DM1 INSTANCE_NAME=TEST2 PORT_NUM=5236

./dminit path=/dm8/data/ CHARSET=0 CASE_SENSITIVE=0 PAGE_SIZE=32 EXTENT_SIZE=32 DB_NAME=DM1 INSTANCE_NAME=TEST3 PORT_NUM=5236

初始化之后进行一次启停:

./dmserver /dm8/data/DM1/dm.ini

主备份(脱机):

./dmrman CTLSTMT="BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL TO BACKUP_FILE BACKUPSET '/opt/dmdbms/data/DAMENG/bak/BACKUP_FILE'"

或者进入dmrman : bakcuo database '/dm8/data/xx/dm.ini' full backupset ;/dm8/data/xxx/bak/db_full_bak';

拷贝到俩从:

scp -rp /opt/dmdbms/data/DAMENG/bak/BACKUP_FILE/ dmdba@10.0.0.56:/opt/dmdbms/data/DAMENG/bak

俩从库分别作操作还原:

./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DM1/dm.ini' FROM BACKUPSET '/dm8/data/DM1/bak/db_full_bak'"

更新:

./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DM1/dm.ini' UPDATE DB_MAGIC"

实时主备:

(主)配置dm.ini

INSTANCE_NAME = DW1

DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间

ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

(主)配置 dmmal.ini

MAL_CHECK_INTERVAL = 10 #MAL 链路检测时间间隔

MAL_CONN_FAIL_INTERVAL = 10 #判定 MAL 链路断开的时间

MAL_TEMP_PATH = /dm8/dmdbms/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 = TEST1

MAL_HOST =192.168.208.176

MAL_PORT = 61141

MAL_INST_HOST = 192.168.208.176

MAL_INST_PORT = 5236

MAL_DW_PORT = 52141

MAL_INST_DW_PORT = 33141

[MAL_INST2]

MAL_INST_NAME = TEST2

MAL_HOST = 192.168.208.179

MAL_PORT = 61142

MAL_INST_HOST = 192.168.208.179

MAL_INST_PORT = 5236

MAL_DW_PORT = 52142

MAL_INST_DW_PORT = 33142

[MAL_INST3]

MAL_INST_NAME = TEST3

MAL_HOST = 192.168.208.175

MAL_PORT = 61143

MAL_INST_HOST = 192.168.208.175

MAL_INST_PORT = 5236

MAL_DW_PORT = 52143

MAL_INST_DW_PORT = 33143

(主)配置 dmarch.ini

ARCH_WAIT_APPLY=1

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME

ARCH_DEST = TEST2

[ARCHIVE_REALTIME2]

ARCH_TYPE = REALTIME

ARCH_DEST = TEST3

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm8/data/DM1/arch

ARCH_FILE_SIZE = 512

ARCH_SPACE_LIMIT = 2048

(主)配置 dmwatcher.ini

[GDW1]

DW_TYPE = GLOBAL #全局守护类型

DW_MODE = MANUAL #自动切换模式,MANUAL:故障手动切换模式

DW_ERROR_TIME = 20 #远程守护进程故障认定时间

INST_ERROR_TIME = 20 #本地实例故障认定时间

INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间

INST_OGUID = 453331 #守护系统唯一OGUID值

INST_INI = /dm8/data/DM1/dm.ini #dm.ini文件路径

INST_AUTO_RESTART = 1 #打开实例的自动启动功能

INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver #命令行方式启动

RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭

RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

(主)以 Mount 方式启动主库

./dmserver /dm8/data/DM1/dm.ini mount

(主)设置 OGUID

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);

(备)配置备

vim dm.ini

scp -r /opt/dmdbms/data/DAMENG/dmmal.ini dmdba@10.0.0.56:/opt/dmdbms/data/DAMENG/ (一致)

scp -r /opt/dmdbms/data/DAMENG/dmarch.ini dmdba@10.0.0.56:/opt/dmdbms/data/DAMENG/ (归档名字)

scp -r /opt/dmdbms/data/DAMENG/dmwatcher.ini dmdba@10.0.0.56:/opt/dmdbms/data/DAMENG/ (一致)

以 Mount 方式启动备库

./dmserver /opt/dmdbms/data/DAMENG/dm.ini mount

设置 OGUID,修改数据库模式

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL> sp_set_oguid(453331);

SQL> alter database standby;

SQL> alter database primary;

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

高可用监视器:

主:dmmonitor.ini

MON_LOG_PATH = /dm8/dmdbms//log

MON_LOG_INTERVAL = 60

MON_LOG_FILE_SIZE = 32

MON_LOG_SPACE_LIMIT = 0

MON_DW_CONFIRM = 1

MON_INST_NUM = 3 #实例总个数

MON_HB_INTERVAL = 60 #通信心跳校验间隔

MON_BRO_INTERVAL = 100 #raft 协议中实例通信心跳间隔

MON_VOTE_INTERVAL = 100 #raft 协议中基础投票间隔

MON_ID = 1 #当前监视器在监视器系统中的 ID

MON_MID = 45614 #当前监视器系统的唯一标识

[GDW1]

MON_INST_OGUID = 453331

MON_DW_IP = 192.168.208.176:52141

MON_DW_IP = 192.168.208.179:52142

MON_DW_IP = 192.168.208.175:52143

[MON1]

MON_HOST = 192.168.208.179 #系统监听 TCP 连接的 IP 地址

MON_PORT = 8339 #系统监听 TCP 连接的端口号

MON_INST_ID = 1 #监视器实例在监视器系统中的 ID

MON_LOG_PATH = /dm8/dmdbms//log

MON_LOG_INTERVAL = 60

MON_LOG_FILE_SIZE = 32

MON_LOG_SPACE_LIMIT = 0

MON_DW_CONFIRM = 1

MON_INST_NUM = 3 #实例总个数

MON_HB_INTERVAL = 60 #通信心跳校验间隔

MON_BRO_INTERVAL = 100 #raft 协议中实例通信心跳间隔

MON_VOTE_INTERVAL = 100 #raft 协议中基础投票间隔

MON_ID = 2 #当前监视器在监视器系统中的 ID

MON_MID = 45614 #当前监视器系统的唯一标识

[GDW1]

MON_INST_OGUID = 453331

MON_DW_IP = 192.168.208.176:52141

MON_DW_IP = 192.168.208.179:52142

MON_DW_IP = 192.168.208.175:52143

[MON1]

MON_HOST = 192.168.208.175 #系统监听 TCP 连接的 IP 地址

MON_PORT = 8339 #系统监听 TCP 连接的端口号

MON_INST_ID = 2 #监视器实例在监视器系统中的 ID

启动各个主备库上的守护进程:

./dmwatcher /opt/dmdbms/data/DAMENG/dmwatcher.ini

启动监视器:(主备)

./dmmonitor /opt/dmdbms/data/DAMENG/dmmonitor.ini

注册

(主)

./dm_service_installer.sh -t dmserver -m mount -dm_ini /opt/dmdbms/data/DAMENG/dm.ini -p TEST

./dm_service_installer.sh -t dmwatcher -watcher_ini /opt/dmdbms/data/DAMENG/dmwatcher.ini -p DW1

(备)

./dm_service_installer.sh -t dmserver -m mount -dm_ini /opt/dmdbms/data/DAMENG/dm.ini -p DW2

./dm_service_installer.sh -t dmwatcher -watcher_ini /opt/dmdbms/data/DAMENG/dmwatcher.ini -p DW2

./dm_service_installer.sh -t dmmonitor -monitor_ini /opt/dmdbms/data/DAMENG/dmmonitor.ini -p DMMONITOR -- ./DmMonitorServiceDMMONITOR start

更多资讯请上达梦技术社区了解:https://eco.dameng.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值