Oracle删除归档日志

Oracle删除归档日志

1.运行环境

 操作系统:Windows Server 2019

 Oracle版本:11gr2,即11.2

2.检查数据库的归档配置

 打开CMD或POWERSHELL(win键+R键后输入对应名称):

如果控制台乱码,输入"CHCP 65001"命令可以适配当前字符集。

bash 复制代码
CHCP 65001

登录数据库:

bash 复制代码
sqlplus / as sysdba

查看是否开启归档日志:

bash 复制代码
archive log list;

可以看到,在磁盘下有这些归档文件:

3.使用RMAN删除归档文件

用CMD打开Oracle目录下的rman程序。

首先找到rman程序的物理路径:

一般都在这个路径下:D:\ORACLE\product\11.2.0\dbhome_1\BIN

在CMD中进入该程序的文件夹,并打开程序:

注:先用exit命令退出sqlplus程序,然后使用cd命令进入文件夹,最后输入exe程序名打开程序

bash 复制代码
exit
cd D:\ORACLE\product\11.2.0\dbhome_1\BIN
rman.exe

连接当前数据库:

bash 复制代码
connect target /

使用命令删除归档日志文件:delete archivelog 什么什么

注:此命令将永久删除归档文件

  1. 删除7天前的归档日志文件:
bash 复制代码
delete archivelog until time 'sysdate-7';

可能出现的问题:

1.没有需要删除的文件:

2.状态不匹配:该错误请到下一个标题中进行查看(4.归档状态不匹配)

如图为删除成功:

4.归档状态不匹配

bash 复制代码
是否确定要删除以上对象 (输入 YES 或 NO)? yes

RMAN-06207: 警告: 由于状态不匹配, 所以不能删除 1 对象 (对于 DISK 通道)。
RMAN-06208: 请用 CROSSCHECK 命令修正状态
RMAN-06210: 不匹配对象的列表
RMAN-06211: ==========================
RMAN-06212: 对象类型   文件名/句柄
RMAN-06213: --------------- ---------------------------------------------------
RMAN-06214: Archivelog      D:\ORACLE\FAST_RECOVERY_AREA\ORCL\ARCHIVELOG\1_31682_1098628977.ARC

  如上错误是因为,直接在Windows的文件管理器中进行删除了,但oracle却不知道这个文件删除了,导致报错。这个错误也比较好恢复。其实在日常维护中,我们也可以直接删除归档文件,只要不是最新的日期就行。

在RMAN中输入以下命令:

1.检查磁盘所有归档日志文件是否存在:

bash 复制代码
crosscheck archivelog all;

2.删除不存在(过期)的归档日志记录信息:

bash 复制代码
delete expired archivelog all;

如图所示删除成功,此时归档日志文件已经完整,可以进行下一步的删除。

参考:
Oracle 11g 管理归档日志
如何正确删除ORACLE归档日志文件

相关推荐
祈禾9 小时前
Redis三大缓存问题与分布式锁
运维·数据库·redis·笔记·分布式·缓存
DBA小马哥9 小时前
关系型数据库核心概念手册:SQL、事务与存储引擎的技术脉络
数据库·sql
丫头,冲鸭!!!9 小时前
记账网站3-连数据库
数据库·个人开发
安且惜10 小时前
Windows或mac支持本地抓包
windows·macos
灯澜忆梦10 小时前
【MySQL12】进阶篇 | SQL优化
数据库·sql·mysql·性能优化
IvorySQL10 小时前
PostgreSQL 日报|PG18.5 回归测试崩溃问题(8 月 12 日)
大数据·数据库·人工智能·postgresql
ltl10 小时前
学习型查询优化器:Neo、Bao、Balsa 与 LLM-CBO
数据库
ltl10 小时前
持久内存退场之后:ZNS SSD 与下一代非易失内存
数据库
故乡dee云13 小时前
AWS 产品太多不会选?按“网站、数据库、文件、日志”4 类需求快速匹配
数据库·云计算·aws
曹牧14 小时前
C#:问号
前端·数据库·c#