数据库单机动态扩展为数据守护主备集群。
已安装好数据库软件,初始化好数据库实例,配置好本地归档等。
数据库单机处于正常运行状态。
(1)创建数据库相关目录和安装相同版本数据库软件
略
(2)初始化数据库实例,前台启动完全后关闭
[dmdba@]$cd /opt/dmdbms/bin
[dmdba@]$./dminit path=/data/dmdata page_size=32 extent_size=32 port_num=5237 log_size=2048 CASE_SENSITIVE=0 charset=1 DB_NAME=DAMENG SYSDBA_PWD=HUN_qweasd9999 SYSAUDITOR_PWD=HUN_qweasd9999
[dmdba@]$./dmserver /data/dmdata/DAMENG/dm.ini
启动完全后,Ctrl+C关闭。
select * from SYSJOB.SYSJOBSTEPS;
select * from SYSJOB.SYSJOBS;
select * from SYSJOB.SYSJOBSCHEDULES;
select * from SYSJOBHISTORIES2;–作业历史执行情况的日志
SP_DBMS_JOB_RUN(1783175805);
scp -r /data/dmbak/DAMENG/bak/DB_DAMENG_FULL_2026_07_04_22_40_37 dmdba@192.168.118.149:/data/dmbak/DAMENG/bak/
ll /data/dmbak/DAMENG/bak/
cd /opt/dmdbms/bin
./dmrman
RESTORE DATABASE ‘/data/dmdata/DAMENG/dm.ini’ REUSE DMINI FROM BACKUPSET ‘/data/dmbak/DAMENG/bak/DB_DAMENG_FULL_2026_07_04_22_40_37’;
RECOVER DATABASE ‘/data/dmdata/DAMENG/dm.ini’ FOR STANDBY FROM BACKUPSET ‘/data/dmbak/DAMENG/bak/DB_DAMENG_FULL_2026_07_04_22_40_37’;
RECOVER DATABASE ‘/data/dmdata/DAMENG/dm.ini’ UPDATE DB_MAGIC;
vi /data/dmdata/DAMENG/dm.ini
INSTANCE_NAME = DMSERVERS
PORT_NUM = 5237 ##数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 ##接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间
MAL_INI = 1 ##打开MAL系统
ARCH_INI = 1 ##打开归档配置
设置完成后查询验证
cat /data/dmdata/DAMENG/dm.ini |grep INSTANCE_NAME
cat /data/dmdata/DAMENG/dm.ini |grep PORT_NUM
cat /data/dmdata/DAMENG/dm.ini |grep DW_INACTIVE_INTERVAL
cat /data/dmdata/DAMENG/dm.ini |grep ALTER_MODE_STATUS
cat /data/dmdata/DAMENG/dm.ini |grep ENABLE_OFFLINE_TS
cat /data/dmdata/DAMENG/dm.ini |grep MAL_INI
cat /data/dmdata/DAMENG/dm.ini |grep ARCH_INI
vi /data/dmdata/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔,单位秒(s)
MAL_CONN_FAIL_INTERVAL = 15 ##判定实例之间MAL链路断开的时间
MAL_TEMP_PATH = /data/dmdata/DAMENG
MAL_BUF_SIZE= 512
MAL_SYS_BUF_SIZE= 2048
MAL_COMPRESS_LEVEL= 0
MAL_VPOOL_SIZE = 128
[MAL_INST1]
MAL_INST_NAME = DMSERVER ##实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 192.168.118.148 ##MAL系统监听TCP连接的IP地址
MAL_PORT = 65237 ## MAL监听端口,用于创建MAL链路
MAL_INST_HOST = 192.168.118.148 ##数据库实例的对外服务IP地址
MAL_INST_PORT = 5237 ##数据库实例对外服务端口,和dm.ini中PORT_NUM一致
MAL_DW_PORT = 55237 ##守护进程监听端口
MAL_INST_DW_PORT = 35237 ##实例监听守护进程的端口
MAL_LINK_MAGIC = 1
[MAL_INST2]
MAL_INST_NAME = DMSERVERS
MAL_HOST = 192.168.118.149
MAL_PORT = 65237
MAL_INST_HOST = 192.168.118.149
MAL_INST_PORT = 5237
MAL_DW_PORT = 55237
MAL_INST_DW_PORT = 35237
MAL_LINK_MAGIC = 1
vi /data/dmdata/DAMENG/dmarch.ini
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL ##本地归档类型
ARCH_DEST =/data/dmarch/DAMENG ##本地归档文件存放路径
ARCH_FILE_SIZE = 2048 ##单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT =102400 ##单位Mb,0表示无限制
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME ##实时归档类型
ARCH_DEST = DMSERVER ##实时归档目标实例名为主库
vi /data/dmdata/DAMENG/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL ##全局守护类型
DW_MODE = MANUAL ##切换模式
DW_ERROR_TIME = 30 ##远程守护进程故障认定时间
INST_RECOVER_TIME = 20 ##主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 60 ##本地实例故障认定时间
INST_OGUID = 202607 ##守护系统唯一OGUID值
INST_INI =/data/dmdata/DAMENG/dm.ini ##dm.ini配置文件路径
INST_AUTO_RESTART = 1 ##打开实例的自动启动功能
INST_STARTUP_CMD =/opt/dmdbms/bin/DmServiceDAMENG start ##命令行方式启动
RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭
–使用root操作注册服务
bash /opt/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini -p GRP1
systemctl enable DmWatcherServiceGRP1
–以mount方式启动数据库
dmserver /data/dmdata/DAMENG/dm.ini mount
–登录数据库设置OGUID和数据库备库模式
SP_SET_PARA_VALUE(1,‘ALTER_MODE_STATUS’,1);
SP_SET_OGUID(202607);
ALTER DATABASE STANDBY;
SP_SET_PARA_VALUE(1,‘ALTER_MODE_STATUS’,0);
vi /data/dmdata/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔,单位秒(s)
MAL_CONN_FAIL_INTERVAL = 15 ##判定实例之间MAL链路断开的时间
MAL_TEMP_PATH = /data/dmdata/DAMENG
MAL_BUF_SIZE= 512
MAL_SYS_BUF_SIZE= 2048
MAL_COMPRESS_LEVEL= 0
MAL_VPOOL_SIZE = 128
[MAL_INST1]
MAL_INST_NAME = DMSERVER ##实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 192.168.118.148 ##MAL系统监听TCP连接的IP地址
MAL_PORT = 65237 ## MAL监听端口,用于创建MAL链路
MAL_INST_HOST = 192.168.118.148 ##数据库实例的对外服务IP地址
MAL_INST_PORT = 5237 ##数据库实例对外服务端口,和dm.ini中PORT_NUM一致
MAL_DW_PORT = 55237 ##守护进程监听端口
MAL_INST_DW_PORT = 35237 ##实例监听守护进程的端口
MAL_LINK_MAGIC = 1
[MAL_INST2]
MAL_INST_NAME = DMSERVERS
MAL_HOST = 192.168.118.149
MAL_PORT = 65237
MAL_INST_HOST = 192.168.118.149
MAL_INST_PORT = 5237
MAL_DW_PORT = 55237
MAL_INST_DW_PORT = 35237
MAL_LINK_MAGIC = 1
vi /data/dmdata/DAMENG/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL ##全局守护类型
DW_MODE = MANUAL ##自动切换模式
DW_ERROR_TIME = 30 ##远程守护进程故障认定时间
INST_RECOVER_TIME = 20 ##主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 60 ##本地实例故障认定时间
INST_OGUID = 202607 ##守护系统唯一OGUID值
INST_INI =/data/dmdata/DAMENG/dm.ini ##dm.ini配置文件路径
INST_AUTO_RESTART = 1 ##打开实例的自动启动功能
INST_STARTUP_CMD =/opt/dmdbms/bin/DmServiceDAMENG start ##命令行方式启动
RLOG_SEND_THRESHOLD = 0 ##指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 ##指定备库重演日志的时间阈值,默认关闭
DW_FAILOVER_FORCE=0
DW_RECONNECT=2
–使用root操作注册服务
bash /opt/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /data/dmdata/DAMENG/dmwatcher.ini -p GRP1
systemctl enable DmWatcherServiceGRP1
–配置好/data/dmdata/DAMENG/dmmal.ini再执行SP_SET_PARA_VALUE (1,‘MAL_INI’,1),否则报错
SP_SET_PARA_VALUE (1,‘MAL_INI’,1);
SP_SET_PARA_VALUE (1,‘DW_INACTIVE_INTERVAL’,60);
SP_SET_PARA_VALUE (1,‘ALTER_MODE_STATUS’,0);
SP_SET_PARA_VALUE (1,‘ENABLE_OFFLINE_TS’,2);
设置完成后查询验证
cat /data/dmdata/DAMENG/dm.ini |grep PORT_NUM
cat /data/dmdata/DAMENG/dm.ini |grep INSTANCE_NAME
cat /data/dmdata/DAMENG/dm.ini |grep DW_INACTIVE_INTERVAL
cat /data/dmdata/DAMENG/dm.ini |grep ALTER_MODE_STATUS
cat /data/dmdata/DAMENG/dm.ini |grep ENABLE_OFFLINE_TS
cat /data/dmdata/DAMENG/dm.ini |grep MAL_INI
cat /data/dmdata/DAMENG/dm.ini |grep ARCH_INI
cat /data/dmdata/DAMENG/dm.ini |grep RLOG_SEND_APPLY_MON
SF_MAL_CONFIG(1,0); --进入配置模式
SF_MAL_CONFIG_APPLY(); --应用配置文件
SF_MAL_CONFIG(0,0);–退出配置模式
ALTER DATABASE ADD ARCHIVELOG ‘DEST= DMSERVERS,TYPE= REALTIME’;
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
sp_set_oguid(202607);
ALTER DATABASE PRIMARY;
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
su - dmdba
DmWatcherServiceGRP1 start
–使用root用户操作
bash /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /data/dmdata/DAMENG/dm.ini -p DAMENG -m mount
systemctl enable DmServiceDAMENG.service
–如果已存在先删除
bash /opt/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceDAMENG
vi /data/dmdata/DAMENG/dmmonitor_GRP1.ini
MON_DW_CONFIRM = 0 ##非确认
MON_LOG_PATH =/opt/dmdbms/log ##监视器日志文件存放路径
MON_LOG_INTERVAL = 60 ##每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 ##每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 ##不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 202607 ##组GRP1的唯一OGUID值
MON_DW_IP = 192.168.118.148:55237
MON_DW_IP = 192.168.118.149:55237
dmmonitor /data/dmdata/DAMENG/dmmonitor_GRP1.ini
文章
阅读量
获赞
