掃二維碼與項目經理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流
數據庫force logging的作用與實現方法

創(chuàng)新互聯公司主要從事成都做網站、成都網站制作、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務莒縣,10余年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
隨著互聯網和大數據時代的到來,數據管理變得越來越重要。在企業(yè)和組織中,數據庫是存儲數據的重要設施。為了保護數據的完整性和可靠性,數據庫需要進行日志記錄。日志記錄是指將所有的數據庫操作記錄下來,以便恢復在發(fā)生故障時丟失的數據。在日志記錄過程中,數據庫的Force Logging功能是一項重要的功能。
Force Logging是oracle數據庫中用于強制所有的操作都寫入歸檔日志文件的功能。Force Logging可以強制保證每個事務操作都寫入數據庫日志,以便在系統崩潰或者修復數據時,可以使用歸檔日志進行數據恢復等操作。以下是具體的作用和實現方法。
1.作用
1.1保證數據恢復的可靠性
在數據庫中,重要的數據修改如增加、刪除和更新操作都是在事務的基礎上進行。這些事務操作需要寫入歸檔日志文件。在數據庫崩潰或者人為誤操作時,可以使用歸檔日志進行數據恢復。如果不啟用Force Logging,則會出現部分事務操作沒有寫入歸檔日志的情況,這將會導致數據庫恢復失敗。
1.2保證日志數據完整
在數據操作過程中,由于各種原因,比如系統故障或存儲設備故障,一些日志數據可能會丟失或損壞。日志數據的不完整性會導致數據庫恢復失敗,而Force Logging可以保證日志數據的完整性,從而避免數據恢復失敗的情況。
1.3提高數據庫的性能
由于Force Logging功能可以一次性寫入所有事務日志,提高了讀寫效率。而不啟用Force Logging,則需要在每次提交事務時寫入日志文件,這對于數據庫的執(zhí)行效率將會有很大的影響,尤其是在高并發(fā)狀態(tài)下,效率下降更為明顯。
2.實現方法
2.1啟用Force Logging
在Oracle中,可以通過如下命令啟用Force Logging:
Alter Database Force Logging;
當啟用了Force Logging后所有的事務都會寫入歸檔日志文件。這樣會帶來一些開銷,但可以保證數據的完整性。需要注意的是,在啟用Force Logging之前,必須先對數據庫進行備份,這樣可以對數據做好保護措施,避免在數據庫恢復過程中的數據丟失。
2.2歸檔日志文件的管理
在啟用Force Logging之后,所有的事務操作都會寫入歸檔日志文件,這將會對系統的存儲和管理帶來一定的壓力。需要進行歸檔日志文件的管理,避免文件過多或文件過大,導致存儲空間的占用過大。
為了避免這種情況發(fā)生,可以在歸檔日志文件的每個周期結束后,將過期的歸檔日志文件刪除或者備份到存儲設備中。這樣可以釋放存儲空間,同時還可以保留歷史歸檔日志文件,避免在數據恢復時數據損失。
在數據庫操作中,Force Logging功能是非常重要的。它可以避免數據庫在崩潰或者人為誤操作時發(fā)生數據丟失或損壞的情況。雖然啟用Force Logging功能會增加系統開銷,但它可以保證數據的完整性和系統的穩(wěn)定性。因此,對于重要的系統,建議啟用該功能并對歸檔日志文件進行有效的管理。
成都網站建設公司-創(chuàng)新互聯為您提供網站建設、網站制作、網頁設計及定制高端網站建設服務!
1、oracle雙機熱備叫做DataGuard簡稱DG,簡單來說就一些步驟,每個步驟都有些概念需要了解。
2、晌鉛10g和11g稍微有點區(qū)別,大謹歷10g備庫在熱備狀態(tài)不能open查詢,11g支持ActiveDataguard備庫可以在熱備狀態(tài)open并select數據:alter database open read only;。
3、DG多配置幾次就會輕車熟路。
4、首先數據庫必須開啟歸檔模式,然后復制一份主庫到備庫,這個步驟11g也有更先進的命令,11g支持-Active database duplicate。
備份主庫過程可以熟悉一下rman這個工具。
5、DG配置監(jiān)聽listener.ora和initSID.ora
在使用DATA GUARD 時,要求使用強制記錄日志模式。日志記錄模式(LOGGING 、FORCE LOGGING 、NOLOGGING)
ALTER DATABASE FORCE LOGGING;
6、啟動備庫
物理standby極少情況下可以以read-write模式打開,某些情況下可以以read-only模式滾搜打開,所以默認情況下,加載到mount狀態(tài)即可。
SQL> STARTUP MOUNT;
啟動redo應用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
啟動實時應用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
7、DG主庫和備庫之間角色切換
DATAGUARD包含三個服務(日志傳輸、日志應用、角色轉換)
8、DATAGUARD的幾種保護模式:更大保護maximum protection,更大可用maximum availability,更大性能maximum performance
例如在主庫修改保護模式為maximize availability,并打開數據庫
ALTER DATABASE SET STANDBY DATABASE TO maximize availability;
desc v$database
名稱 是否為空? 類型
—–
DBID NUMBER
NAME VARCHAR2(9)
CREATEDDATE
RESETLOGS_CHANGE# NUMBER
RESETLOGS_TIME DATE
PRIOR_RESETLOGS_CHANGE#NUMBER
PRIOR_RESETLOGS_TIMEDATE
LOG_MODEVARCHAR2(12)
CHECKPOINT_CHANGE# NUMBER
ARCHIVE_CHANGE# NUMBER
CONTROLFILE_TYPE VARCHAR2(7)
CONTROLFILE_CREATEDDATE
CONTROLFILE_SEQUENCE#NUMBER
CONTROLFILE_CHANGE#NUMBER
CONTROLFILE_TIME DATE
OPEN_RESETLOGS VARCHAR2(11)
VERSION_TIMEDATE
OPEN_MODEVARCHAR2(10)
PROTECTION_MODE VARCHAR2(20)
PROTECTION_LEVEL VARCHAR2(20)
REMOTE_ARCHIVE VARCHAR2(8)
ACTIVATION#NUMBER
SWITCHOVER#NUMBER
DATABASE_ROLE VARCHAR2(16)
ARCHIVELOG_CHANGE# NUMBER
ARCHIVELOG_COMPRESSIONVARCHAR2(8)
SWITCHOVER_STATUS VARCHAR2(20)
DATAGUARD_BROKER VARCHAR2(8)
GUARD_STATUSVARCHAR2(7)
SUPPLEMENTAL_LOG_DATA_MINVARCHAR2(8)
SUPPLEMENTAL_LOG_DATA_PKVARCHAR2(3)
SUPPLEMENTAL_LOG_DATA_UIVARCHAR2(3)
FORCE_LOGGING VARCHAR2(3)
PLATFORM_IDNUMBER
PLATFORM_NAME VARCHAR2(101)
RECOVERY_TARGET_INCARNATION# NUMBER
LAST_OPEN_INCARNATION#NUMBER
CURRENT_SCNNUMBER
FLASHBACK_ONVARCHAR2(18)
SUPPLEMENTAL_LOG_DATA_FKVARCHAR2(3)
SUPPLEMENTAL_LOG_DATA_ALLVARCHAR2(3)
DB_UNIQUE_NAME VARCHAR2(30)
STANDBY_BECAME_PRIMARY_SCNNUMBER
FS_FAILOVER_STATUS VARCHAR2(21)
FS_FAILOVER_CURRENT_TARGETVARCHAR2(30)
FS_FAILOVER_THRESHOLDNUMBER
FS_FAILOVER_OBSERVER_PRESENT VARCHAR2(7)
FS_FAILOVER_OBSERVER_HOSTVARCHAR2(512)
2、字段說明
DBID:數字形式的DB標識,會記錄在每個數據文件頭,可以根據這個來確定數據文件是屬于哪一個數據庫的
NAME:數據庫名稱(就是通俗的數據庫名)
DB_UNIQUE_NAME:?
RESETLOGS_CHNAGE#:上一次resetlogs時的scn
RESETLOGS_TIME:上一次resetlogs的時間
PRIOR_RESETLOGS_CHANGE#:更早的(最早的?)restlogs時的scn
PRIOR_RESETLOGS_TIME:更早的(最早的?)restlogs時的scn
LOG_MODE:是否是歸檔模式,有三種可能(noarhivelog|archivelog|manual)
CHECKPOINT_CHANGE#:上一次checkpoint的scn,這個值是從控制文件中來的。
ARCHIVE_CHANGE#:表示在這個scn之前的(比這個scn?。﹔edolog都將會自動強制歸檔。
CONTROLFILE_TYPE:standby表示這個數據庫在standby模式;clone表示這個數據庫是個clone的數據庫;backup|created表示這個數據庫正在從使用備份的控制文件恢復中;current表示數據庫是正常模式
CONTROLFILE_CREATED:控制文件創(chuàng)建的時間
CONTROLFILE_SEQUENCE#:控制文件的一個遞增的序列號,用途不明
CONTROLFILE_CHANGE#:控制文件中記錄的scn
CONTROLFILE_TIME:上一次控制文件更新的時間
OPEN_RESETLOGS:指示下一次打開數據庫是是否需要使用resetlogs來打開,可能為(not allowed|allowed|required)
VERSION_TIME:版本時間(意義不明,用途不明)
OPEN_MODE:指示數據庫以什么方式打開(read only|read write|mount)
PROTECTION_MODE:數據庫的保護模式(似乎在dataguard的情況下有用)
PROTECTION_LEVEL:保護等級
REMOTE_ARCHIVE:是否允許遠程歸檔,就是remote_archive_enable初始化參數的值
ACTIVATION#:?
SWTICHOVER#:?
DATABASE_ROLE:指示數據庫是logical standby|physical standby|primary
ARCHIVELOG_CHNAGE#:上一次歸檔動作結束時的scn,也就是最新的歸檔日志的所記錄的最后一個SCN(根據文檔也就是v$archived_log里更大的next_change#),要注意于archive_change#的區(qū)別
ARCHIVELOG_COMPRESSION:歸檔的壓縮狀況
SWITCHOVER_STATUS:switch over 的狀態(tài)
DATAGUARD_BROKER:Indicates whether the Data Guard configuration is being managed by the broker (ENABLED) or not (DISABLED)
GUARD_STATUS:防止數據庫修改的狀態(tài)(可能為all或者none或者standby)
SUPPLEMENTAL_LOG_DATA_MIN:
SUPPLEMENTAL_LOG_DATA_PK:如果為YES則表示當有主鍵的表更新行時,會將組成主鍵的所有列也記入redo log
SUPPLEMENTAL_LOG_DATA_UI:如果為YES則表示當有unqiue鍵的表更新行時,會將組成unique鍵的所有列也記入redo log
SUPPLEMENTAL_LOG_DATA_FK:同上(記錄foreign key)
SUPPLEMENTAL_LOG_DATA_ALL:同上(記錄所有fix_width maximun size column)
FORCE_LOGGING:指示數據庫是否在force logging模式
PLATFORM_ID:操作系統平臺ID
PLATFORM_NAME:操作系統平臺名稱
RECOVERY_TARGET_INCARNATION#:恢復時從哪一個場景號進行恢復(每次使用resetlogs打開數據庫會創(chuàng)建一個新的場景號)
LAST_OPEN_INCARNATION:最后一次打開的場景號
CURRENT_SCN:數據庫當前的SCN
STANDBY_BECAME_PRIMARY_SCN:SCN at which a physical standby database became a primary database.
FLASHBACK_ON:是否打開了flashback 功能
FS_FAILOVER_STATUS:
FS_FAILOVER_CURRENT_TARGET:
FS_FAILOVER_THRESHOLD:
FS_FAILOVER_OBSERVER_PRESENT:
FS_FAILOVER_OBSERVER_HOST:
3、可以查詢的東西
a、是否是歸檔模式
b、flashback功能是否打開
c、當前系統的scn
d、當前數據庫的DBID、NAME、Unique Name
e、checkpoint的相關信息
f、歸檔日志的相關信息
g、controlfile的相關信息:創(chuàng)建日期、controlfile里記錄的scn,
h、數據庫是什么時候創(chuàng)建的
i、數據庫所在操作系統平臺信息
4、易混淆的列
name和db_unique_name
archive_change#和archivelog_change#
是一個動碼粗態(tài)性能視圖,主要用來查看數據庫當遲派鎮(zhèn)前的一些信息,具體可以看Oracle Document Library 的Oracle Database Reference 10g Release 2 (10.2)書的672頁羨段
關于數據庫force logging的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
創(chuàng)新互聯-老牌IDC、云計算及IT信息化服務領域的服務供應商,業(yè)務涵蓋IDC(互聯網數據中心)服務、云計算服務、IT信息化、AI算力租賃平臺(智算云),軟件開發(fā),網站建設,咨詢熱線:028-86922220

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流