9i筆記-後臺程式
ARCn CKPT DBWn
[@more@]-- 其它調整問題
-- ===========ARCn 歸檔程式============--
--如何確定ARCn程式是否有效地執行?
-- 與歸檔程式相關的等待事件
select name from v$event_name where name like 'log file switch%' ;
NAME
----------------------------------------
log file switch (checkpoint incomplete)
log file switch (archiving needed)
log file switch (clearing log file)
log file switch completion
-- 列出與日誌相關的等待事件
select * from v$system_event where event like 'log%';
select * from v$system_event where name like 'log file switch (archiving%';
-- 即日誌的切換要等archive的完成,如果出現log file switch (archiving needed)的等待事件,就說明歸檔不夠快,導致日誌切換不過來.
-- 透過v$archived_log 來檢視多長時間生成一個歸檔日誌,以及生成一個歸檔日誌要花費多長時間?
-- 每20分鐘生成一個歸檔日誌,還不算作是頻繁.
select name,blocks,status,
to_char(first_time,'dd-mon-yyyy hh24:mi:ss') started,
to_char(completion_time,'dd-mon-yyyy hh24:mi:ss') complete
from v$archived_log
--where trunc(first_time) = ''
-- 非歸檔模式是沒有內容的
-- 透過 v$archived_processes 檢視歸檔程式是否空閒?
select * from v$archived_processes;
-- 如何增加歸檔程式?
alter system set log_archive_max_processes = 5 ;
-- 這個引數值DEFAULT=2 MAX=10
-- =================== CKPT 檢查點程式 ==================== --
-- 何時需要調整檢查點?
-- 出現log file switch (checkpoint incomplete)
-- 當發生日誌切換時,首先觸發檢查點,檢查點通知DBWn 去寫資料檔案. 在這完成之前,LGWR必須等待,直到檢查點完成.
-- 如果出現這個事件,就需要考慮加快DBWn
-- 另外一個需要檢視的統計資訊是後臺檢查點啟動與完成的數量
select name,value from v$sysstat
where name like 'background checkpoint%'
NAME VALUE
---------------------------------------------------------------- ----------
background checkpoints started 0
background checkpoints completed 0
-- 如果started > completed 說明沒有在日誌檔案切換之間完成檢查點,
-- 反過來,說明日誌檔案不夠大 , 需要增加重做日誌檔案的大小 (注: 這一句話沒有理解,難道completed會大於started? )
-- 另外一點,透過查詢v$SYSSTAT,還可以確定每一個檢查點發生,平均寫入的資料塊數。
select name , value from v$sysstat where name like 'DBWR checkpoint%' ;
SQL> select name , value from v$sysstat where name like 'DBWR checkpoint%' ;
NAME VALUE
---------------------------------------------------------------- ----------
DBWR checkpoint buffers written 111
DBWR checkpoints 0
SQL> alter system checkpoint;
System altered.
SQL> select name , value from v$sysstat where name like 'DBWR checkpoint%' ;
NAME VALUE
---------------------------------------------------------------- ----------
DBWR checkpoint buffers written 114
DBWR checkpoints 1
-- 看上面的結果,一個檢查點寫了一塊資料到資料檔案中。
-- 有助於調整檢查點的另外兩個引數是: FAST_START_IO_TARGET FAST_START_MTTR_TARGET
-- FAST_START_MTTR_TARGET 是個綜合性的引數,這個引數設定後,需要經常檢視 V$INSTANCE_RECOVERY 檢視, 其中的ESTIMATED_MTTR是否符合MTTR的設定目標?
select estimated_mttr from v$instance_recovery;
ESTIMATED_MTTR
--------------
8
8遠遠小於設定的300秒,可以
-- =================== DBWn 資料寫入程式 ==================== --
-- DBWn慢 可能導致的情景:
-- 一個CKPT發生,DBWn 去寫,還沒有寫完,又一個CKPT發生......
-- 因此, DBWn 必須要跟上 CKPT 程式
-- ==== 是否有DBWn的爭用? ==== --
-- 1 透過v$SYSTEM_EVENT free buffer waits 這個等待說明資料庫為了取得空閒的BUFFER, 必須等待DBWn去完成寫操作.
select event,total_waits,time_waited
from v$system_event
where event like 'free%';
-- (思考: 這個時候增大DB BUFFER行嗎? 不行, 更多的DB_BUFFER,只會增加DBWn的負擔,所以只能快點寫,)
-- 2 透過v$SYSSTAT 檢視是否每次請求都能得到FREE BUFFER?
-- 如果得不到,則說明BUF不夠用.
SQL> select * from v$sysstat where name like 'DBW%';
STATISTIC# NAME CLASS VALUE
---------- ---------------------------------------------------------------- ---------- ----------
49 DBWR checkpoint buffers written 8 119
50 DBWR transaction table writes 8 38
51 DBWR undo block writes 8 40
52 DBWR revisited being-written buffer 8 0
53 DBWR make free requests 8 0
54 DBWR free buffers found 8 0
55 DBWR lru scans 8 0
56 DBWR summed scan depth 8 0
57 DBWR buffers scanned 8 0
58 DBWR checkpoints 8 1
59 DBWR cross instance writes 40 0
60 DBWR fusion writes 40 0
select round(a.value/b.value) avg_free_per_request
from v$sysstat a,v$sysstat b
where a.name = 'DBWR free buffers found'
and b.name = 'DBWR make free requests'
and b.value <> 0
/
-- 如何加快DBWn ?
-- 如果單CPU,OS 又不支援 非同步I/O (ASYN IO),啥也別做了。
-- 如果單CPU,OS 支援非同步I/O , 設定DBWR_IO_SLAVES disk_asynch_io 引數
-- 如果多CPU,set init parameter DB_WRITER_PROCESSES
--=========================--
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271063/viewspace-1007366/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 後臺程式的理解筆記Oracle筆記
- Java後臺筆記Java筆記
- 9i筆記-undo筆記
- 筆記:前端與後臺互動筆記前端
- rac讀書札記---後臺程式
- Laravel 快速構建後臺 package Voyager 使用筆記LaravelPackage筆記
- 微信小程式+java後端整合筆記微信小程式Java後端筆記
- 9i筆記-最佳化表空間筆記
- 【筆記】9i concepts 學習(一)筆記
- 9i筆記-最佳化資料儲存筆記
- 9i Performance Tuning Guide 讀書筆記ORMGUIIDE筆記
- 【筆記】9i 文件中的一個問題筆記
- Oracle 9i DBA Fundamentals I學習筆記(二)Oracle筆記
- Oracle Database 9i/10g/11g程式設計藝術 筆記OracleDatabase程式設計筆記
- 阿里百秀後臺管理專案筆記 ---- Day01阿里筆記
- Dubbo學習筆記(二) Dubbo 控制後臺的安裝筆記
- ORACLE後臺程式Oracle
- oracle 後臺程式Oracle
- Clusterware 後臺程式
- 筆記:後端 - Redis筆記後端Redis
- 折騰筆記[2]-跨平臺打包tauri程式筆記
- 9i Performance Tuning Guide 讀書筆記一ORMGUIIDE筆記
- 【筆記】《app後臺開發運維和架構實踐》筆記APP運維架構
- 將程式在後臺執行和殺掉後臺的程式
- 9i Performance Tuning Guide 讀書筆記二(zt)ORMGUIIDE筆記
- RAC後臺GTX程式
- WINDOWS ORACLE 後臺程式WindowsOracle
- Oracle後臺程式列表Oracle
- 後臺程式介紹
- Dataguard(Standby) 後臺程式
- [筆記]Semaphores Tunning on RedHat Linux for Oracle 9i or 10g筆記RedhatLinuxOracle
- 開發筆記:手動搭建系統後臺-認證使用者筆記
- centos 7.9安裝supervisor支援laravel佇列常駐後臺筆記CentOSLaravel佇列筆記
- 《ORACLE 9i/10g/11g程式設計藝術》學習筆記 配置環境Oracle程式設計筆記
- Oracle 後臺程式 說明Oracle
- Oracle後臺程式詳述Oracle
- 幾個必要後臺程式
- [zt] Oracle RAC 後臺程式Oracle