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归档日志文件

相关推荐
黄公子学安全10 分钟前
网安入门之MySQL后端基础
数据库·mysql·oracle
雪芽蓝域zzs16 分钟前
MySQL(五)MySQL图形化工具-Navicat
数据库·mysql
狗狗显卡26 分钟前
PHP进阶-php文件读取与连接数据库基础部分
android·数据库·php
吴冰_hogan34 分钟前
并发编程之CAS与Atomic原子操作详解
java·开发语言·数据库
Flerken10142 分钟前
力扣【SQL连续问题】
数据库·sql·算法·leetcode·数据分析
XiangHua.Ma1 小时前
常见的 Redis 面试题
数据库·redis·缓存
web182854825122 小时前
SQL 建表语句详解
java·数据库·sql
C182981825752 小时前
Rabbitmq消息补偿机制
数据库·rabbitmq·mybatis
woshilys2 小时前
sql server 动态执行sql
数据库·sql·sqlserver
Run Out Of Brain2 小时前
在macOS上安装MySQL
数据库·mysql·macos