多个redo logfile member时候的性能分析

简介: Oracle对应多个logfile member的配置的运作机制说明如下

Oracle对应多个logfile member的配置的运作机制说明如下:


https://docs.oracle.com/en/database/oracle/oracle-database/20/admin/managing-the-redo-log.html#GUID-BDEEE3CB-7917-4C73-AB2D-434583D5F838

image.png



Each member of a log file group is concurrently active—that is,

concurrently written to by LGWR—as indicated by the identical log

sequence numbers assigned by LGWR. In Figure 6-2, first LGWR writes

concurrently to both A_LOG1 and B_LOG1. Then it writes concurrently to

both A_LOG2 and B_LOG2, and so on. LGWR never writes concurrently to

members of different groups (for example, to A_LOG1 and B_LOG2).


Note:


Oracle recommends that you multiplex your redo log files. The loss of

the log file data can be catastrophic if recovery is required. Note

that when you multiplex the redo log, the database must increase the

amount of I/O that it performs. Depending on your configuration, this

may impact overall database performance.


这里有个讨论向redo logfile group里面增加一个慢的member的贴子:


Multiplexing the Redo Log in remote location


writing in the redologs can only be as fast as writing in the slowest

member


This is probably not a good idea unless you have a really fast, fast,

fast network connection to the remote site. It has a high chance of

slowing down database performance.


现在分析两个问题:


另一方面,提交事务时,须冗余日志都写入确认后,才被认为事务提交成功?还是只要其中之一写入确认,就认为事务提交成功

答:需要全部完成才算commit成功。


Oracle 冗余 online redo log,比如一个日志文件的2个副本存放在2个独立存储卷中。两个存储卷性能一样,与无冗余 online redo log 性能有多大差异?

答:由于用一个group里面的不同member是同时写,因此这种情况性能和单个member几乎一样。

相关文章
|
Oracle 前端开发 关系型数据库
使用隐含参数_disable_logging分析oracle写redo logfile的性能
oracle有一个隐含参数_disable_logging可以禁止日志的生成,这个参数当然不能在生产库使用,但我们可以将其因为与测试,例如,如果我们怀疑数据库写redo logfile存在性能问题,我们可以将这个参数设置为true,禁止写日志,看看oracle的性能提高了多少。
|
存储 关系型数据库 MySQL
所有的MySQL数据库都有redo log吗?底层原理是什么?
所有的MySQL数据库都有redo log吗?底层原理是什么?
|
监控 Oracle 关系型数据库