達夢資料庫中的各個日誌檔案

2021-10-05 20:34:20 字數 2618 閱讀 8241

重做日誌(即redo日誌)指在dm資料庫中新增、刪除、修改物件,或者改變資料,dm都會按照特定的格式,將這些操作執行的結果寫入到當前的重做日誌檔案中。重做日誌檔案以log為副檔名。每個dm資料庫例項必須至少有2個重做日誌檔案,預設兩個日誌檔案為dameng01.log、dameng02.log,這兩個檔案迴圈使用。

重做日誌檔案因為是資料庫正在使用的日誌檔案,因此被稱為聯機日誌檔案。

重做日誌檔案主要用於資料庫的備份與恢復。理想情況下,資料庫系統不會用到重做日誌檔案中的資訊。然而現實世界總是充滿了各種意外,比如電源故障、系統故障、介質故障,或者資料庫例項程序被強制終止等,資料庫緩衝區中的資料頁會來不及寫入資料檔案。這樣,在重啟dm例項時,通過重做日誌檔案中的資訊,就可以將資料庫的狀態恢復到發生意外時的狀態。

重做日誌檔案對於資料庫是至關重要的。它們用於儲存資料庫的事務日誌,以便系統在出現系統故障和介質故障時能夠進行故障恢復。在dm資料庫執行過程中,任何修改資料庫的操作都會產生重做日誌,例如,當一條元組插入到乙個表中的時候,插入的結果寫入了重做日誌,當刪除一條元組時,刪除該元組的事實也被寫了進去,這樣,當系統出現故障時,通過分析日誌可以知道在故障發生前系統做了哪些動作,並可以重做這些動作使系統恢復到故障之前的狀態。

日誌檔案分為聯機日誌檔案和歸檔日誌檔案。dm資料庫可以在歸檔模式和非歸檔模式下執行。非歸檔模式下,資料庫會只將重做日誌寫入聯機日誌檔案中進行儲存;歸檔模式下,資料庫會同時將重做日誌寫入聯機日誌檔案和歸檔日誌檔案中分別進行儲存。

聯機日誌檔案指的是系統當前正在使用的日誌檔案。建立資料庫時,聯機日誌檔案通常被擴充套件至一定長度,其內容則被初始化為空,當系統執行時,該檔案逐漸被產生的日誌所填充。對日誌檔案的寫入是順序連續的。然而系統磁碟空間總是有限,系統必須能夠迴圈利用日誌檔案的空間,為了做到這一點,當所有日誌檔案空間被佔滿時,系統需要清空一部分日誌以便重用日誌檔案的空間,為了保證被清空的日誌所「保護」的資料在磁碟上是安全的,這裡需要引入乙個關鍵的資料庫概念——檢查點。當產生檢查點時,系統將系統緩衝區中的日誌和髒資料頁都寫入磁碟,以保證當前日誌所「保護」的資料頁都已安全寫入磁碟,這樣日誌檔案即可被安全重用。

歸檔日誌檔案,就是在歸檔模式下,重做日誌被連續寫入到歸檔日誌後,所生成了歸檔日誌檔案。歸檔日誌檔案以歸檔時間命名,副檔名也是log。但只有在歸檔模式下執行時,dm資料庫才會將重做日誌寫入到歸檔日誌檔案中。採用歸檔模式會對系統的效能產生影響,然而系統在歸檔模式下執行會更安全,當出現故障時其丟失資料的可能性更小,這是因為一旦出現介質故障,如磁碟損壞時,利用歸檔日誌,系統可被恢復至故障發生的前一刻,也可以還原到指定的時間點,而如果沒有歸檔日誌檔案,則只能利用備份進行恢復。歸檔日誌檔案還是資料守護功能的核心,資料守護中的備庫就是通過重做歸檔日誌中的redo日誌來完成與主庫的資料同步的。

如果在dm資料庫上配置了複製功能,複製源就會產生邏輯日誌檔案。邏輯日誌檔案是乙個流式的檔案,它有自己的格式,且不在第一章所述的頁,簇和段的管理之下。

