您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“數(shù)據(jù)庫日志記錄模式有哪些”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
LOGGING:當(dāng)創(chuàng)建一個數(shù)據(jù)庫對象時將記錄日志信息到聯(lián)機(jī)重做日志文件。LOGGING實(shí)際上是對象的一個屬性,用來表示在創(chuàng)建對象時是否記錄REDO日志,包括在做DML時是否記錄REDO日志。一般表上不建議使用NOLOGGING,在創(chuàng)建索引或做大量數(shù)據(jù)導(dǎo)入時,可以使用NOLOGGING 。
FORCE LOGGING:簡言之,強(qiáng)制記錄日志,即對數(shù)據(jù)庫中的所有操作都產(chǎn)生日志信息,并將該信息寫入到聯(lián)機(jī)重做日志文件。
NOLOGGING:正好與LOGGING、FORCE LOGGING 相反,盡可能的記錄最少日志信息到聯(lián)機(jī)日志文件。
FORCE LOGGING可以在數(shù)據(jù)庫級別、表空間級別進(jìn)行設(shè)定、而LOGGING與NOLOGGING可以在數(shù)據(jù)對象級別設(shè)定。
在使用DATA GUARD 時,要求使用強(qiáng)制記錄日志模式。注:FORCE LOGGING并不比一般的LOGGING記錄的日志多,數(shù)據(jù)庫在FORCE LOGGING
狀態(tài)下,NOLOGGING選項(xiàng)將無效,因?yàn)镹OLOGGING將破壞DATAGUARD的可恢復(fù)性.FORCE LOGGING強(qiáng)制數(shù)據(jù)庫在任何狀態(tài)下必須記錄日志。
日志記錄模式與歸檔模式之間并不能等同,歸檔模式是指對系統(tǒng)產(chǎn)生的日志是否進(jìn)行歸檔或不歸檔。
歸檔模式下,將日志記錄到日志文件,并進(jìn)行歸檔。非歸檔模式下,同樣將日志記錄到日志文件,只不過不歸檔而已,容易丟失日志。
日志的記錄模式則不論是否處于歸檔或非歸檔,可以對日志進(jìn)行記錄,強(qiáng)制記錄,或少記錄日志。
歸檔模式中的LOGGING或FORCE LOGGING 支持介質(zhì)恢復(fù),而NOLOGGING 模式不支持介質(zhì)恢復(fù)。
基于NOLOGGING模式操作所產(chǎn)生的日志遠(yuǎn)小于LOGGING模式產(chǎn)生的日志,即NOLOGGING模式最小化日志記錄。
當(dāng)數(shù)據(jù)庫使用FORCE LOGGING時,具有最高優(yōu)先級別,其次是表空間級別的FORCE LOGGING。即是當(dāng)一個對象指定NOLOGGING時,而表空間或數(shù)據(jù)庫級別的日志模式為FORCE LOGGING,則該選項(xiàng)不起作用,直到表空間或數(shù)據(jù)庫級別的FORCE LOGGING解除。
一般建議將整個數(shù)據(jù)庫設(shè)置為FORCE LOGGING或基于表空間級別設(shè)定FORCE LOGGING,而不建議兩者都設(shè)置為FORCE LOGGING。
當(dāng)數(shù)據(jù)庫或表空間使用非強(qiáng)制日志模式時,則日記記錄優(yōu)先級別由低到高為:數(shù)據(jù)庫、表空間、數(shù)據(jù)對象
這是日志記錄的缺省模式,無論數(shù)據(jù)庫是否處于歸檔模式,這并不改變表空間與對象級別上的缺省的日志記錄模式。
對于臨時表空間將不記錄日志到聯(lián)機(jī)重做日志文件。
此模式不是不記錄日志,而是最小化日志產(chǎn)生的數(shù)量,通常在下列情況下使用NOLOGGING
SQL*Loader in direct mode
INSERT /*+APPEND*/ ...
CTAS
ALTER TABLE statements (move/add/split/merge partitions)
CREATE INDEX
ALTER INDEX statements (move/add/split/merge partitions)
NOLOGGING與表模式,插入模式,數(shù)據(jù)庫運(yùn)行模式(archived/unarchived)的關(guān)系:
下面僅說明使用append方式插入數(shù)據(jù)時日志產(chǎn)生的情況,如使用下面的方式進(jìn)行插入
insert /*+append+*/ into tb_name select colnam1,colname2 from table_name;
數(shù)據(jù)庫處于歸檔模式
當(dāng)表模式為logging狀態(tài)時,無論是否使用append模式,都會生成redo.當(dāng)表模式為nologging狀態(tài)時,只有append模式,不會生成redo。
數(shù)據(jù)庫處于非歸檔模式
無論是在logging還是nologing的模式下,append的模式都不會生成redo,而no append模式下都會生成redo。
設(shè)定數(shù)據(jù)庫為Force Logging模式后,數(shù)據(jù)庫將會記錄除臨時表空間或臨時回滾段外所有的操作,而忽略類似NOLOGGING之類的指定參數(shù)。
通過下面的操作來修改
ALTER DATABASE FORCE LOGGING;
ALTER TABLESPACE tablespace_name FORCE LOGGING;
取消FORCE LOGGING模式
ALTER DATABASE NO FORCE LOGGING;
ALTER TABLESPACE tablespace_name NO FORCE LOGGING;
查看數(shù)據(jù)庫級別日志的歸檔模式、記錄模式
SQL> select log_mode,force_logging from v$database;
LOG_MODE FORCE_LOGGING
------------ -------------
ARCHIVELOG NO
查看表空間級別的日志記錄模式
SQL> select tablespace_name,logging,force_logging from dba_tablespaces;
TABLESPACE_NAME LOGGING FORCE_LOGGING
--------------- --------- -------------
SYSTEM LOGGING NO
UNDOTBS1 LOGGING NO
SYSAUX LOGGING NO
TEMP NOLOGGING NO
USERS LOGGING NO
查看對象級別的日志記錄模式
scott@ORCL> select table_name,logging from user_tables;
TABLE_NAME LOG
------------------------------ ---
TB_A YES
TB_B YES
a.數(shù)據(jù)庫從非強(qiáng)制日子模式切換到強(qiáng)制日志模式
sys@ORCL> alter database force logging;
b.數(shù)據(jù)庫從強(qiáng)制日志模式切換到非強(qiáng)制日志模式
sys@ORCL> alter database no force logging;
c.表空間級別從強(qiáng)制日志模式切換到非強(qiáng)制日志模式
sys@ORCL> alter tablespace no force logging;
d.表空間級別從非強(qiáng)制日志模式切換到強(qiáng)制日志模式
sys@ORCL> alter tablespace no force logging;
e.對象級別日志記錄模式
sys@ORCL> alter table tb_a nologging; --不記錄日志模式
sys@ORCL> alter table tb_a logging; --采用日志記錄模式
計算所有LOB的大小:
SELECT SUM(BYTES)/1024/1024/1024 as LOB_Size
FROM user_segments
WHERE segment_type='LOBSEGMENT';
計算所有nologging的大小
SELECT SUM(s.BYTES)/1024/1024/1024 as Nologging_size
FROM user_segments s,user_lobs l
WHERE s.segment_type='LOBSEGMENT'
AND l.LOGGING='NO' AND l.SEGMENT_NAME=s.SEGMENT_NAME;
計算LOB段上nologging/logging的數(shù)量
SELECT COUNT(*) FROM user_lobs WHERE logging='NO';
SELECT COUNT(*) FROM user_lobs WHERE logging='YES';
alter database no force logging;
alter table scott.t_test nologging;
impdp '\/ as sysdba\' dumpfile=xxx.dmp tables=scott.t_test NOLOGFILE=Y
“數(shù)據(jù)庫日志記錄模式有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。