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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2742435/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle redo解析之-1、oracle redo log結構計算Oracle Redo
- undo log和redo log
- Oracle RAC+DG 調整redo/standby log fileOracle
- 從 0 開始實現程式語言(一):手寫 jsonParserJSON
- mysql之 redo logMySql
- 12C關於CDB、PDB 日誌檔案redo log的總結
- MySQL的Redo log 以及Bin logMySql
- 現在,開始用嘴寫程式碼!
- MySQL Undo Log和Redo Log介紹MySql
- MySQL中的redo log和undo logMySql
- Oracle-真實環境的丟失current redo log file的故障恢復Oracle
- Go 實現 nginx log 讀取 分析 寫入InfluxDB 並用Grafana 顯示GoNginxUXGrafana
- 【Mysql】三大日誌 redo log、bin log、undo logMySql
- 一行 Python 程式碼實現並行Python並行
- 【REDO】Oracle redo advice-sqlOracle RedoSQL
- 【REDO】Oracle redo undo 學習Oracle Redo
- Oracle 的Lgwr Worker的工作原理Oracle
- 4.2.1.6 選擇資料庫並設定 Redo Log 塊的大小資料庫
- redo log file 最佳化
- MySQL redo log最佳化MySql
- MySQL重做日誌(redo log)MySql
- Oracle Redo and UndoOracle Redo
- 【REDO】Oracle redo內部結構Oracle Redo
- 在no_ui中使用多程式實現多賬戶並行執行,並分配各自獨立的工作環境和策略UI並行
- [譯]如何停止使用 console.log() 並開始使用瀏覽器除錯程式碼瀏覽器除錯
- Java多執行緒並行處理任務的實現Java執行緒並行
- InnoDB文件筆記(二)—— Redo Log筆記
- How to Dump Redo Log File Information --metalinkORM
- MySQL中的redo log和checkpointMySql
- Log4j2 消停了,Logback 開始塌房了?
- [隨便寫寫] 開始寫一些東西了
- oracle 12C RAC 12.1.0.2 叢集日誌(cluster log)目錄Oracle
- MySQL更新資料時,日誌(redo log、binlog)執行流程MySql
- 從零開始寫 Docker(九)---實現 mydocker ps 檢視執行中的容器Docker
- 從零開始寫 Docker(八)---實現 mydocker run -d 支援後臺執行容器Docker
- iOS自定義log並寫入檔案iOS
- 2 開始實用 Oracle Data GuardOracle
- Oracle中的並行系列(二):你設定的並行真的生效了嗎?Oracle並行