Oracle redo重做日志更换


--查看现有redo日志
SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED, BYTES/1024/1024 AS SIZE_MB FROM V$LOG;


-- 示例:创建3个新的临时日志组,每个大小为50MB(或根据你计算的结果设定)
ALTER DATABASE ADD LOGFILE GROUP 4 ('/data/oracle/app/oradata/crmdb/redo04.log') SIZE 50M;
ALTER DATABASE ADD LOGFILE GROUP 5 ('/data/oracle/app/oradata/crmdb/redo05.log') SIZE 50M;
ALTER DATABASE ADD LOGFILE GROUP 6 ('/data/oracle/app/oradata/crmdb/redo06.log') SIZE 50M;

--手动切换日志,要执行多次才能使用1,2,3变成INACTIVE
ALTER SYSTEM SWITCH LOGFILE;

--查看状态变为 INACTIVE
SELECT GROUP#, STATUS FROM V$LOG;


--删除旧的、小的日志组
ALTER DATABASE DROP LOGFILE GROUP 1;
ALTER DATABASE DROP LOGFILE GROUP 2;
ALTER DATABASE DROP LOGFILE GROUP 3;

--再次查看
SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED, BYTES/1024/1024 AS SIZE_MB FROM V$LOG;

--当删除了1,2,3 后还要手工在系统层下删除这三个文件

--然后新建三个
ALTER DATABASE ADD LOGFILE GROUP 1 ('/data/oracle/app/oradata/crmdb/redo01.log') SIZE 1024M;
ALTER DATABASE ADD LOGFILE GROUP 2 ('/data/oracle/app/oradata/crmdb/redo02.log') SIZE 1024M;
ALTER DATABASE ADD LOGFILE GROUP 3 ('/data/oracle/app/oradata/crmdb/redo03.log') SIZE 1024M;

--再切换
ALTER SYSTEM SWITCH LOGFILE;

--查看状态变为 INACTIVE
SELECT GROUP#, STATUS FROM V$LOG;

--删除旧的、小的日志组
ALTER DATABASE DROP LOGFILE GROUP 4;
ALTER DATABASE DROP LOGFILE GROUP 5;
ALTER DATABASE DROP LOGFILE GROUP 6;

--再在系统下删除4,5,6,redo文件

posted @ 2026-09-09 15:58  莫让年华付水流  阅读(6)  评论(0)    收藏  举报