達夢資料庫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之刪除歸檔日誌檔案資料庫
- 【達夢】Docker安裝達夢資料庫 dm8Docker資料庫
- 達夢8資料庫REDO日誌日常管理方法資料庫
- 丟失當前current重做日誌檔案下恢復資料庫資料庫
- Oracle資料庫重做日誌及歸檔日誌的工作原理說明Oracle資料庫
- 重做日誌管理
- data guard中增加與刪除主備資料庫中的聯機重做日誌與備重做日誌檔案資料庫
- 國產化之銀河麒麟安裝達夢資料庫DM8資料庫
- 達夢資料庫DM8之資料快速載入工具dmfldr使用方法資料庫
- 建立資料庫檔案-日誌檔案-次要資料庫檔案資料庫
- 聯機重做日誌、歸檔日誌、備用重做日誌
- Oracle重做日誌檔案基礎Oracle
- oracle 聯機重做日誌檔案Oracle
- 重做日誌檔案中的SCN
- 當丟失控制檔案但重做日誌檔案還在時如何恢復資料庫資料庫
- redo重做日誌管理
- 達夢資料庫DM8中WITH子句的簡單用法資料庫
- 達夢資料庫資料檔案遷移過程資料庫
- 達夢資料庫[-718]收集到的歸檔日誌不連續資料庫
- 國產化之 .NET Core 操作達夢資料庫DM8的兩種方式資料庫
- 2 Day DBA-管理Oracle例項-管理聯機重做日誌-切換日誌檔案Oracle
- 2 Day DBA-管理Oracle例項-管理資料庫儲存結構-關於聯機重做日誌檔案Oracle資料庫
- 重做日誌檔案損壞測試
- 線上修改重做日誌檔案的大小
- 修改Oracle重做日誌檔案的大小Oracle
- 重做日誌檔案的相關操作
- Backup And Recovery User's Guide-備份資料庫-備份歸檔重做日誌檔案GUIIDE資料庫
- 2 Day DBA-管理Oracle例項-管理資料庫儲存結構-練習:檢視歸檔重做日誌檔案資訊Oracle資料庫
- 達夢資料庫DM8共享叢集測試記錄資料庫
- Oracle11g redo log 建立、新增、刪除(重做日誌組,重做日誌檔案)Oracle
- 16、重做日誌檔案的狀態及重做日誌組的狀態說明
- 達夢資料庫:誤刪除 undo/redo 日誌怎麼辦資料庫
- 備份之歸檔重做日誌備份
- 如何更改線上重做日誌檔案的大小
- 聯機重做日誌檔案的恢復
- 2 Day DBA-管理Oracle例項-管理聯機重做日誌-練習:切換日誌檔案Oracle
- 分析Oracle資料庫日誌檔案(1)Oracle資料庫
- 分析Oracle資料庫日誌檔案(2)Oracle資料庫