文档章节

当ORACLE归档日志满后如何正确删除归档日志

独钓渔
 独钓渔
发布于 2017/07/31 23:42
字数 1119
阅读 28
收藏 0

当Oracle 归档日志满了后,将无法正常登入oracle,需要删除一部分归档日志才能正常登入ORACLE。

 

一、首先删除归档日志物理文件,归档日志一般都是位于archive目录下,AIX系统下文件格式为“1_17884_667758186.dbf”,建议操作前先对数据库进行备份,删除时至少保留最近几天的日志用于数据库恢复。

 

二、把归档日志的物理文件删除后,我们就可以正常登入ORACLE了,但是还没完全把归档日志删除干净,ORACLE的controlfile中仍然记录着这些archivelog的信息,在oracle的OEM管理器中有可视化的日志展现出,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,接下去我们要做的就是这个工作。

我们利用RMAN进行删除操作,操作步骤如下:(window客户端系统为例)

1.指定数据库实例

C:/Documents and Settings/Administrator>SET ORACLE_SID =orcl

2.连接数据库

C:/Documents and Settings/Administrator>RMAN TARGET SYS/sysadmin@orcl

3.查看归档日志的状态

RMAN> list archivelog all;

4.手工删除归档日志文件

RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

 说明:
 SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。 
同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库 
DELETE ARCHIVELOG from TIME 'SYSDATE-7'; 删除从7天前到现在的全部日志,慎用
UNIX/Linux下也可以通过FIND找到7天前的归档数据,使用EXEC子操作删除 
find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ; 
这样做仍然会在RMAN里留下未管理的归档文件 
仍需要在RMAN里执行下面2条命令 
crosscheck archivelog all; 
delete expired archivelog all; 
所以还不如上面的方法好用,不过用FIND的好处就是,可以在条件上,和EXEC子项上做很多操作,实现更复杂的功能

5.退出rman

RMAN> exit

 

 

附带说明:RMAN 是Oracle数据库软件自带的备份恢复工具,一种是类似于DOS,通过键盘操作的 命令行方式。

通过RMAN连接本地数据库非常简单,以 W indows 平台为例,进入到命令提示符界面:

C:/Documents and Settings/junsansi> SET ORACLE_SID =jssbook
C:/Documents and Settings/junsansi> RMAN TARGET /
Recovery Manager: Release 10.2.0.1.0 - Production on Tue Mar 17 21:12:17 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database: JSSBOOK (DBID=1415261003)
RMAN>

如上所示,使用RMAN连接本地数据库之前必须首先设置操作系统环境变量:ORACLE_SID,并指定该值等于目标数据库的实例名。如果本地库只有一个实例并已经设置了ORACLE_SID环境变量,则不需要再指定ORACLE_SID。RMAN会自动连接到默认实例。

  当然,你也可以先启动RMAN,然后再通过CONNECT命令来连接目标数据库,如下所示:

C:/Documents and Settings/junsansi> RMAN
Recovery Manager: Release 10.2.0.1.0 - Production on Tue Mar 17 21:12:36 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
RMAN> connect target /
connected to target database: JSSBOOK (DBID=1415261003)

 本地连接允许使用操作系统验证,因此上述示例都不需要输入用户名和密码,不过如果本地没有启用操作系统身份验证的话,就必须指定具有相应权限的用户名和密码。

  需要注意,linux/UNIX 环境下设置操作系统环境变量应使用 export 命令,另外ORACLE_SID必须为大写。例如:

[oracle@yans1  ~ ]$  export  ORACLE_SID=test08
[oracle@yans1  ~ ]$  rman target /
Recovery Manager: Release 10.2.0.3.0 - Production on Tue Mar 17 16:08:32 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database: TEST08 (DBID=3812548755)
RMAN> 

连接远程数据库

  如果要连接的目标数据库是一个远程数据库,那么必须在建立连接时指定一个有效的网络服务名(Net Service Name),本地的tnsname.ora文件中必须已经建立了该网络服务名的正确配置。连接示例如下:

C:/Documents and Settings/junsansi> RMAN TARGET SYS/CHANGE_ON_INSTALL@TESTDB
Recovery Manager: Release 10.2.0.1.0 - Production on Tue Mar 17 16:12:32 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database: TESTDB (DBID=2220262593)
RMAN>

 

 

本文转载自:http://blog.csdn.net/linlzk/article/details/5269186

共有 人打赏支持
独钓渔
粉丝 48
博文 375
码字总数 142587
作品 0
沙坪坝
系统管理员
oracle 删除归档日志的正确方式

在使用plsql使用游标的%rowcount时,导致了一个死循环,手动终止后数据库无法连接,服务重启后依然不行。windows日志管理器报归档日志相关的错误,最终手动启动到mount状态,禁用归档日志后,...

枯藤KT
2015/11/16
0
0
如何正确删除Oracle 归档日志文件

当Oracle中的归档日志空间满时,则需要把它清空,否则将会影响数据库正常运行, 将无法正常登入ORACLE,需要删除一部分归档日志才能正常登入ORACLE。 一、首先删除归档日志物理文件,归档日志...

xiaocao13140
2017/10/09
0
0
ORACLE 11G DB RAC ORA-00257archiver error解决办法

ORA-00257archiver error解决办法 1.之前有处理单机过oracle 11.2.0.4归档日志磁盘空间不足的问题 ,但是没有处理过ORACLE RAC的归档日志磁盘空间不足的问题 所以没有预想到会是出现asm磁盘空...

翘楚秦歌
2017/05/12
0
0
更改ORACLE归档路径及归档模式

本文转自 http://blog.itpub.net/163177/viewspace-756354/ 在ORACLE10g和11g版本,ORACLE默认的日志归档路径为闪回恢复区($ORACLEBASE/flashrecovery_area)。对于这个路径,ORACLE有一个限...

zancun
2017/09/08
0
0
Oracle的重做日志

Oracle数据库在运行当中,用户更改的数据首先会存放在数据库高速缓冲区当中,为了提升磁盘读写,oracle机制不会频繁的将缓冲区的数据写到磁盘,而是等到检查点或者数据高速缓冲区达到一定数量...

rm_rf_db
2017/12/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx的简单使用:负载均衡

nginx:反向代理的服务器;用户发送请求到nginx,nginx把请求发送给真正的服务器,等待服务器处理完数据并返回,再把数据发送给用户。 nginx作为一个反向代理服务器,能缓存我们项目的静态文...

osliang
28分钟前
2
0
网站title标题被改并被百度网址安全中心提醒的解决办法

国庆假日期间我们Sine安全接到众多网站站长求助网站标题被改导致在百度搜索中百度安全中心提醒被拦截,导致网站正常用户无法浏览网站被跳转到一些菠菜du博网站,而且很明显的一个特征就是在百...

网站安全
30分钟前
1
0
JDK版本与major.minor version的对照关系

其实,只需要记住jdk6对于major.minor version 50即可,其他版本自行计算即可。 ---------------------

码代码的小司机
33分钟前
1
0
C++基础教程面向对象学习笔记及心得感悟[图]

C++基础教程面向对象学习笔记及心得感悟[图] 使用友元函数重载算术运算符: C ++中一些最常用的运算符是算术运算符 - 即加号运算符(+),减运算符( - ),乘法运算符(*)和除法运算符(/...

原创小博客
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部