达梦主备部署
一.概括
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
2)集群规划
组名称 | 组ID |
---|---|
GDW1 | 45331 |
dmserver的IP | dmwatcher的IP | dmserver名称 | dmserver端口号 | MAL端口 | MAL守护进程端口 | dmwatcher端口 |
---|---|---|---|---|---|---|
192.168.1.5 | 192.168.1.5 | DW1_01 | 5236 | 5336 | 5436 | 5536 |
192.168.1.6 | 192.168.1.6 | DW1_01B | 5236 | 5336 | 5436 | 5536 |
dmmonitor的IP | 192.168.1.7 | 监视器 | - | - | - | - |
二.安装
192.168.1.5、192.168.1.6、192.168.1.7都要安装
1)安装前
创建组和用户,挂载磁盘。
1.创建用户组
bash
groupadd dinstall
2.创建用户
bash
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
3.修改用户密码
bash
passwd dmdba
4.修改文件最大打开数
bash
vi /etc/security/limits.conf
在文件最后添加以下四句话
bash
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384
切换 dmdba用户查看是否生效
bash
su - dmdba
ulimit -a
5.挂载磁盘
切换到root用户下,将.iso文件放到/opt目录下,执行如下命令挂载磁盘
bash
su root
mount -o loop /opt/dm8_20231011_x86_rh6_64.iso /mnt
6.修改tmp文件大小
bash
mount -o remount,size=3G /tmp
7.创建安装目录,修改权限
bash
mkdir /dm8
chown dmdba:dinstall -R /dm8/
chmod -R 755 /dm8
2)安装数据库
1.安装
bash
su - dmdba
cd /mnt/
./DMInstall.bin -i
1.默认中文
2.key: n
3.是否设置时区:y
默认21
4.典型安装
5.安装目录:/dm8
6.确认安装路径/dm8: y
2.创建DmAPService
否则影响脱机备份
bash
su root
/dm8/script/root/root_installer.sh
三.主备机器部署
以下操作都是在登录用户dmdba下执行
1)初始化数据库
(1)主库配置
1.初始化实例
bash
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
2.启动服务器,启动diqsl,通过disql修改dm.ini配置
bash
cd /dm8/bin
./dmserver /dm8/data/DAMENG/dm.ini
新开控制台执行
bash
cd /dm8/tool
./disql
SQL>conn SYSDBA/SYSDBA;
bash
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);
3.创建dmmal.ini主备配置文件
bash
[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
4.创建dmarch.ini归档文件
主库需要同步至备库,所以ARCH_DEST对应备库名称
bash
[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 #实时归档目标实例名
5.创建dmwatcher.ini守护进程配置文件
bash
[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 #指定备库重演日志的时间阈值,默认关闭
(2)备库配置
1.初始化实例
bash
/dm8/bin/dminit path=/dm8/data/ page_size=32 extent_size=32 CASE_SENSITIVE=1 CHARSET=1 LOG_SIZE=2048 INSTANCE_NAME=DW1_01B
2.将主库的dm.ini、dmmal.ini、dmarch.ini、dmwatcher.ini的四个文件拷贝到/dm8/data/DAMENG/下
3.修改dm.ini
bash
INSTANCE_NAME = DW1_01B
4.修改dmarch.ini
bash
ARCH_DEST = DW1_01 #实时归档目标实例名
- 启动服务器,初始化数据库
bash
cd /dm8/bin
./dmserver /dm8/data/DAMENG/dm.ini
2)脱机备份
即使是新dmini的数据,不做备份还原处理,主备服务器状态会一直是mount
(1)主服务器上备份
bash
cd /dm8/bin
./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/data/BACKUP_FILE_01'"
将备份生成的文件BACKUP_FILE_01拷贝到备库服务器的/dm8/data/DAMENG/下
(2)备服务上还原更新
bash
cd /dm8/bin
./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/BACKUP_FILE_01'"
bash
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
(3)注释
备份还原如果提示:[-7170]:bakres连接DMAP失败
bash
cd /dm8/bin
./DmAPService start
3)启动服务器
(1)主服务器上
1.启动主服务器
bash
cd /dm8/bin
./dmserver /dm8/data/DAMENG/dm.ini mount
2.新开控制台,disql设置主机模式
bash
cd /dm8/tool
./disql
SQL>conn SYSDBA/SYSDBA;
bash
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);
3.启动守护进程
bash
cd /dm8/bin
./dmwatcher /dm8/data/DAMENG/dmwatcher.ini
(3)备服务器上
1.启动主服务器
bash
cd /dm8/bin
./dmserver /dm8/data/DAMENG/dm.ini mount
2.新开控制台,disql设置备机模式
bash
cd /dm8/tool
./disql
SQL>conn SYSDBA/SYSDBA;
bash
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);
3.启动守护进程
bash
cd /dm8/bin
./dmwatcher /dm8/data/DAMENG/dmwatcher.ini
(3)监控服务器上
1.添加dmmonitor.ini 监控服务配置
bash
[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
2.启动监控服务器
bash
cd /dm8/bin
./dmmonitor /dm8/monitor/dmmonitor.ini
4)添加服务实现开机自启
bash
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
DmServiceDMSERVER
DmWatcherServiceA
DmMonitorServiceM
四.odbc驱动链接
1.安装驱动后查看配置
bash
[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
2.修改:\etc\dm_svc.conf
bash
DMHA=(192.168.1.5:5236,192.168.1.6:5236)
LOGIN_MODE=(1)
SWITCH_TIMES=(3)
SWITCH_INTERVAL=(100)
LOGIN_MODE=(1):只连接主库
SWITCH_TIMES=(3):以服务名连接库时,若未找到符合条件的库建立连接,将尝试遍历服务名中库列表的次数
SWITCH_INTERVAL=(100):在服务器之间切换的时间间隔,单位为毫秒
3.修改:\etc\odbc.ini
bash
[dm8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = DMHA
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236
4.检测链接
bash
[root@localhost dm8]# isql -v DM8
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>