1 歸檔介紹
歸檔作為實(shí)現(xiàn)數(shù)據(jù)守護(hù)系統(tǒng)的關(guān)鍵技術(shù)手段,在DM
數(shù)據(jù)庫(kù)中,依據(jù)其功能與實(shí)現(xiàn)方式的差異,可將歸檔類型細(xì)分為六類,分別是本地歸檔、遠(yuǎn)程歸檔、實(shí)時(shí)歸檔、即時(shí)歸檔、異步歸檔以及同步歸檔。
其中,本地歸檔有著獨(dú)特的機(jī)制,其日志內(nèi)容以及寫入的時(shí)機(jī)與數(shù)據(jù)庫(kù)的模式緊密相關(guān)。具體而言,在主庫(kù)中,Redo
日志會(huì)先寫入聯(lián)機(jī)日志文件,隨后才進(jìn)行本地歸檔操作;而在備庫(kù)這邊,當(dāng)接收到主庫(kù)產(chǎn)生的Redo
日志后,會(huì)立即執(zhí)行本地歸檔,并且在歸檔的同時(shí)啟動(dòng)Redo
日志的重演過(guò)程,以此來(lái)確保數(shù)據(jù)的一致性與完整性。
2 案例演示
下面將通過(guò)具體的案例來(lái)演示如何在達(dá)夢(mèng)數(shù)據(jù)庫(kù)中使用SQL語(yǔ)句完成歸檔配置任務(wù)。
2.1.開(kāi)啟本地歸檔
數(shù)據(jù)庫(kù)安裝完成后,開(kāi)啟歸檔模式
創(chuàng)建歸檔日志存放路徑
[dmdba@dm91 ~]$ mkdir /dm/dmarch/DEM
--查詢數(shù)據(jù)庫(kù)狀態(tài),默認(rèn)為不開(kāi)啟
SQL> select name,ARCH_MODE from v$database;
行號(hào) NAME ARCH_MODE
---------- ---- ---------
1 DEM N
已用時(shí)間: 2.841(毫秒). 執(zhí)行號(hào):13977304.
SQL>
- 開(kāi)啟歸檔,語(yǔ)句如下:
ALTER DATABASE MOUNT;
ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL,DEST=/dm/dmarch/DEM,FILE_SIZE=1024,SPACE_LIMIT=20480';
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN
- 演示過(guò)程
--將數(shù)據(jù)庫(kù)狀態(tài)改為mount
SQL> ALTER DATABASE MOUNT;
操作已執(zhí)行
已用時(shí)間: 19.426(毫秒). 執(zhí)行號(hào):0.
SQL> ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL,DEST=/dm/dmarch/DEM,FILE_SIZE=1024,SPACE_LIMIT=20480';
ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL,DEST=/dm/dmarch/DEM,FILE_SIZE=1024,SPACE_LIMIT=20480';
第1 行附近出現(xiàn)錯(cuò)誤[-810]:系統(tǒng)未配置歸檔.
已用時(shí)間: 2.113(毫秒). 執(zhí)行號(hào):0.
--先開(kāi)啟歸檔模式
SQL> ALTER DATABASE ARCHIVELOG;
操作已執(zhí)行
已用時(shí)間: 43.631(毫秒). 執(zhí)行號(hào):0.
--配置歸檔路徑、單個(gè)文件大小及空間上限
SQL> ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL,DEST=/dm/dmarch/DEM,FILE_SIZE=1024,SPACE_LIMIT=20480';
操作已執(zhí)行
已用時(shí)間: 8.680(毫秒). 執(zhí)行號(hào):0.
--數(shù)據(jù)庫(kù)狀態(tài)改為open
SQL> ALTER DATABASE OPEN;
操作已執(zhí)行
已用時(shí)間: 52.471(毫秒). 執(zhí)行號(hào):0.
--ARCH_MODE為Y,歸檔開(kāi)啟完成
SQL> select name,ARCH_MODE from v$database;
行號(hào) NAME ARCH_MODE
---------- ---- ---------
1 DEM Y
已用時(shí)間: 2.458(毫秒). 執(zhí)行號(hào):13977305.
SQL>
注意:歸檔開(kāi)啟的方式與2023年以前的版本存在細(xì)微區(qū)別,按老版本順序調(diào)整會(huì)提示第1 行附近出現(xiàn)錯(cuò)誤[-810]:系統(tǒng)未配置歸檔。新版調(diào)整順序如下
--老版本
ALTER DATABASE MOUNT;
ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL,DEST=/dm/dmarch/DEM,FILE_SIZE=1024,SPACE_LIMIT=20480';
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
--新版本
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL,DEST=/dm/dmarch/DEM,FILE_SIZE=1024,SPACE_LIMIT=20480';
ALTER DATABASE OPEN;
2.2.修改本地歸檔空間使用上限
- 使用以下SQL調(diào)整
ALTER DATABASE MOUNT;
ALTER DATABASE MODIFY ARCHIVELOG 'TYPE=LOCAL,DEST=/dm/dmarch/DEM,FILE_SIZE=1024,SPACE_LIMIT=20481';
ALTER DATABASE OPEN;
- 調(diào)整歸檔上限
SQL> ALTER DATABASE MOUNT;
操作已執(zhí)行
已用時(shí)間: 7.220(毫秒). 執(zhí)行號(hào):0.
SQL> ALTER DATABASE MODIFY ARCHIVELOG 'TYPE=LOCAL,DEST=/dm/dmarch/DEM,FILE_SIZE=1024,SPACE_LIMIT=20481';
操作已執(zhí)行
已用時(shí)間: 2.341(毫秒). 執(zhí)行號(hào):0.
SQL> ALTER DATABASE OPEN;
操作已執(zhí)行
已用時(shí)間: 19.556(毫秒). 執(zhí)行號(hào):0.
SQL> select ARCH_NAME,ARCH_TYPE,ARCH_DEST,ARCH_FILE_SIZE,ARCH_SPACE_LIMIT,ARCH_IS_VALID from V$DM_ARCH_INI;
行號(hào) ARCH_NAME ARCH_TYPE ARCH_DEST ARCH_FILE_SIZE ARCH_SPACE_LIMIT ARCH_IS_VALID
---------- -------------- --------- -------------- -------------- ---------------- -------------
1 ARCHIVE_LOCAL1 LOCAL /dm/dmarch/DEM 1024 20481 Y
已用時(shí)間: 2.669(毫秒). 執(zhí)行號(hào):1804.
SQL>
2.3.關(guān)閉歸檔
使用以下SQL關(guān)閉歸檔模式
--添加新路徑
ALTER DATABASE MOUNT;
ALTER DATABASE NOARCHIVELOG;
ALTER DATABASE OPEN;
- 演示如下:
SQL> select name,ARCH_MODE from v$database;
行號(hào) NAME ARCH_MODE
---------- ---- ---------
1 DEM Y
已用時(shí)間: 2.485(毫秒). 執(zhí)行號(hào):1805.
SQL> ALTER DATABASE MOUNT;
操作已執(zhí)行
已用時(shí)間: 5.421(毫秒). 執(zhí)行號(hào):0.
SQL> ALTER DATABASE NOARCHIVELOG;
操作已執(zhí)行
已用時(shí)間: 13.615(毫秒). 執(zhí)行號(hào):0.
SQL> ALTER DATABASE OPEN;
操作已執(zhí)行
已用時(shí)間: 13.216(毫秒). 執(zhí)行號(hào):0.
SQL> select name,ARCH_MODE from v$database;
行號(hào) NAME ARCH_MODE
---------- ---- ---------
1 DEM N
已用時(shí)間: 2.766(毫秒). 執(zhí)行號(hào):1806.
SQL>
2.4.歸檔相關(guān)試圖
可以通過(guò)V$DM_INI
和V$DM_ARCH_INI
來(lái)查看歸檔狀態(tài)和歸檔配置,詳情查閱手冊(cè)
SELECT * FROM V$DM_ARCH_INI;
SELECT * FROM V$DM_INI WHERE PARA_NAME = 'ARCH_INI';
SELECT * FROM V$ARCH_STATUS;