達夢資料庫DM8之REDOLOG重做日誌檔案管理
達夢資料庫DM8之重做日誌檔案
重做日誌(即 REDO 日誌)指在 DM 資料庫中新增、刪除、修改物件,或者改變資料,DM 都會按照特定的格式,
將這些操作執行的結果寫入到當前的重做日誌檔案中。重做日誌檔案以 log 為副檔名。每個 DM 資料庫例項必須至少
有 2 個重做日誌檔案,預設兩個日誌檔案為 DAMENG01.log、DAMENG02.log,這兩個檔案迴圈使用。
重做日誌檔案因為是資料庫正在使用的日誌檔案,因此被稱為聯機日誌檔案。
重做日誌檔案主要用於資料庫的備份與恢復。理想情況下,資料庫系統不會用到重做日誌檔案中的資訊。然而現實
世界總是充滿了各種意外,比如電源故障、系統故障、介質故障,或者資料庫例項程式被強制終止等,資料庫緩衝區
中的資料頁會來不及寫入資料檔案。這樣,在重啟 DM 例項時,通過重做日誌檔案中的資訊,就可以將資料庫的狀態
恢復到發生意外時的狀態。
重做日誌檔案對於資料庫是至關重要的。它們用於儲存資料庫的事務日誌,以便系統在出現系統故障和介質故障時
能夠進行故障恢復。在 DM 資料庫執行過程中,任何修改資料庫的操作都會產生重做日誌,例如,當一條元組插入到
一個表中的時候,插入的結果寫入了重做日誌,當刪除一條元組時,刪除該元組的事實也被寫了進去,這樣,當系統出
現故障時,通過分析日誌可以知道在故障發生前系統做了哪些動作,並可以重做這些動作使系統恢復到故障之前的狀態。
1.管理重做日誌檔案
1.1 新增重做日誌檔案
在伺服器開啟狀態下,可以新增新的重做日誌檔案。新增的資料檔案大小最小為 4096*頁大小,如頁大小為 8K,則可
新增的檔案最小值為 4096*8k=32M。如新增重做大小為 128M的重做日誌檔案 DAMENG03.log。
ALTER DATABASE ADD LOGFILE 'd:\DAMENG03.log' size 128;
1.2 擴充套件重做日誌檔案
在伺服器開啟狀態下,可以擴充套件已有的重做日誌檔案的大小。如擴充套件重做日誌檔案DAMENG03.log 到 256M。
ALTER DATABASE RESIZE LOGFILE 'd:\DAMENG03.log' to 256;
--操作例項
1. 檢查資料庫REDO日誌資訊
達夢資料庫中與REDO日誌相關的檢視主要有:
1.1 V$RLOG 檢視:用來查詢日誌的總體資訊。包括當前日誌的檢查點LSN、檔案LSN等。
[dmdba@dmdb01 ~]$ disql SYSDBA/SYSDBA@192.168.186.128:5240
伺服器[192.168.186.128:5240]:處於普通開啟狀態
登入使用時間 : 2.756(ms)
disql V8
SQL> select * from v$rlog;
行號 CKPT_LSN FILE_LSN FLUSH_LSN CUR_LSN NEXT_SEQ N_MAGIC
---------- -------------------- -------------------- -------------------- -------------------- -------------------- -----------
DB_MAGIC FLUSH_PAGES FLUSHING_PAGES CUR_FILE CUR_OFFSET CKPT_FILE CKPT_OFFSET
-------------------- ----------- -------------- ----------- -------------------- ----------- --------------------
FREE_SPACE TOTAL_SPACE SUSPEND_TIME UPD_CTL_LSN N_RESERVE_WAIT TOTAL_FLUSH_PAGES
-------------------- -------------------- ------------ -------------------- -------------- --------------------
TOTAL_FLUSH_TIMES TOTAL_ECPR_FLUSH_PAGES GLOBAL_NEXT_SEQ N_PRIMAY_EP PRIMARY_DB_MAGIC CKPT_N_PRIMAY_EP
-------------------- ---------------------- -------------------- ----------- -------------------- ----------------
CKPT_PRIMARY_DB_MAGIC MIN_EXEC_VER MIN_DCT_VER
--------------------- ------------ -----------
1 48565 50910 50910 50910 5149 7
1488733682 0 0 0 11720704 0 11452928
536594944 536862720 NULL 0 0 523
3 0 5149 0 0 0
0 V8.1.1.1 4
已用時間: 13.014(毫秒). 執行號:500.
SQL>
1.2 V$RLOGFILE 檢視:用來查詢日誌檔案的具體資訊。包括當前資料庫的日誌檔案路徑、大小、建立時間等資訊。
SQL> select * from v$rlogfile;
行號 GROUP_ID FILE_ID PATH CLIENT_PATH CREATE_TIME RLOG_SIZE
---------- ----------- ----------- -------------------------------- ----------- -------------------------- --------------------
MIN_EXEC_VER MIN_DCT_VER
------------ -----------
1 2 0 /dm8/dmdbms/data/dm01/dm0101.log dm0101.log 2022-04-24 21:14:40.000000 268435456
V8.1.1.1 4
2 2 1 /dm8/dmdbms/data/dm01/dm0102.log dm0102.log 2022-04-24 21:14:40.000000 268435456
V8.1.1.1 4
已用時間: 1.118(毫秒). 執行號:501.
SQL>
2. 新增REDO日誌檔案
達夢資料庫的REDO日誌檔案是有最小大小限制的,最小大小為4096*頁大小,當前資料庫的頁大小可以通過如下語句檢視:
SQL> select para_name,para_value from v$dm_ini where para_name = 'GLOBAL_PAGE_SIZE';
行號 PARA_NAME PARA_VALUE
---------- ---------------- ----------
1 GLOBAL_PAGE_SIZE 32768
已用時間: 8.783(毫秒). 執行號:503.
SQL>
所以當前資料庫能夠新增的REDO日誌檔案最小大小為4096*32768=128MB,我們可以通過alert database add logfile的
方式新增REDO日誌檔案,如下所示:
SQL> select file_id,path,rlog_size/1024/1024 as MB from v$rlogfile;
行號 FILE_ID PATH MB
---------- ----------- -------------------------------- --------------------
1 0 /dm8/dmdbms/data/dm01/dm0101.log 256
2 1 /dm8/dmdbms/data/dm01/dm0102.log 256
已用時間: 0.786(毫秒). 執行號:505.
SQL>
1)測試新增小於128M的REDO日誌檔案
SQL> alter database add logfile '/dm8/dmdbms/data/dm01/dm0103.log' size 100;
alter database add logfile '/dm8/dmdbms/data/dm01/dm0103.log' size 100;
第1 行附近出現錯誤[-2410]:資料檔案[/dm8/dmdbms/data/dm01/dm0103.log]大小無效.
已用時間: 0.319(毫秒). 執行號:0.
2)測試新增大於等於128M的REDO日誌檔案
SQL> alter database add logfile '/dm8/dmdbms/data/dm01/dm0103.log' size 128;
操作已執行
已用時間: 13.997(毫秒). 執行號:506.
SQL>
SQL> select file_id,path,rlog_size/1024/1024 as MB from v$rlogfile;
行號 FILE_ID PATH MB
---------- ----------- -------------------------------- --------------------
1 0 /dm8/dmdbms/data/dm01/dm0101.log 256
2 1 /dm8/dmdbms/data/dm01/dm0102.log 256
3 2 /dm8/dmdbms/data/dm01/dm0103.log 128
已用時間: 0.241(毫秒). 執行號:507.
SQL>
注意:以上過程我們可以看到,當日志檔案大小小於128MB時,會提示“第1 行附近出現錯誤[-2410]:資料文
件[/dm8/dmdbms/data/dm01/dm0103.log]大小無效.”。
3. 修改現有REDO日誌檔案大小
達夢8資料庫目前只能對日誌檔案進行向上(擴大)RESIZE操作,不能進行向下(縮容)RESIZE操作,可以通過
alter database resize to語句實現,我們現在將上面新增的日誌檔案由128MB擴大到150MB,再嘗試縮容到128MB,
過程如下:
SQL> select file_id,path,rlog_size/1024/1024 as MB from v$rlogfile;
行號 FILE_ID PATH MB
---------- ----------- -------------------------------- --------------------
1 0 /dm8/dmdbms/data/dm01/dm0101.log 256
2 1 /dm8/dmdbms/data/dm01/dm0102.log 256
3 2 /dm8/dmdbms/data/dm01/dm0103.log 128
已用時間: 0.241(毫秒). 執行號:507.
SQL>
SQL> alter database resize logfile '/dm8/dmdbms/data/dm01/dm0103.log' to 150;
操作已執行
已用時間: 11.492(毫秒). 執行號:508.
SQL> alter database resize logfile '/dm8/dmdbms/data/dm01/dm0103.log' to 128;
alter database resize logfile '/dm8/dmdbms/data/dm01/dm0103.log' to 128;
[-2410]:資料檔案[/dm8/dmdbms/data/dm01/dm0103.log]大小無效.
已用時間: 2.062(毫秒). 執行號:0.
SQL>
SQL> select file_id,path,rlog_size/1024/1024 as MB from v$rlogfile;
行號 FILE_ID PATH MB
---------- ----------- -------------------------------- --------------------
1 0 /dm8/dmdbms/data/dm01/dm0101.log 256
2 1 /dm8/dmdbms/data/dm01/dm0102.log 256
3 2 /dm8/dmdbms/data/dm01/dm0103.log 150
已用時間: 0.269(毫秒). 執行號:510.
SQL>
注意:可以看到,FILE_ID為2的日誌檔案可以正常從128MB擴容到150MB,但是向下(縮容)從150MB縮容到128MB
報錯:[-2410]:資料檔案[/dm8/dmdbms/data/dm01/dm0103.log]大小無效。
4.修改REDO日誌檔名
達夢資料庫REDO日誌檔案重新命名必須在MOUNT狀態下進行,通過alter database rename to語句實現,現在我們將
檔案file_id為2的日誌檔案由 dm0103.log改為dm0103_1.log,過程如下:
SQL> select name,instance_name,status$ from v$instance;
行號 NAME INSTANCE_NAME STATUS$
---------- ---- ------------- -------
1 DM01 DM01 OPEN
已用時間: 0.822(毫秒). 執行號:512.
SQL>
SQL> alter database rename logfile '/dm8/dmdbms/data/dm01/dm0103.log' to '/dm8/dmdbms/data/dm01/dm0103_1.log';
alter database rename logfile '/dm8/dmdbms/data/dm01/dm0103.log' to '/dm8/dmdbms/data/dm01/dm0103_1.log';
第1 行附近出現錯誤[-530]:只允許在MOUNT狀態NORMAL模式下執行.
已用時間: 0.207(毫秒). 執行號:0.
SQL>
SQL> alter database mount;
操作已執行
已用時間: 2.263(毫秒). 執行號:0.
SQL> select name,instance_name,status$ from v$instance;
行號 NAME INSTANCE_NAME STATUS$
---------- ---- ------------- -------
1 DM01 DM01 MOUNT
已用時間: 0.678(毫秒). 執行號:513.
SQL>
SQL> alter database rename logfile '/dm8/dmdbms/data/dm01/dm0103.log' to '/dm8/dmdbms/data/dm01/dm0103_1.log';
操作已執行
已用時間: 994.826(毫秒). 執行號:514.
SQL> select file_id,path,rlog_size/1024/1024 as MB from v$rlogfile;
行號 FILE_ID PATH MB
---------- ----------- ---------------------------------- --------------------
1 0 /dm8/dmdbms/data/dm01/dm0101.log 256
2 1 /dm8/dmdbms/data/dm01/dm0102.log 256
3 2 /dm8/dmdbms/data/dm01/dm0103_1.log 150
已用時間: 0.786(毫秒). 執行號:515.
SQL> alter database open;
操作已執行
已用時間: 11.614(毫秒). 執行號:0.
SQL> select file_id,path,rlog_size/1024/1024 as MB from v$rlogfile;
行號 FILE_ID PATH MB
---------- ----------- ---------------------------------- --------------------
1 0 /dm8/dmdbms/data/dm01/dm0101.log 256
2 1 /dm8/dmdbms/data/dm01/dm0102.log 256
3 2 /dm8/dmdbms/data/dm01/dm0103_1.log 150
已用時間: 0.272(毫秒). 執行號:516.
SQL>
注意:在實際操作過程中,我們可以看到,在OPEN狀態下執行REDO日誌重新命名操作,是不被允許的,
會提示“[-530]:只允許在MOUNT狀態NORMAL模式下執行”錯誤。
5.刪除REDO日誌檔名
通過測試 alter database drop logfile 和 alter database delete logfile刪除重做日誌都報錯,說明達夢資料庫當前不支援刪除重做REDOLOG日誌
SQL> select file_id,path,rlog_size/1024/1024 as MB from v$rlogfile;
行號 FILE_ID PATH MB
---------- ----------- ---------------------------------- --------------------
1 0 /dm8/dmdbms/data/dm01/dm0101.log 256
2 1 /dm8/dmdbms/data/dm01/dm0102.log 256
3 2 /dm8/dmdbms/data/dm01/dm0103_1.log 150
已用時間: 0.272(毫秒). 執行號:516.
SQL>
SQL> alter database drop logfile file_id 2;
alter database drop logfile file_id 2;
*
第 1 行, 第 32 列[drop]附近出現錯誤[-2007]:
語法分析出錯.
已用時間: 0.367(毫秒). 執行號:0.
SQL>
SQL> alter database drop logfile '/dm8/dmdbms/data/dm01/dm0103_1.log';
alter database drop logfile '/dm8/dmdbms/data/dm01/dm0103_1.log';
*
第 1 行, 第 32 列[drop]附近出現錯誤[-2007]:
語法分析出錯.
已用時間: 0.172(毫秒). 執行號:0.
SQL> alter database drop logfile 'dm0103_1.log';
alter database drop logfile 'dm0103_1.log';
alter database drop logfile 'dm0103_1.log';
*
第 1 行, 第 32 列[drop]附近出現錯誤[-2007]:
語法分析出錯.
已用時間: 0.280(毫秒). 執行號:0.
SQL>
SQL>
SQL> alter database delete logfile '/dm8/dmdbms/data/dm01/dm0103_1.log';
alter database delete logfile '/dm8/dmdbms/data/dm01/dm0103_1.log';
alter database delete logfile '/dm8/dmdbms/data/dm01/dm0103_1.log';
*
第 1 行, 第 48 列[logfile]附近出現錯誤[-2007]:
語法分析出錯.
已用時間: 0.354(毫秒). 執行號:0.
SQL> alter database delete logfile file_id 2;
alter database delete logfile file_id 2;
alter database delete logfile file_id 2;
*
第 1 行, 第 48 列[logfile]附近出現錯誤[-2007]:
語法分析出錯.
已用時間: 0.137(毫秒). 執行號:0.
SQL>
達夢資料庫社群地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70017402/viewspace-2892469/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 達夢資料庫DM8之刪除歸檔日誌檔案資料庫
- 達夢8資料庫REDO日誌日常管理方法資料庫
- 【達夢】Docker安裝達夢資料庫 dm8Docker資料庫
- 重做日誌管理
- Oracle11g redo log 建立、新增、刪除(重做日誌組,重做日誌檔案)Oracle
- 達夢資料庫[-718]收集到的歸檔日誌不連續資料庫
- 達夢資料庫DM8之資料快速載入工具dmfldr使用方法資料庫
- 國產化之銀河麒麟安裝達夢資料庫DM8資料庫
- 達夢資料庫資料檔案遷移過程資料庫
- 達夢資料庫DM8中WITH子句的簡單用法資料庫
- 記錄一則clear重做日誌檔案的案例
- 分析Oracle資料庫日誌檔案(三)EPOracle資料庫
- 分析Oracle資料庫日誌檔案(二)DOOracle資料庫
- 分析Oracle資料庫日誌檔案(一)HBOracle資料庫
- 達夢資料庫:誤刪除 undo/redo 日誌怎麼辦資料庫
- 織夢資料庫配置檔案-DedeCMS織夢資料庫檔案在哪裡資料庫
- 國產化之 .NET Core 操作達夢資料庫DM8的兩種方式資料庫
- MySQL重做日誌恢復資料的流程MySql
- 達夢資料庫DM8共享叢集測試記錄資料庫
- MySQL 修改InnoDB重做日誌檔案的數量或大小MySql
- Kylin Desktop V10部署達夢資料庫(DM8)資料庫
- 達夢資料庫DM8主備叢集測試記錄資料庫
- 達夢遷移工具之MySQL資料庫遷移到達夢MySql資料庫
- 達夢資料庫SQL跟蹤日誌詳細介紹及配置方法資料庫SQL
- 織夢CMS(dedecms)的資料庫連線檔案_織夢連線資料庫檔案資料庫
- 【LOG】Oracle資料庫清理日誌、跟蹤檔案利器Oracle資料庫
- MySQL資料庫中常見的日誌檔案彙總!MySql資料庫
- 【MySQL日誌】MySQL日誌檔案初級管理MySql
- 達夢資料庫DM8在LINUX環境下安裝步驟資料庫Linux
- 達夢資料庫圖形化作業管理資料庫
- sybase iq日誌檔案管理
- openGauss資料庫日誌管理指導資料庫
- 資料庫國產化實戰之達夢資料庫資料庫
- 借力中國資料庫技術大會 達夢DM8資料庫新品正式釋出資料庫
- 達夢資料庫使用DBMS_LOGMNR進行日誌挖掘詳細步驟資料庫
- 織夢CMS資料庫配置檔案資料庫
- 織夢php資料庫配置檔案PHP資料庫
- 達夢資料庫日常管理之問題處理筆記1資料庫筆記