达梦守护集群部署安装
- 准备环境
主机:192.168.199.133 数据库已安装并开启归档
备机:192.168.199.134 数据库已安装并开启归档
数据库安装目录:/home/dmdba/dm/dmdbms
备份、归档、数据文件目录:/dm8/{dmbak,dmarch,dmdata}
- 主机全库备份
cd //home/dmdba/dm/dmdbms/bin
./dmrman
RMAN> backup database '/home/dmdba/dm/dmdbms/bin/dm.ini' full backupset '/dm8/dmbak/full01';
- 修改dm.ini参数
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,'RLOG_SEND_APPLY_MON',64);
- 修改dmarch.ini参数
[dmdba@localhost ~]$ vim /dm8/dmdata/DAMENG/dmarch.ini
ARCH_WAIT_APPLY=0
[ARCHIVE_LOCAL]
ARCH_TYPE=LOCAL
ARCH_DEST=/opt/dmdbms/data/DAMENG/arch/
ARCH_FILE_SIZE=1024
ARCH_SPACE_LIMIT=51200
[ARCHIVE_REALTIME1]
ARCH_TYPE=REALTIME #实时归档类型
ARCH_DEST=DMSERVERB #备库实例名
- 创建dmmal.ini
[dmdba@localhost ~]$ vim /dm8/dmdata/DAMENG/dmmal.ini
#添加以下内容
MAL_CHECK_INTERVAL = 10 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定MAL链路断开的时间
MAL_TEMP_PATH = /dm8/dmdata/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 = DMSERVER #实例名
MAL_HOST = 192.168.199.133 #MAL系统监听TCP连接的IP
MAL_PORT = 5336 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 172.16.1.1 #实例对外服务的IP
MAL_INST_PORT = 5236 #实例对外服务端口
MAL_DW_PORT = 5436 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5536 #实例监听守护进程TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVERB
MAL_HOST = 192.168.199.134
MAL_PORT = 5336
MAL_INST_HOST = 172.16.1.2
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536
- 创建dmwatcher.ini
[dmdba@localhost ~]$ vim /dm8/dmdata/DAMENG/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME = 20 #远程守护进程故障认定时间
INST_ERROR_TIME = 20 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 45331 #守护系统唯一OGUID值
INST_INI = /dmdata/DAMENG/dm.ini
INST_AUTO_RESTART = 1 #打开实例自启功能
INST_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/DmServiceDMSERVER start #服务启动方式
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
- 拷贝备份文件
scp -r /dm8/dmbak/full01 dmdba@192.168.199.134:/dm8/dmbak
- 注册服务
cd /home/dmdba/dm/dmdbms/script/root
./dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm8/dmdata/DAMENG/dmwatcher.ini
- 重启实例服务
cd /home/dmdba/dm/dmdbms/bin
./DmServiceDMSERVER restart
- 启动守护进程
./DmWatcherServiceWatcher start
- 配置备机dm.ini实例名
INSTANCE_NAME = DMSERVERB #实例名
- 编辑dmarch.ini
[dmdba@localhost ~]$ vim /dm8/dmdata/DAMENG/dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/dmarch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DMSERVER
- 复制主机dmmal.ini、dmwatcher.ini至备机
scp root@192.168.199.133:/dm8/dmdata/DAMENG/dmmal.ini /dm8/dmdata/DAMENG
scp root@192.168.199.133:/dm8/dmdata/DAMENG/dmmal.ini /dm8/dmdata/DAMENG
- 注册服务
cd /home/dmdba/dm/dmdbms/script/root
./dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm8/dmdata/DAMENG/dmwatcher.ini
- 重启实例服务
cd /home/dmdba/dm/dmdbms/bin
./DmServiceDMSERVER restart
./DmServiceDMSERVER stop
注:重启成功后需要停止服务,进行脱机数据恢复。
- 备机数据恢复
cd /home/dmdba/dm/dmdbms/bin
./dmrman
RMAN> check backupset '/dm8/dmbak/full01';
check backupset '/dm8/dmbak/full01';
check backupset successfully.
time used: 00:00:02.680
RMAN> restore database '/home/dmdba/dm/dmdbms/bin/dm.ini' from backupset '/dm8/dmbak/full01';
restore database '/home/dmdba/dm/dmdbms/bin/dm.ini' from backupset '/dm8/dmbak/full01';
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:21][Remaining:00:00:00]
restore successfully.
time used: 00:00:21.892
RMAN> recover database '/home/dmdba/dm/dmdbms/bin/dm.ini' update DB_MAGIC;
recover database '/home/dmdba/dm/dmdbms/bin/dm.ini' update DB_MAGIC;
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[10660976], file_lsn[10660976]
recover successfully!
time used: 00:00:01.082
- 配置监视器
(1)非确认监视器:集群各节点bin目录中,存放非确认监视器配置文件。
(2)确认监视器:在仲裁机(非集群节点),存放确认监视器配置文件,并注册后台自启服务。
- 创建dmmonitor.ini
[dmdba@localhost ~]$ vim /home/dmdba/dm/dmdbms/bin/dmmonitor.ini
MON_DW_CONFIRM = 0 #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH = ../log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 512 #单个日志大小,单位MB
MON_LOG_SPACE_LIMIT = 2048 #日志上限,单位MB
[GRP1]
MON_INST_OGUID = 45331 #组GDW1的唯一OGUID值
MON_DW_IP = 192.168.199.133:5436 #IP对应MAL_HOST,PORT对应MAL_DW_PORT
MON_DW_IP = 192.168.199.134:5436
- 监视器的使用方法
命令 | 含义 |
list | 查看守护进程的配置信息 |
show global info | 查看所有实例组的信息 |
tip | 查看系统当前运行状态 |
login | 登录监视器 |
logout | 退出登录 |
choose switchover GDW1 | 主机正常:查看可切换为主机的实例列表 |
switchover GDW1.实例名 | 主机正常:使用指定组的指定实例,切换为主机 |
choose takeover GDW1 | 主机故障:查看可切换为主机的实例列表 |
takeover GDW1.实例名 | 主机故障:使用指定组的指定实例,切换为主机 |
choose takeover force GDW1 | 强制切换:查看可切换为主机的实例列表 |
takeover force GDW1.实例名 | 强制切换:使用指定组的指定实例,切换为主机 |
主机故障后,在备机执行SELECT SF_DW_CHECK_TAKEOVER();【1:可接管 0:不可接管】 |
- 启动服务并修改参数
主机:
[dmdba@~]$ /home/dmdba/dm/dmdbms/bin/DmServiceDMSERVER start
[dmdba@~]$/home/dmdba/dm/dmdbms/bin/disql SYSDBA/Dameng456
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
ALTER DATABASE MOUNT;
SP_SET_OGUID(45331);
ALTER DATABASE PRIMARY;
ALTER DATABASE OPEN FORCE;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
备机:
[dmdba@~]$ /home/dmdba/dm/dmdbms/bin/DmServiceDMSERVER start
[dmdba@~]$ /home/dmdba/dm/dmdbms/bin/disql SYSDBA/Dameng456
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
ALTER DATABASE MOUNT;
SP_SET_OGUID(45331);
ALTER DATABASE STANDBY;
ALTER DATABASE OPEN FORCE;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
- 启动守护进程
主/备机:[dmdba@~]$ /home/dmdba/dm/dmdbms/bin/DmWatcherServiceWatcher start
- 启动监视器
前台启动:
[dmdba@~]$cd /home/dmdba/dm/dmdbms/bin/
[dmdba@~]$./dmmonitor dmmonitor.ini
后台启动:
[dmdba@~]$ /home/dmdba/dm/dmdbms/bin/DmMonitorServiceMonitor start
注:这里需要先注册服务,/home/dmdba/dm/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dm/dmdbms/bin/dmmonitor.ini
- 启停集群
启动:
主/备机:[dmdba@~]$ /home/dmdba/dm/dmdbms/bin/DmWatcherServiceWatcher start
停止:
主/备机:[dmdba@~]$ /home/dmdba/dm/dmdbms/bin/DmWatcherServiceWatcher stop
主/备机:[dmdba@~]$ /home/dmdba/dm/dmdbms/bin/DmServiceDMSERVER stop
- 创建dm_svc.conf
vim /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
DW1=(172.16.1.1:5236,172.16.1.2:5236)
[DW1]
CLUSTER=(DW)
LOGIN_MODE=(1)
SWITCH_TIMES=(300)
SWITCH_INTERVAL=(200)
- 应用连接方式
<DRIVER>dm.jdbc.driver.DmDriver</DRIVER>
<URL>jdbc:dm://DW1</URL>
<USERNAME>SYSDBA</USERNAME>
<PASSWORD>Dameng456</PASSWORD>