欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

怎么理解nologging、forcelogging、supplementallog日記

本篇內(nèi)容介紹了“怎么理解nologging、force logging、supplemental log日記”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、寧安ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的寧安網(wǎng)站制作公司

一、nologging

nologging對寫日志的影響與數(shù)據(jù)庫運行模式、表模式、插入模式三者都有關(guān)。

表的插入模式是指是否采用了append的hint提示:
insert /*+append*/ into t1 values(1, 'First');

當(dāng)數(shù)據(jù)庫在非歸檔模式下:
無論表是否使用了nologging或是logging,當(dāng)表使用append做插入時,都不會生成redo,而不使用append時都會生成redo。

當(dāng)數(shù)據(jù)庫在歸檔模式下:
如果表使用了nologging模式,且使用了append做插入,則不會生成redo,如果未使用append,則仍然會生成redo。
如果表使用了logging模式,則無論插入時是否使用了append,redo都會生成。

總結(jié)一句話就是:對于非歸檔模式,插入語句只要使用了append就不會生成redo,而對于歸檔模式,除非表使用了nologging,否則append仍然會產(chǎn)生redo。

查看表的日志模式是否為logging狀態(tài),默認(rèn)建表時的狀態(tài)是logging的:
select table_name,logging from dba_tables where owner='SCOTT' and table_name='EMP';

TABLE_NAME                     LOG
------------------------------ ---
EMP                            YES

Oracle有個內(nèi)部參數(shù)_disable_logging,默認(rèn)為false,如果該參數(shù)更改為true,則Oracle在更改表時會完全不記錄日志,但該參數(shù)應(yīng)慎用。

二、force logging

通過使用強制日志使Oracle無論什么操作都進(jìn)行redo的寫入:
alter database force logging;

查看數(shù)據(jù)庫是否為force logging狀態(tài),默認(rèn)為NO:
select force_logging from v$database;

FOR
---
NO

三、supplemental log

補充日志,主要是針對update命令的,是對重做日志記錄中變更矢量塊的補充記錄。日志挖掘器(LogMiner)、閃回事務(wù)及其查詢等都需要補充日志的支持。補充的目的是高度還原update命令,避免因為update命令造成的行遷移和行移動影響對日志的分析,讓LogMiner通過分析重做日志識別update命令不是由insert和delete完成的。如果未啟用補充日志,重做日志只將update命令更改的字段的舊值保存在撤銷數(shù)據(jù)塊的變更矢量中。而在數(shù)據(jù)塊中的變更矢量中記載被修改后的字段的新值,同行中的未被修改的字段不會記載。如果啟用了補充日志,重做日志中的撤銷數(shù)據(jù)塊的變更矢量中不僅會記錄被修改字段前的值和修改后的值,而且還會記錄修改字段的那個條件的值。

補充日志分為數(shù)據(jù)庫級補充日志、表級補充日志。

數(shù)據(jù)庫級補充日志又分為最小補充日志、標(biāo)識關(guān)鍵字段補充日志。

最小補充日志:
是最基本的一種數(shù)據(jù)庫級補充日志,而LogMiner正是依賴最小補充日志來工作的。其他補充日志都是基于數(shù)據(jù)庫級最小補充日志之上的,如果未啟用數(shù)據(jù)庫級最小補充日志,在啟用或使用其他補充日志時,會自動啟用數(shù)據(jù)庫的最小補充日志(Implicit)。
啟用最小補充日志:alter database add supplemental log data;
關(guān)閉最小補充日志:alter database drop supplemental log data;

標(biāo)識關(guān)鍵字段補充日志:
分為主鍵、外鍵、唯一索引、全體字段補充日志4種。

1)主鍵補充日志:
在update命令的重做記錄中添加被修改行的主鍵字段的舊值,無論是否被修改,都記錄。
如果表沒有主鍵,則由長度最小的唯一索引字段代替,若連唯一索引也沒有,則記錄該行所有字段。
alter database add supplemental log data(Primary key) columns;

2)唯一索引補充日志:
唯一索引主要是為復(fù)合索引(唯一)服務(wù)的。只有唯一索引的字段被update時,才會記錄該字段被修改前的值。
alter database add supplemental log data(unique) columns;

