注册
DCP守护集群搭建
培训园地/ 文章详情 /

DCP守护集群搭建

2025/09/30 28 0 0
  1. 关闭主库
    [dmdba@dmtest bin]$ ./DmServiceDMSERVER stop
    Stopping DmServiceDMSERVER:
  2. 主库全备
    RMAN> backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/bak'
    backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/bak'
    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[63152], file_lsn[63152]
    Processing backupset /dm8/bak
    [Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
    backup successfully!
    time used: 00:00:03.251
  3. 主库配置
  • dmmal.ini
    vi /dm8/data/DAMENG/dmmal.ini
    文件内容
    MAL_CHECK_INTERVAL =5 #MAL链路检测时间间隔
    MAL_CONN_FAIL_INTERVAL =5 #判定MAL链路断开的时间
    [MAL_INST1] MAL_INST_NAME =DMSERVER
    #实例名,和dm.ini中的INSTANCE_NAME一 致
    MAL_HOST =192.168.19.61 #MAL系统监听TCP连接的IP地址
    MAL_PORT =15236 #MAL系统监听TCP连接的端口
    MAL_INST_HOST =192.168.19.61 #实例的对外服务IP地址
    MAL_INST_PORT =5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一 致
    MAL_DW_PORT =65101 #实例本地的守护进程监听TCP连接的端口
    MAL_INST_DW_PORT =45101 #实例监听守护进程TCP连接的端口
    [MAL_INST2]
    MAL_INST_NAME =DMSERVER2
    MAL_HOST =192.168.19.62
    MAL_PORT =15236
    MAL_INST_HOST =192.168.19.62
    MAL_INST_PORT =5236
    MAL_DW_PORT =65101
    MAL_INST_DW_PORT =45101
  • dmarch.ini
    vi /dm8/data/DAMENG/dmarch.ini
    文件内容
    [ARCHIVE_REALTIME]
    ARCH_TYPE =REALTIME #实时归档类型
    ARCH_DEST =DMSERVER2 #实时归档目标实例名(主机和备份配置不同,配置向备机同步)
    [ARCHIVE_LOCAL1]
    ARCH_TYPE =LOCAL#本地归档类型
    ARCH_DEST =/dm8/arch #本地归档文件存放路径
    ARCH_FILE_SIZE=128 #单位Mb,本地单个归档文件最大值
    ARCH_SPACE_LIMIT =0 #单位Mb,0表示无限制,范围1024~4294967294M
  • dmwatcher.ini
    vi /dm8/data/DAMENG/dmwatcher.ini
    文件内容
    [GRP1] DW_TYPE =GLOBAL #全局守护类型
    DW_MODE =AUTO #自动切换模式
    DW_ERROR_TIME =10 #远程守护进程故障认定时间
    INST_RECOVER_TIME =60 #主库守护进程启动恢复的间隔时间
    INST_ERROR_TIME =10 #本地实例故障认定时间
    INST_OGUID =8888 #守护系统唯一OGUID值(这里要和数据库的OGUID 一致,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 #指定备库重演日志的时间阈值,默认关闭
  • 修改dm.ini
    MAL_INI=1
    ARCH_INI=1
    ALTER_MODE_STATUS=0
    ENABLE_OFFLINE_TS=2
  1. 以前台的模式将数据库启动到mount状态

[dmdba@dmtest bin]$ ./dmserver /dm8/data/DAMENG/dm.ini mount
[dmdba@dmtest bin]$ ./dmserver /dm8/data/DAMENG/dm.ini mount
file dm.key not found, use default license!
Invalid [mal_name] or the file contains unrecognized characters in [/dm8/data/DAMENG/dmmal.ini]!
Read ini file(/dm8/data/DAMENG/dmmal.ini) error in line 3, code(-104)
MAL sys initialization failed!
dmserver startup failed, code = -104 [Invalid INI file]
nsvr_ini_file_read failed, [code: -104]
[dmdba@dmtest bin]$ vi /dm8/data/DAMENG/dmmal.ini
[dmdba@dmtest bin]$ ./dmserver /dm8/data/DAMENG/dm.ini mount
file dm.key not found, use default license!
version info: develop
DM Database Server 64 V8 03134284094-20231108-207962-20067 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2025-10-06
file lsn: 63152
ndct db load finished, code:0
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct fill fast pool finished
nsvr_startup end.
uthr_pipe_create, create pipe[read:25, write:26]
uthr_pipe_create, create pipe[read:27, write:28]
uthr_pipe_create, create pipe[read:29, write:30]
uthr_pipe_create, create pipe[read:31, write:32]
uthr_pipe_create, create pipe[read:33, write:34]
uthr_pipe_create, create pipe[read:35, write:36]
uthr_pipe_create, create pipe[read:37, write:38]
uthr_pipe_create, create pipe[read:39, write:40]
uthr_pipe_create, create pipe[read:41, write:42]
uthr_pipe_create, create pipe[read:43, write:44]
uthr_pipe_create, create pipe[read:45, write:46]
uthr_pipe_create, create pipe[read:47, write:48]
uthr_pipe_create, create pipe[read:49, write:50]
uthr_pipe_create, create pipe[read:51, write:52]
uthr_pipe_create, create pipe[read:53, write:54]
uthr_pipe_create, create pipe[read:55, write:56]
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info finished, code:0.
SYSTEM IS READY.
此时主库处于配置状态
[dmdba@dmtest bin]$ ./disql sysdba/Dameng123

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 15.429(ms)
disql V8
SQL>
5. 备库恢复

  • 主库备份拷贝到备库
    [dmdba@dmtest bak]$ scp /dm8/bak/* dmdba@192.168.19.62:/dm8/bak
    The authenticity of host '192.168.19.62 (192.168.19.62)' can't be established.
    ECDSA key fingerprint is SHA256:pCZfoe3ivKgST3iqkJEVTQmaGE6Z9Ovf1jUAM7aysV4.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '192.168.19.62' (ECDSA) to the list of known hosts.

Authorized users only. All activities may be monitored and reported.
dmdba@192.168.19.62's password:
bak.bak 100% 11MB 201.6MB/s 00:00
bak.meta

  • 恢复数据库
    cd /dm8/bin/
    ./dminit db_name=DAMENG instance_name=DMSERVER2 path=/dm8/data SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123
    [dmdba@dmtest bin]$ ./dminit db_name=DAMENG instance_name=DMSERVER2 path=/dm8/data SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123
    initdb V8
    db version: 0x7000c
    file dm.key not found, use default license!
    License will expire on 2025-10-06
    Normal of FAST
    Normal of DEFAULT
    Normal of RECYCLE
    Normal of KEEP
    Normal of ROLL

log file path: /dm8/data/DAMENG/DAMENG01.log

log file path: /dm8/data/DAMENG/DAMENG02.log

write to dir [/dm8/data/DAMENG].
create dm database success. 2025-09-22 22:36:37

restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/bak'
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/bak'
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/bak'
file dm.key not found, use default license!
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:02][Remaining:00:00:00]
restore successfully.
time used: 00:00:02.494

recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/bak'
RMAN> recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/bak'
recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/bak'
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[63152], file_lsn[63152]
recover successfully!
time used: 452.653(ms)
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[63152], file_lsn[63152]
recover successfully!
time used: 00:00:01.077
6. 备库配置

  • dmmal.ini
    vi /dm8/data/DAMENG/dmmal.ini
    文件内容
    拷贝主库文件,内容需一致
  • dmarch.ini
    vi /dm8/data/DAMENG/dmarch.ini
    文件内容
    [ARCHIVE_REALTIME]
    ARCH_TYPE =REALTIME #实时归档类型
    ARCH_DEST =DMSERVER #实时归档目标实例名(主机和备份配置不同,配置向备机同步)
    [ARCHIVE_LOCAL1]
    ARCH_TYPE =LOCAL#本地归档类型
    ARCH_DEST =/dm8/arch #本地归档文件存放路径
    ARCH_FILE_SIZE=128 #单位Mb,本地单个归档文件最大值
    ARCH_SPACE_LIMIT =0 #单位Mb,0表示无限制,范围1024~4294967294M
  • dmwatcher.ini
    vi /dm8/data/DAMENG/dmwatcher.ini
    文件内容
    [GRP1] DW_TYPE =GLOBAL #全局守护类型
    DW_MODE =AUTO #自动切换模式
    DW_ERROR_TIME =10 #远程守护进程故障认定时间
    INST_RECOVER_TIME =60 #主库守护进程启动恢复的间隔时间
    INST_ERROR_TIME =10 #本地实例故障认定时间
    INST_OGUID =8888 #守护系统唯一OGUID值(这里要和数据库的OGUID 一致,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 #指定备库重演日志的时间阈值,默认关闭
  • 修改dm.ini
    MAL_INI=1
    ARCH_INI=1
    ALTER_MODE_STATUS=0
    ENABLE_OFFLINE_TS=2
    7.备库启动到mount状态
    [dmdba@dmtest bin]$ ./dmserver /dm8/data/DAMENG/dm.ini mount
    [dmdba@dmtest bin]$ ./dmserver /dm8/data/DAMENG/dm.ini mount
    file dm.key not found, use default license!
    version info: develop
    DM Database Server 64 V8 03134284094-20231108-207962-20067 startup...
    Normal of FAST
    Normal of DEFAULT
    Normal of RECYCLE
    Normal of KEEP
    Normal of ROLL
    Database mode = 0, oguid = 0
    License will expire on 2025-10-06
    file lsn: 63152
    ndct db load finished, code:0
    ndct second level fill fast pool finished
    ndct third level fill fast pool finished
    ndct second level fill fast pool finished
    ndct third level fill fast pool finished
    ndct fill fast pool finished
    nsvr_startup end.
    uthr_pipe_create, create pipe[read:23, write:24]
    uthr_pipe_create, create pipe[read:25, write:26]
    uthr_pipe_create, create pipe[read:27, write:28]
    uthr_pipe_create, create pipe[read:29, write:30]
    uthr_pipe_create, create pipe[read:31, write:32]
    uthr_pipe_create, create pipe[read:33, write:34]
    uthr_pipe_create, create pipe[read:35, write:36]
    uthr_pipe_create, create pipe[read:37, write:38]
    uthr_pipe_create, create pipe[read:39, write:40]
    uthr_pipe_create, create pipe[read:41, write:42]
    uthr_pipe_create, create pipe[read:43, write:44]
    uthr_pipe_create, create pipe[read:45, write:46]
    uthr_pipe_create, create pipe[read:47, write:48]
    uthr_pipe_create, create pipe[read:49, write:50]
    uthr_pipe_create, create pipe[read:51, write:52]
    uthr_pipe_create, create pipe[read:53, write:54]
    aud sys init success.
    aud rt sys init success.
    systables desc init success.
    ndct_db_load_info finished, code:0.
    SYSTEM IS READY.

8.修改主库 oguid和模式
[dmdba@dmtest bin]$ ./disql sysdba/Dameng123

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 16.736(ms)
disql V8
SQL> sp_set_oguid(8888);
DMSQL 过程已成功完成
已用时间: 4.118(毫秒). 执行号:1.
SQL> alter database primary;
操作已执行
已用时间: 6.995(毫秒). 执行号:0.
SQL> exit
[dmdba@dmtest bin]$ ./disql sysdba/Dameng123

服务器[LOCALHOST:5236]:处于主库配置状态
登录使用时间 : 16.585(ms)
disql V8
SQL>

  1. 修改备库 oguid和模式
    [dmdba@dmtest bin]$ disql sysdba/Dameng123

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 17.203(ms)
disql V8
SQL> sp_set_oguid(8888);
DMSQL 过程已成功完成
已用时间: 2.436(毫秒). 执行号:1.
SQL> alter database standby;
操作已执行
已用时间: 7.065(毫秒). 执行号:0.
SQL> exit
[dmdba@dmtest bin]$ disql sysdba/Dameng123

服务器[LOCALHOST:5236]:处于备库配置状态
登录使用时间 : 15.771(ms)
disql V8
10. 分别启动主备库守护进程
[dmdba@dmtest bin]$ ./dmwatcher /dm8/data/DAMENG/dmwatcher.ini
DMWATCHER[4.0] V8
DMWATCHER[4.0] IS READY
11. 第三个节点配置监视器
dmmonitor.ini
MON_DW_CONFIRM=0
MON_LOG_PATH=/dm8/data/log
MON_LOG_INTERVAL =60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID=8888
MON_DW_IP=192.168.19.61:65101
MON_DW_IP=192.168.19.62:65101
12. 登录监视器
./dmmonitor /dm8/data/dmmonitor.ini
login
用户名密码与数据库sysdba/用户密码相同
login
用户名:sysdba
密码:
[monitor] 2025-09-22 23:08:17: 登录监视器成功!
show

  1. 主备切换测试
    switchover

  2. 服务注册
    cd /dm8/script/root
    主库守护进程服务:
    ./dm_service_installer.sh -t dmwatcher -p DMSERVER -watcher_ini /dm8/data/DAMENG/dmwatcher.ini
    备库实例服务
    ./dm_service_installer.sh -t dmserver -p DMSERVER2 -dm_ini /dm8/data/DAMENG/dm.ini
    备库守护进程服务
    ./dm_service_installer.sh -t dmwatcher -p DMSERVER2 -watcher_ini /dm8/data/DAMENG/dmwatcher.ini
    监视器注册服务
    ./dm_service_installer.sh -t dmmonitor -p MONITOR -monitor_ini /dm8/data/dmmonitor.ini

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服