Oracle資料庫中NOLOGGING和FORCE LOGGING的理解
總結如下:
注意append是一種hint;
一般我們可以這樣來使用
insert /*+append+/ into mytable values(1,"alan");
資料庫在歸檔模式下
當表模式為logging狀態時,無論是append模式還是no append模式,redo都會生成。
當表模式為nologging狀態時,只有append模式不會生成redo, 沒有append照樣會生成redo .
資料庫在非歸檔模式下
無論是在logging還是nologing的模式下,append的模式都不會生成redo,而noappend模式下都會生成redo。
如果我想看一張表是否是logging狀態,可以這樣
select table_name,logging from dba_tableswheretable_name="tablename";
那麼在Oracle內部還存在一個內部引數:_disable_logging 預設是false
透過更改為true可以讓Oracle在修改表中的記錄的時候完全不記錄redo,這個引數要甚用。平時,我們只作為效能測試用。
force logging(強制日誌)模式:
透過命令:
alter database force logging來使得Oracle無論什麼操作都進行redo的寫入。
透過select force_logging from v$database可以看到當前資料庫強制日誌模式的狀態。
---------------------------------------------------------------------------------------------------------
發表於:2008.06.20 15:00
分類: Oracle資料庫管理
出處:http://tolywang.itpub.net/post/48/464705
---------------------------------------------------------------
REDO 記錄發生在oracle資料庫中的一舉一動,當你往表裡插入資料時候,如果表上存在索引,oracle會自動幫你維護這些索引。但是這個看似簡單的維護索引的工作背後有許多動作要做的,redo 就會生成這些全過程。
對於 nologging 引數:也只是在特定的條件下才會大大減少redo 生成的數量.
例如:
以下摘自
ndex creations and ALTERs (rebuilds).
Bulk INSERTs using a 'direct path insert' via the /*+ APPEND */ hint.
LOB operations (updates to large objects do not have to be logged).
Table creations via the CREATE TABLE AS SELECT.
Various ALTER TABLE operations such as MOVE and SPLIT.
-----------------------------------------------------------------------------------------------------
恢復的時候是 直接針對 檔案的操作,不會象資料庫正在執行時候的 解析、產生redo、undo …… 沒有這些過程
日誌檔案中記錄了 對檔案變化的操作。 而索引的建立包含了一系列對檔案的修改。
nologging 只針對 create table ... as 和 direct insert 生效
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-402170/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- NOLOGGING和FORCE LOGGING的理解
- nologging、force logging、supplemental log的理解
- 日誌記錄模式(LOGGING 、FORCE LOGGING 、NOLOGGING)模式
- Oracle logging 和nologging 的區別Oracle
- 表的nologging和logging屬性對資料庫redo資料生成的影響資料庫
- Oracle 資料庫啟動 startup和startup force的區別Oracle資料庫
- 理解ORACLE資料庫Oracle資料庫
- oracle資料庫%notfound的理解Oracle資料庫
- ORACLE資料庫效能優化之表的NOLOGGINGOracle資料庫優化
- 對Oracle資料庫中Stroage子句的一些理解Oracle資料庫
- oracle 構建索引index_logging_nologgingOracle索引Index
- 深刻理解Oracle資料庫的啟動和關閉Oracle資料庫
- 深刻理解 oracle 資料庫的啟動和關閉Oracle資料庫
- oracle例項、資料庫及相關資料庫狀態的理解和測試Oracle資料庫
- 【原創】說說你是如何理解Oracle資料庫中latch和enqueue lock的?Oracle資料庫ENQ
- 深刻理解Oracle資料庫的啟動和關閉(轉)Oracle資料庫
- 理解Sybase ASE資料庫中的索引資料庫索引
- 2.5.11 指定 FORCE LOGGING 模式模式
- Specifying FORCE LOGGING Mode (82)
- 【SqlServer】 理解資料庫中的資料頁結構SQLServer資料庫
- STARTUP FORCE 理解
- Oracle database/Tablespace logging&nologging 優先關係OracleDatabase
- 案例:DG主庫未設定force logging導致備庫壞塊
- Oracle資料庫中遇到的坑Oracle資料庫
- Python 日誌庫 logging 的理解和實踐經驗Python
- LOB列型別的LOGGING和NOLOGGING儲存選擇型別
- WebSphere中的Oracle資料來源設定------JSP和Oracle資料庫的連線 (轉)WebOracleJS資料庫
- 對force.com資料庫的一些認識資料庫
- open資料庫時 force 與 restrict兩種模式的意思資料庫REST模式
- Oracle例項和Oracle資料庫Oracle資料庫
- Performance Considerations of FORCE LOGGING Mode (84)ORMIDE
- create index logging, nologging performance testIndexORM
- Important points about LOGGING and NOLOGGING(轉)Import
- oracle nologging和appendOracleAPP
- Oracle資料庫中的整型表示法Oracle資料庫
- ORACLE 資料庫中的鎖機制Oracle資料庫
- 12、Oracle中的其它資料庫物件Oracle資料庫物件
- RAID 和Oracle資料庫AIOracle資料庫