3)外鍵補充日志:
同唯一索引補充日志一樣,只有外鍵字段被update時,才會記錄被修改前的舊值,即也是為復(fù)合外鍵服務(wù)的。
alter database add supplemental log data(foreign key) columns;

4)全體字段補充日志:
顧名思義就是所有字段的值不論是否被修改都記錄(LOB、LONG字段除外)。會導(dǎo)致磁盤快速增長,LGWR進(jìn)程繁忙,不建議使用。
alter database add supplemental log data(all) columns;

這4種補充日志可以并行使用,效果累加。

表級補充日志:
分為主鍵、唯一索引、外鍵、全體字段、用戶自定義字段5種。

前4種同數(shù)據(jù)庫級標(biāo)識關(guān)鍵字段補充日志效果用法一樣。只不過是在特定表上啟用補充日志。
1)alter table t1 add supplemental log data(primary key) columns;
2)alter?table t1 add supplemental log data (unique) columns;
3)alter table t1 add supplemental log data(foreign key) columns;
4)alter table t1 add supplemental log data(all) columns;
5)alter table t1 add supplemental log group group_name(col01,col02,col05,col09) always;?

自定義字段的表級補充日志可以讓用戶任意指定哪些字段的舊值需要被補充日志記錄,可以分為有條件日至組和無條件日至組:

有條件日志組:只要補充日志組中描述的列有一個被修改(update),那么就要記錄該日志組所有描述列的前鏡像(舊值)。
無條件日志組:當(dāng)表被修改時要記錄日志組中所有描述列的前鏡像(舊值),無論改變是否對日志組中任一描述列造成了影響。需使用always關(guān)鍵字。

表級補充日志的情況可通過查詢數(shù)據(jù)字典視圖dba_log_groups和dba_log_group_columns獲得。

col owner for a10
col log_group_name for a20
col table_name for a20
select * from dba_log_groups where owner = 'SCOTT';

OWNER      LOG_GROUP_NAME       TABLE_NAME           LOG_GROUP_TYPE               ALWAYS      GENERATED
---------- -------------------- -------------------- ---------------------------- ----------- --------------
SCOTT      SYS_C0014349         T1                   ALL COLUMN LOGGING           ALWAYS      GENERATED NAME
SCOTT      SYS_C0014350         T1                   PRIMARY KEY LOGGING          ALWAYS      GENERATED NAME
SCOTT      SYS_C0014351         T1                   UNIQUE KEY LOGGING           CONDITIONAL GENERATED NAME
SCOTT      SYS_C0014352         T1                   FOREIGN KEY LOGGING          CONDITIONAL GENERATED NAME

col owner for a10
col table_name for a20
col column_name for a20
select * from dba_log_group_columns where owner = 'HR';

OWNER      LOG_GROUP_NAME                 TABLE_NAME           COLUMN_NAME            POSITION LOGGIN
---------- ------------------------------ -------------------- -------------------- ---------- ------
HR         GGS_92582                      EMPLOYEES1           EMPLOYEE_ID                   1 LOG
HR         GGS_91276                      COUNTRIES            COUNTRY_ID                    1 LOG
HR         GGS_91281                      DEPARTMENTS          DEPARTMENT_ID                 1 LOG
HR         GGS_91286                      EMPLOYEES            EMPLOYEE_ID                   1 LOG
HR         GGS_91284                      JOBS                 JOB_ID                        1 LOG
HR         GGS_91290                      JOB_HISTORY          EMPLOYEE_ID                   1 LOG
HR         GGS_91290                      JOB_HISTORY          START_DATE                    2 LOG
HR         GGS_91278                      LOCATIONS            LOCATION_ID                   1 LOG
HR         GGS_91274                      REGIONS              REGION_ID                     1 LOG

因為insert會記錄所有修改后字段,delete會記錄所有修改前字段,所以補充日志只對update產(chǎn)生影響,開啟補充日志時共享池中的SQL游標(biāo)都會失效。

“怎么理解nologging、force logging、supplemental log日記”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

網(wǎng)站欄目:怎么理解nologging、forcelogging、supplementallog日記
本文URL:http://chinadenli.net/article48/jgpcep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊軟件開發(fā)做網(wǎng)站網(wǎng)站營銷網(wǎng)站收錄關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司