我是靠谱客的博主 舒心铃铛,最近开发中收集的这篇文章主要介绍oracle 12c scalable lgwr 进程提高性能_max_outstanding_log_writes,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

os: centos 7.6
db: oracle 19.3

在 oracle11g 版本及之前,oracle 日志写进程即 lgwr 为单进程,众所周知,单进程写入效率并不高.
oracle12c 版本新增特性:lgwr 多进程。即采用多个 lgwr 协同对 redo log 日志进行写入。

# ps -fu oracle |grep -i ora_lg |grep -v grep
oracle   11316     1  0 10:30 ?        00:00:14 ora_lgwr_orclp1
oracle   11320     1  0 10:30 ?        00:00:35 ora_lg00_orclp1
oracle   11324     1  0 10:30 ?        00:00:02 ora_lg01_orclp1

默认有两个 lgwr slave 进程.

_max_outstanding_log_writes

该参数是隐藏参数,默认值为 2

$ sqlplus / as sysdba

SQL> set lines 200;
set pages 200;
col inst_id format 99;
col con_id format 99;
col name for a35;
col description for a30;
col value for a10;

select
     x.inst_id,
     y.con_id,
     x.ksppinm  name,
     x.ksppdesc description,
     y.ksppstvl  value,
     y.ksppstdf  isdefault,
     decode(bitand(y.ksppstvf,7),1,'MODIFIED',4,'SYSTEM_MOD','FALSE')  ismod,
     decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE')  isadj
from sys.x$ksppi x,
     sys.x$ksppcv y
where 1=1
  and x.inst_id = y.inst_id
  and x.indx = y.indx
  and x.ksppinm in ( '_use_single_log_writer', '_max_outstanding_log_writes')
order by translate(x.ksppinm, ' _', ' '),x.inst_id,y.con_id
;

INST_ID CON_ID NAME				   DESCRIPTION			  VALUE      ISDEFAULT ISMOD				ISADJ
------- ------ ----------------------------------- ------------------------------ ---------- --------- -------------------------------- --------------------------------
      1      1 _max_outstanding_log_writes	   Maximum number of outstanding  2	     TRUE     FALSE				FALSE
						   redo log writes

      1      1 _use_single_log_writer		   Use a single process for redo  ADAPTIVE   TRUE      FALSE				FALSE
						   log writing


_use_single_log_writer 默认值为 ADAPTIVE,不需要修改.
现在修改 _max_outstanding_log_writes

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

需要重启实例

$ srvctl stop database -db orclp
$ srvctl start database -db orclp

查看 lgwr 进程

# ps -fu oracle |grep -i ora_lg |grep -v grep
oracle   12114     1  0 11:11 ?        00:00:14 ora_lgwr_orclp1
oracle   12118     1  0 11:11 ?        00:00:35 ora_lg00_orclp1
oracle   12122     1  0 11:11 ?        00:00:02 ora_lg01_orclp1
oracle   12126     1  0 11:11 ?        00:00:00 ora_lg02_orclp1
oracle   12137     1  0 11:11 ?        00:00:00 ora_lg03_orclp1
oracle   12148     1  0 11:11 ?        00:00:00 ora_lg04_orclp1
oracle   12153     1  0 11:11 ?        00:00:00 ora_lg05_orclp1
oracle   12157     1  0 11:11 ?        00:00:00 ora_lg06_orclp1
oracle   12163     1  0 11:11 ?        00:00:00 ora_lg07_orclp1

已经是 8 个 lgwr slave 了.

参考:
<< ALERT: Bug 21915719 Database hang or may fail to OPEN in 12c IBM AIX or HPUX Itanium - ORA-742, DEADLOCK or ORA-600 [kcrfrgv_nextlwn_scn] ORA-600 [krr_process_read_error_2] (文档 ID 1957710.1) >>

最后

以上就是舒心铃铛为你收集整理的oracle 12c scalable lgwr 进程提高性能_max_outstanding_log_writes的全部内容,希望文章能够帮你解决oracle 12c scalable lgwr 进程提高性能_max_outstanding_log_writes所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部