数据库运行时产生的Redo日志首先写入内存中的Redo Log Buffer,然后由LGWR进程刷盘到联机日志文件,联机日志文件是循环复用的,当一组日志文件写满后,会切换到下一组。如果处于非归档模式,旧的日志内容会被直接覆盖,导致历史变更无法追溯。
归档日志仅在归档模式(ARCHIVELOG)下有效。归档进程(ARCH)会将已写满的联机日志文件异步复制到归档目录,形成归档日志文件。归档日志是联机日志的永久副本,是否会被覆盖,取决于归档日志的空间上限。
select min(GDZQ) "归档覆盖周期_天"
FROM(select ROUND(datediff(minute,min(create_time),max(close_time))/60.0/24,2) GDZQ
from V$ARCH_FILE
group by DSC_SEQNO);
SELECT PATH, CREATE_TIME
FROM V$ARCH_FILE A
WHERE ARCH_LSN >= (SELECT MAX(BEGIN_LSN) FROM V$BACKUPSET);
SELECT ARCH_MODE FROM V$DATABASE;
SELECT PARA_NAME, PARA_VALUE FROM V$DM_INI WHERE PARA_NAME LIKE '%ARCH%';
SELECT * FROM V$DM_ARCH_INI; -- 归档路径、文件大小、空间限制等
SELECT * FROM V$RLOG;
SELECT * FROM V$RLOGFILE;
SELECT ARCH_SEQ, NEXT_SEQ, ARCH_LSN, STATUS, PATH, CREATE_TIME
FROM V$ARCH_FILE
ORDER BY ARCH_SEQ DESC;
-- 步骤1:切换到MOUNT状态
ALTER DATABASE MOUNT;
-- 步骤2:开启归档模式
ALTER DATABASE ARCHIVELOG;
-- 步骤3:添加本地归档路径(可多次执行添加多路)
ALTER DATABASE ADD ARCHIVELOG 'type=local, dest=/dm/arch1, file_size=128, space_limit=10240';
ALTER DATABASE ADD ARCHIVELOG 'type=local, dest=/dm/arch2, file_size=128, space_limit=10240';
-- 步骤4:打开数据库
ALTER DATABASE OPEN;
-- 验证
SELECT ARCH_MODE FROM V$DATABASE;
SELECT * FROM V$DM_ARCH_INI;
段落引用8.1.2.57之后版本支持归档文件大小、上限联机修改
--查看归档配置情况
SELECT ARCH_NAME, ARCH_TYPE, ARCH_DEST FROM V$DM_ARCH_INI;
-- 修改现有归档路径的参数(如增大空间限制)
ALTER DATABASE MODIFY ARCHIVELOG 'type=local, dest=/dm/arch, file_size=256,SPACE_LIMIT=2048';
-- 1. 切换到 MOUNT 状态
ALTER DATABASE MOUNT;
-- 2. 关闭归档模式(必须)
ALTER DATABASE NOARCHIVELOG;
-- 3. 删除归档路径(非本地归档支持)
ALTER DATABASE DELETE ARCHIVELOG 'dest=DW1_01';
-- 4. 如果还要重新开启归档(建议)
ALTER DATABASE ARCHIVELOG;
-- 5. 打开数据库
ALTER DATABASE OPEN;
文章
阅读量
获赞
