先看一个报错:
2024-07-10 22:12:21.725 [ERROR] database P0000003511 T0000000000000003696 rafil_list_overlap_consecutive_check failed, rfil(+DMDATA/data/DSC02/arch/ARCHIVE_LOCAL1_0x57843343_EP1_2024-07-10_20-44-40.log)->next_seq(2901) >= next rfil(+DMDATA/data/DSC02/arch/ARCHIVE_REMOTE_0x57843343_EP1_2024-07-10_20-44-58.log)->arch_seq(2898)
2024-07-10 22:12:21.725 [ERROR] database P0000003511 T0000000000000003696 rarch_sync_process, rafil_collect_by_dsc_seqno failed, code=-731
2024-07-10 22:12:21.725 [ERROR] database P0000003511 T0000000000000003696 rarch_local_arch_send, rarch_sync_process failed, code:-731!
在搭建DSC主备的时候,报以上错误
rarch_sync_process和rarch_local_arch_send失败,归档同步发送失败。
错误原因:
各节点远程归档路径(ARCH_INCOMING_PATH)和其他节点的本地归档路径相同
解决办法:
调整各节点远程归档路径(ARCH_INCOMING_PATH)不要和其他节点的本地归档路径一致,单独创建目录存放远程归档
总结了以下DSC的一些疑问:
DSC的端口都有哪些?DSC主备的端口?哪几个文件有关联?
两节点DSC:
MAL_HOST:MAL_PORT,MAL系统通信,私网地址
DMCSSM:配置dcr_oguid、两台CSS的port和IP
DSC主备:
在前面的基础上加了关于DmWatch的三个端口
MAL_INST_PORT 实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT DW监听其他服务的端口,其他服务(比如monitor)连DW
MAL_INST_DW_PORT 实例监听DW的端口
Dmwatcher:配置INST_OGUID,这是守护系统唯一的OGUID,不同于其他OGUID
Dmmonitor:配置MON_INST_OGUID,同上面DW的INST_OGUID
MON_DW_IP:MON_DW_PORT,DW的PORT,同MAL_DW_PORT
怎么看是否有gap?看日志线程和apply线程的状态?
监视器里可以看到主备库的状态都是正常的:
ISTATUS为OPEN,INST_OK为OK,WSTATUS(守护进程状态)为OPEN。
停掉备库的实例后,WSTATUS变为STARTUP
show一下
启动备库
此时fseq:主库是5487 备库是2920
Flsn:主库是48066 备库是48066
主库插入数据
此时fseq:主库是5490 备库是2920,主库增加,备库没有变化
Flsn:主库是48088 备库是48066,主库增加,备库没有变化
说明有延迟,还没有同步到备库,再show
此时Fseq:主库是5491 备库是2921,备库有增加
Flsn:主库是48088 备库是48088,备库有增加,且和主库一致
说明同步正常
通过v$rlog也能看FLSN的大小:
主库:
备库:
如果没有数据守护进程,手动open数据库,数据会进行同步吗?
首先,停掉监视器
然后,停掉备库的DW
再然后,停掉数据库实例,并启动数据库实例到mount
执行以下测试:
然后主库插入数据,看主备库的实例日志,standby日志正常发送到备库,
备库:LSN有刷新,数据已同步过来。
启动DW
启动监视器
状态完全正常。
重启机器,会自动启动?DB会启动到mount?
install服务脚本执行创建服务后就会开启开机自启动
DB的启动会启动到mount,但是两节点不能同时mount,一个节点mount,另一个节点error
如果配置了dmwatcher的服务,重启机器后,需要DSC两节点的dmwatcher和备库的dmwatcher都启动,DSC状态正常,两个节点都OPEN。
日志是怎么传到standby的,主库备库的日志是不是一一对应的?
不是一一对应的。
这里log replay service是将主库的日志,发送到备库的内存,
然后备库生成online redo log和local archivelog,local archivelog的大小、目录等参数,是按照备库的dmarch.ini生成的,文件名为STANDBY*.log。