每当
LNS
进程停止将重做数据传输到备用数据库,而主数据库却继续提交事务时,
就会出现日志文件间隔。每次网络或备用数据库失效时,将可能产生这种情况,具体取
决于
Data Guard
配置的实现方式
(
稍后“
Data Guard
保护模式”一节将就此进行讨论
)
。
在此状态下,主数据库
LGWR
进程继续写入到当前
ORL
,填满
ORL
后,会切换到一个
新
ORL
,此时归档进程
(archive
,
ARCH)
会在本地归档已填满的
ORL
。在繁忙的系统中,
在主备之间的连接还原前,此循环会重复多遍,从而生成很大的日志文件间隔。
在中断期间,
Data Guard
在主数据库上使用
ARCH
进程连续
ping
备用数据库来确定
其状态。当还原与备用数据库的通信后,
ARCH ping
进程会查询备用控制文件
(
通过其
RFS
进程
)
,来确定备用数据库从主数据库收到的最后一个完整日志文件。
Data Guard
确
定需要哪些日志文件来重新同步备用数据库,然后立即开始使用其他
ARCH
进程传输相
应文件。在接下来执行日志切换时,
LNS
会试图连接备用数据库,成功后开始传输当前
重做数据,而
ARCH
进程在后台处理间隔。图
1-5
中的虚线表示传输和应用所需的重做
数据来处理日志文件间隔。一旦备用应用进程能赶上当前重做记录的进度,应用进程就
自行转换,不再读取归档重做日志,改而读取当前
SRL(
假定用户已经配置了
Data Guard
“实时应用”
)
。最后需要注意的一点是,从
Data Guard 10
g
开始,主数据库的一个
ARCH
进程一直专门负责本地归档,从而确保在处理间隔期间,远程归档操作不影响主数据库
回收其
ORL
4
。
评论