oracle 多进程写,12C开始oracle实现了SCALABLE LGWR多进程并行写redo log

在oracle 12.1版本之前,oracle日志写进程LGWR为单进程,oracle 12.1开始实现了SCALABLE LGWR多进程,采用多个LGWR协同对redo log日志进行并行写入,这是Oracle数据库内部最重要的改进,解决了最后的并发瓶颈点

SCALABLE LGWR主要受到隐藏参数_use_single_log_writer和_max_outstanding_log_writes的控制

_use_single_log_writer参数主要有三个可选值 true,false,adaptive,默认值为adaptive

false,adaptive:如果CPU个数大于一个则会有多个lg0n进程

true:不生成多个lg0n进程,如同12.1之前那样仅有单个LGWR

_max_outstanding_log_writes参数默认值为2

[oracle@12C ~]$ ps -ef |grep ora_lg |grep -v grep

oracle     6305      1  0 14:53 ?        00:00:00 ora_lgwr_OCP

oracle     6311      1  0 14:53 ?        00:00:00 ora_lg00_OCP

oracle     6315      1  0 14:53 ?        00:00:00 ora_lg01_OCP

SQL> select VERSION from v$instance;

VERSION

-----------------

12.1.0.2.0

SQL>select a.ksppinm name, b.ksppstvl value, a.ksppdesc description from x$ksppi a,

x$ksppcv b where a.indx = b.indx and a.ksppinm in

('_max_outstanding_log_writes','_use_single_log_writer');

NAME                           VALUE      DESCRIPTION

------------------------------ ---------- --------------------------------------------------

_use_single_log_writer         ADAPTIVE   Use a single process for redo log writing

_max_outstanding_log_writes    2          Maximum number of outstanding redo log writes

修改_max_outstanding_log_writes=3

SQL> alter system set "_max_outstanding_log_writes"=3 scope=spfile;

System altered.

SQL> startup force

SQL>select a.ksppinm name, b.ksppstvl value, a.ksppdesc description from x$ksppi a,

x$ksppcv b where a.indx = b.indx and a.ksppinm in

('_max_outstanding_log_writes','_use_single_log_writer');

NAME                           VALUE      DESCRIPTION

------------------------------ ---------- --------------------------------------------------

_use_single_log_writer         ADAPTIVE   Use a single process for redo log writing

_max_outstanding_log_writes    3          Maximum number of outstanding redo log writes

[oracle@12C ~]$ ps -ef|grep lg|grep -v grep

oracle     8589      1  0 15:13 ?        00:00:00 ora_lgwr_OCP

oracle     8593      1  0 15:13 ?        00:00:00 ora_lg00_OCP

oracle     8597      1  0 15:13 ?        00:00:00 ora_lg01_OCP

oracle     8601      1  0 15:13 ?        00:00:00 ora_lg02_OCP

修改_use_single_log_writer='true'

SQL>  alter system set "_use_single_log_writer"='true' scope=spfile;

System altered.

SQL> startup force

SQL>select a.ksppinm name, b.ksppstvl value, a.ksppdesc description from x$ksppi a,

x$ksppcv b where a.indx = b.indx and a.ksppinm in

('_max_outstanding_log_writes','_use_single_log_writer');

NAME                           VALUE      DESCRIPTION

------------------------------ ---------- --------------------------------------------------

_use_single_log_writer         true       Use a single process for redo log writing

_max_outstanding_log_writes    1          Maximum number of outstanding redo log writes

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值