多选题 如果LGWR经常因为检查点没有完成而等待一个重做日志组,应该采取以下的哪一个措施?
A.添加一个重做日志组
B.添加一个重做日志成员
C.减少一个重做日志成员
D.清除当前的重做日志组
E.将数据库置为非归档模式

【正确答案】 A
【答案解析】[解析] 这一题是测试对Oracle如何操作重做日志组和数据库体系结构的熟悉程度。这一题是比较复杂的,除了要了解有关重做日志操作的概念之外,还需要深刻地理解Oracle数据库的体系结构。根据相关解释,可知LGWR负责将重做日志缓冲区(内存)的内容写到重做日志文件(外存)上——读内存、写磁盘(外存),而归档写后台进程(ARCH/ARCR0)负责将重做日志文件中的内容写到归档日志文件中——读外存、写外存,所以ARCR0会比LGWR的操作速度慢。这样一来,如果数据库上的DML操作和事务频繁,可能LGWR在某个时间点上(经过了数次重做日志切换之后)当其要覆盖重做日志文件原有的内容时,归档写后台进程还没有将这一组重做日志中的内容写到归档日志文件中,因此可能会造成LGWR的等待,即系统挂起。此时添加一个重做日志组可以起到缓冲的作用,即可以减缓LGWR等待事件发生的频率,所以选项A肯定是正确的。而其他选项所采取的方法都无法达到这一目的,所以选项B、C和D都是错误的。