1、
#主节点初始化实例
./dminit PATH=/data/cluster1 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 CASE_SENSITIVE=N CHARSET=1 DB_NAME=DAMENG INSTANCE_NAME=GRP1_01 PORT_NUM=5236 SYSDBA_PWD=Dmsjk1234 SYSAUDITOR_PWD=Dmsjk1234
#备节点初始化实例
./dminit PATH=/data/cluster1 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 CASE_SENSITIVE=N CHARSET=1 DB_NAME=DAMENG INSTANCE_NAME=GRP1_02 PORT_NUM=5236 SYSDBA_PWD=Dmsjk1234 SYSAUDITOR_PWD=Dmsjk1234
###如果是集群后续再执行###
使用root用户进入数据库安装目录的/script/root下
cd /home/dmdba/dmdbms/script/root/
注册服务:
./dm_service_installer.sh -t dmserver -dm_ini /data/cluster1/DAMENG/dm.ini -p DAMENG -m mount(集群需要再mount模式下注服务)
./disql SYSDBA/SYSDBA@localhost:5236
2、 配置读写分离集群:
服务器IP 服务器用途 实例路径 内部通信网络
192.168.6.11 主数据库 /data/cluster1/DAMENG 192.168.0.11
192.168.6.12 备数据库 /data/cluster1/DAMENG 192.168.0.12
192.168.6.15 监视器 192.168.0.15
2.1 检查实例是否正常以及在主机备份在备机还原
初始化实例后,分别启停库一次:
###对于新初始化的库,首次启动不允许使用 mount 方式,需要先正常启动并正常退出,
然后才允许 mount 方式启动。
./dmserver /data/cluster1/DAMENG/dm.ini
出现SYSTEM IS READY表示已经启动完成
然后在末尾输入exit退出
在主库DM1上使用dmdba用户脱机备份:
如果备份过程中出现错误,通过ps -ef | grep dmap查看dmap服务是否在运行中
如果不在运行中
cd /opt/dmdbms/bin
./DmAPService start
主库配置归档:
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/data/cluster1/dmarch, TYPE=LOCAL, FILE_SIZE=512, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;
#关闭实例进程
#使用达梦的脱机备份工具dmrman备份主库DM1
./dmrman ctlstmt="backup database '/data/cluster1/DAMENG/dm.ini' full to backup20240604 backupset '/data/cluster1/bak/backup20240604'"
或者
BACKUP DATABASE FULL BACKUPSET '/data/dmbak/backup20250612';
#将整个备份文件夹发送到备库DM2
mkdir /data/cluster1/bak
scp -r /data/cluster1/bak/backup20240604 dmdba@192.168.6.12:/data/cluster1/bak/
2.2 在备库上进行备份还原与更新
#停止备库的服务
首先要将接收到的备份文件的权限修改为dmdba;
chown -R dmdba.dinstall /data/cluster1/bak
在备库进行还原:
./dmrman ctlstmt="restore database '/data/cluster1/DAMENG/dm.ini' from backupset '/data/cluster1/bak/backup20240604'"
恢复:
./dmrman ctlstmt="recover database '/data/cluster1/DAMENG/dm.ini' from backupset '/data/cluster1/bak/backup20240604'"
更新db_magic:
./dmrman ctlstmt="recover database '/data/cluster1/DAMENG/dm.ini' update db_magic"
2.3 配置主库
1)修改主库dm.ini文件
vi /data/cluster1/DAMENG/dm.ini
INSTANCE_NAME=GRP1_01
ARCH_INI=1 ##打开归档配置
MAL_INI=1 ##打开MAL系统
ALTER_MODE_STATUS= 0 ##不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间
2)配置主库dmmal.ini
MAL_CHECK_INTERVAL = 10 ##MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 ##判定MAL链路断开的时间
#MAL_TEMP_PATH = /dmdata/dm1/malpath/ #可以没有
#MAL_BUF_SIZE = 512 #可以没有
#MAL_SYS_BUF_SIZE = 2048 #可以没有
#MAL_COMPRESS_LEVEL = 0 #可以没有
[MAL_INST1]
MAL_INST_NAME = GRP1_01
MAL_HOST = 192.168.0.11 ##MAL系统监听TCP连接的IP地址
MAL_PORT = 5336 ##MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.6.11 ##实例的对外服务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 = GRP1_02
MAL_HOST = 192.168.0.12
MAL_PORT = 5336
MAL_INST_HOST = 192.168.6.12
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536
3)配置主库dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data/cluster1/dmarch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 51200
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_02
4)配置主库dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL ##全局守护类型
DW_MODE = AUTO
DW_ERROR_TIME = 20
INST_ERROR_TIME = 20
INST_RECOVER_TIME = 60
INST_OGUID = 45331
INST_INI = /data/cluster1/DAMENG/dm.ini ##dm.ini配置文件路径
INST_AUTO_RESTART = 1 ##打开实例的自动启动功能
INST_STARTUP_CMD =/home/dmdba/dmdbms/bin/dmserver ##命令行方式启动
RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭
使用dmdba用户将配置文件发送到备库
#将dmmal.ini dmarch.ini dmwatcher.ini发到备库DM2
scp dmmal.ini dmarch.ini dmwatcher.ini dmdba@192.168.6.12:/data/cluster1/DAMENG
5)配置主库OGUID
用dmdba用户以mount模式开启主库
./dmserver /data/cluster1/DAMENG/dm.ini mount
在另一个窗口登入数据库
./disql
sp_set_oguid(45331);
alter database primary;
修改成功以后,在/data/cluster1/DAMENG/dm.ini mount窗口后输入exit退出
2.4 配置备库
1)修改配置文件dm.ini的内容
分别将INSTANCE_NAME设置为GRP1_02
INSTANCE_NAME=GRP1_02
ARCH_INI=1 ##打开MAL系统
MAL_INI=1 ##打开归档配置
ALTER_MODE_STATUS= 0 ##不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间
2)修改dmarch.ini
将ARCH_DEST参数修改为除自己外的库
#DaMeng Database Archive Configuration file
#this is comments
ARCH_WAIT_APPLY = 0
#[archive_local1]与[archive_realtime1]如果在同一个环境不同集群中也不需要修改
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /data/cluster1/dmarch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 51200
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_01
3)配置 dmmal.ini
配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致(MAL_TEMP_PATH根据本地实际情况配置),MAL_HOST 使用内部网络 IP,MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,MAL_DW_PORT 是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:
MAL_CHECK_INTERVAL = 10
MAL_CONN_FAIL_INTERVAL = 10
[MAL_INST1]
MAL_INST_NAME = GRP1_01
MAL_HOST = 192.168.0.11 ##MAL系统监听TCP连接的IP地址
MAL_PORT = 5336 ##MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.6.11 ##实例的对外服务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 = GRP1_02
MAL_HOST = 192.168.0.12
MAL_PORT = 5336
MAL_INST_HOST = 192.168.6.12
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536
4)配置 dmwatcher.ini
[GRP1]#如果在相同环境,不同集群中,该值需要修改为如[GRP2]、[GRP3]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 20
INST_ERROR_TIME = 20
INST_RECOVER_TIME = 60
INST_OGUID = 45331
INST_INI = /data/cluster1/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
5)配置备库的OGUID
用dmdba用户以mount模式开备库
./dmserver /data/cluster1/DAMENG/dm.ini mount
在另一个窗口登入数据库
./disql
sp_set_oguid(45331);
alter database standby;
修改成功以后,在/data/cluster1/DAMENG/dm.ini mount窗口后输入exit退出
2.5 配置监视器
在监视器服务器上安装数据库,然后配置确认监视器和普通监视器:
/data/cluster1/monitor/dmmonitor_PT.ini
/data/cluster1/monitor/dmmonitor.ini
普通监视器与确认监视器配置文件唯一区别就是
MON_DW_CONFIRM (确认是1,普通是0)
dmmonitor.ini文件内容如下:
注意这里的[GRP1]要与dmwatcher.ini里面的[GRP1]保持一致!
MON_DW_CONFIRM = 1
MON_LOG_PATH = /data/cluster1/monitor/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 512
MON_LOG_SPACE_LIMIT = 2048
[GRP1]
MON_INST_OGUID = 45331 #组 GRP1 的唯一 OGUID 值 一组的值要相同
#IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP =192.168.0.11:5436
MON_DW_IP =193.168.0.12:5436
2.6 注册服务
在主和备数据库服务器上分别注册实例服务和守护进程服务。
在监视器所在服务器上注册监视器服务
使用root用户在安装目录下dmdbms的script/root下面
--注册主库实例服务
./dm_service_installer.sh -t dmserver -dm_ini /data/cluster1/DAMENG/dm.ini -m mount -p GRP1_01
--注册主库守护进程服务
./dm_service_installer.sh -t dmwatcher -watcher_ini /data/cluster1/DAMENG/dmwatcher.ini -p GRP1_01
--注册备库实例服务
./dm_service_installer.sh -t dmserver -dm_ini /data/cluster1/DAMENG/dm.ini -m mount -p GRP1_02
--注册备库守护进程服务
./dm_service_installer.sh -t dmwatcher -watcher_ini /data/cluster1/DAMENG/dmwatcher.ini -p GRP1_02
--注册确认监视器服务
./dm_service_installer.sh -t dmmonitor -monitor_ini /data/cluster1/monitor/dmmonitor.ini -p DM
2.7 启动集群
启动顺序
主库实例(DmServiceDM1)——备库实例(DmServiceDM2)——主库守护进程(DmWatcherServiceDM1)——备库守护进程(DmWatcherServiceDM2)——监视器服务(DmMonitorServiceDM)
文章
阅读量
获赞
