[20210310]db_lost_write_protect引數.txt

lfree發表於2021-03-10

[20210310]db_lost_write_protect引數.txt

--//昨天看了 Select 產生Redo分析案例
--//裡面提到引數:db_lost_write_protect。

db lost write detection功能引入用來發現該問題,Dataguard環境,當 主庫和備庫db_lost_write_protect配置為TYPICAL或FULL時(區
別表空間讀寫型別),primary DB當select時塊從disk上讀到buffer cache中執行物理讀取時,會生成其他redo條目,附加lost write
detection需要的資訊如block rdba、obj, 改變向量和SCN寫入redo log, 據Oracle宣傳開啟後通常帶來的效能負擔可以忽略,但是建議
先在測試庫測試並注意REDO量的增長。然後配合DataGuard去持續的lost write驗證,備用資料庫上設定DB_LOST_WRITE_PROTECT =
TYPICAL,這將使MRP及其恢復從屬伺服器使用redo日誌流中的額外資訊來檢查丟失的寫操作,當發現異常中報錯並中止MRP日誌應用,需
要人工介入修復。

--//我看了我們生產系統的oda:
> @ ver1
> @ prxx
==============================
PORT_STRING                   : x86_64/Linux 2.4.xx
VERSION                       : 19.0.0.0.0
BANNER                        : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
BANNER_FULL                   : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.9.0.0.0
BANNER_LEGACY                 : Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
CON_ID                        : 0
PL/SQL procedure successfully completed.

> show parameter lost
NAME                   TYPE    VALUE
---------------------- ------- --------
db_lost_write_protect  string  TYPICAL

> @ hide db_lost_write_protect
NAME                  DESCRIPTION                 DEFAULT_VALUE SESSION_VALUE SYSTEM_VALUE ISSES ISSYS_MOD
--------------------- --------------------------- ------------- ------------- ------------ ----- ---------
db_lost_write_protect enable lost write detection FALSE         TYPICAL       TYPICAL      FALSE IMMEDIATE
--//可以發現預設值並不是TYPICAL。而在11g下:

SYS@book> @ ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@book> @ hide db_lost_write_protect
NAME                  DESCRIPTION                 DEFAULT_VALUE SESSION_VALUE SYSTEM_VALUE ISSES ISSYS_MOD
--------------------- --------------------------- ------------- ------------- ------------ ----- ---------
db_lost_write_protect enable lost write detection TRUE          NONE          NONE         FALSE IMMEDIATE

--//很明顯oracle不知道為什麼要改變這個預設值。好奇心看看預設安裝還改變了什麼:

> create pfile='/tmp/@.ora' from spfile;
File created.

--//檢查pfile引數檔案, 發現(我僅僅摘要我認為比較奇怪的引數):
*._datafile_write_errors_crash_instance=FALSE
*._db_writer_coalesce_area_size=16777216
*._disable_interface_checking=TRUE
*._enable_NUMA_support=FALSE
*._file_size_increase_increment=2143289344
*._fix_control='18960760:on'
*._gc_policy_time=20
*._gc_undo_affinity=TRUE

family:dw_helper.instance_mode='read-only'
*.filesystemio_options='SETALL'
*.local_listener='-oracle-none-'

*.sql92_security=TRUE

--//我不知道一些是安裝者所為,還是預設安裝就是這樣。一些細節我還給仔細觀察。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2762044/,如需轉載,請註明出處,否則將追究法律責任。

相關文章