oracle 手动删除归档日志

Posted on   风行天下-2080  阅读(1136)  评论(0编辑  收藏  举报

1、

https://blog.csdn.net/qq_23135259/article/details/128847302

https://blog.csdn.net/bosschen/article/details/129415215

https://blog.csdn.net/xcg340123/article/details/54573188   (归档日志的处理.)

Oracle数据库归档日志满了会导致数据库实例自动关闭,不能正常使用数据库,那归档日志满了该如何处理呢

删除归档文件
首先删除归档文件在物理主机磁盘中的文件
物理文件删除后ORACLE的controlfile中仍然记录着这些archivelog的信息,在oracle的OEM管理器中有可视化的日志展现出,接下来要做的就是从controlfile中清除掉多余归档日志文件记录

一、查看是否开启归档日志

SQL> archive log list;  
Database log mode          Archive Mode  
Automatic archival         Enabled  
Archive destination        /oracle/archivelogs  
Oldest online log sequence     1564  
Next log sequence to archive   1566  
Current log sequence           1566  

二、删除数据库归档文件。

cd /oracle/archivelogs  
执行下面命令删除7天以前的归档日志:  
find . -xdev -mtime +7 -name "*.dbf" -exec rm -f {}  \;  
等同于在rman里执行  
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';  
三、执行rman逻辑上删除过期日志

rman  
RMAN> connect target /  
>crosscheck archivelog all;    //检查归档日志  
>delete expired archivelog all;   //删除失效的归档日志

RMAN>list expired archivelog all; /*列出所有expired(过期)的归档日志文件,此时你就可看到移走的归档日志文件均被标记为expired  
>quit  


至此归档文件完全删除~!
————————————————
版权声明:本文为CSDN博主「bosschen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bosschen/article/details/129415215

 

 

2、

oracle数据库查询获得系统归档日志的切换频率及大小
 select max (first_time) max_first_time,to_char (first_time, 'yyyy-mm-dd') day,count (recid) count_number,count (recid) * 200 size_mb from v$log_history group by to_char (first_time, 'yyyy-mm-dd') order by 1


3、

Oracle查看当前连接的数据库实例及状态:

SQL> select instance_name,status from v$instance;

INSTANCE_NAME          STATUS

-------------------------------- ------------------------

orcl                                   OPEN

归档模式(archivelog):可以在线/离线备份数据库,可以是全备份或者是部分备份(单个表空间/数据文件) ;

非归档模式(noarchivelog):只能离线备份而且必须备份所有的数据文件,控制文件,日志文件

Oracle查看当前连接的数据库的归档模式:

SQL> select name, log_mode from v$database;

NAME             LOG_MODE

------------------ ------------------------

ORCL                  ARCHIVELOG

 查看数据库日志文件的大小

sys@bomsdb> select distinct(bytes/1024/1024) MB from v$log;

MB

----------

200

如果上面的查询返回不止一条,说明你的系统中存在不同大小的redolog。应该强烈抵制这种事情的发生。确保数据库具有相同大小的redo log,便于管理和使用。

4、

查看已经使用到的最老的日志文件

select name,sequence#,to_char(first_time,'dd-mon-yyyy hh24:mi:ss') from v$archived_log order by first_time;

5、oracle 正确删除归档日志,并清除 V$ARCHIVED_LOG 数据

https://www.cnblogs.com/moonciki/p/8145830.html

1. 连接 RMAN 管理

 rman target /

2. 查看归档日志列表

RMAN> crosscheck archivelog all;

3. 删除所有归档日志

RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE';

4. 清空V$ARCHIVED_LOG

SQL> execute sys.dbms_backup_restore.resetCfileSection(11);

5. 查看 V$ARCHIVED_LOG

SQL> select * from V$ARCHIVED_LOG;

6. 生成新的日志文件

SQL> alter system switch logfile;

——————————————————————————————————————————

6、

Configure retention policy to redundancy 1;--指保留一次备份,其余的都是过期的

--Configure retention policy to recovery window of 7 days;--指保留7天内的备份,其余的都是过期的

7、

https://blog.csdn.net/hunhun1122/article/details/78095666?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-78095666-blog-54573188.235%5Ev38%5Epc_relevant_anti_t3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-78095666-blog-54573188.235%5Ev38%5Epc_relevant_anti_t3&utm_relevant_index=5

切换重做日志
SQL> alter system switch logfile;

8、

https://www.cnblogs.com/tan80000/p/11165228.html

(1) 归档日志的查询
SQLPlus执行conn /as sysdba去查看,也可以只直接在PLSQL中查询:
执行:
select * from v$flash_recovery_area_usage;

 

 
ARCHIVED LOG行的percent_space_used 表示归档日志占用空间的百分比:
如果 ARCHIVED LOG 超过90% oracle随时有宕机的危险。
(2)  增大归档日志空间
该操作需要在SQLPlus中进行:
alter system set db_recovery_file_dest_size=20G;

9、

Delete Archivelog until time

如果数据库处于归档日志模式,则 Oracle 数据库正在归档重做日志组文件。
当重做日志文件被归档时,重做日志文件会被新的重做数据覆盖。但是,如果您不安排任何删除作业,则不会删除或自动删除存档日志
您需要定期删除归档日志,否则您将收到归档程序错误。
————————————————
https://blog.csdn.net/daxues_/article/details/119911045

10、

https://blog.csdn.net/qq_34556414/article/details/85070436?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7-85070436-blog-42080747.235%5Ev38%5Epc_relevant_anti_t3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7-85070436-blog-42080747.235%5Ev38%5Epc_relevant_anti_t3&utm_relevant_index=8

使用语句来查询每天产生归档的大小

 Select to_char(completion_time,'yyyy-mm-dd') as date1,count(0) as cnt,round(sum((blocks *block_size)/1024/1024)) as mb from v$archived_log
group by to_char(completion_time,'yyyy-mm-dd') order by date1 desc;

 

--CNT为每天归档次数,MB为每天的归档量

 

 11、

https://oracledocs.blog.csdn.net/article/details/80357426?spm=1001.2101.3001.6650.10&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-10-80357426-blog-119911045.235%5Ev38%5Epc_relevant_anti_t3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-10-80357426-blog-119911045.235%5Ev38%5Epc_relevant_anti_t3&utm_relevant_index=11

设置数据库归档时间间隔,比如30分钟归档一次。

  • SYS@test>alter system set archive_lag_target=1800;
  • System altered.

12、

Oracle归档日志空间不足引发的问题及归档日志的检测与删除

https://wenku.baidu.com/view/ef383cdd48fe04a1b0717fd5360cba1aa8118cf7.html?_wkts_=1687331136142&bdQuery=Oracle%E5%BD%92%E6%A1%A3%E6%97%A5%E5%BF%97%E7%A9%BA%E9%97%B4%E4%B8%8D%E8%B6%B3%E5%BC%95%E5%8F%91%E7%9A%84%E9%97%AE%E9%A2%98%E5%8F%8A%E5%BD%92%E6%A1%A3%E6%97%A5%E5%BF%97%E7%9A%84%E6%A3%80%E6%B5%8B%E4%B8%8E%E5%88%A0%E9%99%A4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13、

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2019-06-19 centos7 忘记root用户密码
2018-06-19 windows安装python运行环境使用pycharm

随笔 - 618, 文章 - 0, 评论 - 6, 阅读 - 37万

Copyright © 2025 风行天下-2080
Powered by .NET 9.0 on Kubernetes

点击右上角即可分享
微信分享提示