邏輯日誌檔案內部儲存按照複製記錄的格式,一條記錄緊接著一條記錄,儲存著複製源端的各種邏輯操作。用於傳送給複製目的端。

物理邏輯日誌,是按照特定的格式儲存的伺服器的邏輯操作,專門用於dbms_logmnr包挖掘獲取資料庫系統的歷史執行語句。當開啟記錄物理邏輯日誌的功能時,這部分日誌內容會被儲存在重做日誌檔案中。

要開啟物理邏輯日誌的功能,需要滿足下面兩個條件:

其次,通過設定引數rlog_ignore_table_set=1或者建表(或修改表)時指定add logic log開啟。如果需要記錄所有表的物理邏輯日誌,設定ini引數rlog_ignore_table_set為1即可;如果只需要記錄某些表的物理邏輯日誌,設定ini引數rlog_ignore_table_set為0,並在建表或者修改表的語法中使用add logic log。

使用者在dm.ini中配置svr_log和svr_log_switch_count引數後就會開啟跟蹤日誌。跟蹤日誌檔案是乙個純文字檔案,以「dm_commit_日期_時間」命名,預設生成在dm安裝目錄的log子目錄下面,管理員可通過ini引數svr_log_file_path設定其生成路徑。

跟蹤日誌內容包含系統各會話執行的sql語句、引數資訊、錯誤資訊等。跟蹤日誌主要用於分析錯誤和分析效能問題,基於跟蹤日誌可以對系統執行狀態有乙個分析,比如,可以挑出系統現在執行速度較慢的sql語句,進而對其進行優化。

系統中sql日誌的快取是分塊迴圈使用,管理員可根據系統執行的語句情況及壓力情況設定恰當的日誌快取塊大小及預留的緩衝塊個數。當預留塊不足以記錄系統產生的任務時,系統會分配新的用後即棄的快取塊,但是總的空間大小由ini引數svr_log_buf_total_size控制,管理員可根據實際情況進行設定。

開啟跟蹤日誌會對系統的效能會有較大影響,一般用於查錯和調優的時候才會開啟,預設情況下系統是關閉跟蹤日誌的。若需要跟蹤日誌但對日誌的實時性沒有嚴格的要求,又希望系統有較高的效率,可以設定引數sql_trace_mask和svr_log_min_exec_time 只記錄關注的相關記錄,減少日誌總量;設定引數svr_log_async_flush開啟sql日誌非同步刷盤提高系統效能。

dm資料庫系統在執行過程中,會在log子目錄下產生乙個「dm_例項名_日期」命名的事件日誌檔案。事件日誌檔案對dm資料庫執行時的關鍵事件進行記錄,如系統啟動、關閉、記憶體申請失敗、io錯誤等一些致命錯誤。事件日誌檔案主要用於系統出現嚴重錯誤時進行檢視並定位問題。事件日誌檔案隨著dm資料庫服務的執行一直存在。

事件日誌檔案列印的是中間步驟的資訊,所以出現部分缺失屬於正常現象。

達夢資料庫和mysql索引引擎 達夢資料庫 索引

1.索引的種類和功能 聚集索引 每乙個普通表有且只有乙個聚集索引 唯一索引 索引資料根據索引鍵唯一 函式索引 包含函式 表示式的預先計算的值 位圖索引 對低基數的列建立位圖索引 位圖連線索引 針對兩個或者多個表連線的點陣圖索引,主要用於資料倉儲中 全文索引 在表的文字列上而建的索引。2.何時使用索引...

達夢資料庫操作

1.安裝 dminstall.bin i接下來是一些設定,比如 語言 key檔案的位置 時區 安裝型別 安裝目錄 略過 2.初始化 進入你剛才設定的安裝目錄的bin目錄下執行 dminit這是我自己的設定 input system dir home dmdba dmdata input db nam...

達夢資料庫使用

1 修改最大連線數 先檢視當前的最大連線數 select sf get para value 2,max sessions 修改最大連線數 alter system set max sessions 1000 spfile 重啟資料庫 su dmdba cd dmdbms dmservicedmse...