select * from V$FLASH_RECOVERY_AREA_USAGE; 查看使用情况
用plsql登陆时提示“ORA-00257: archiver error. Connect internal only, until freed”,原来是日志满了,根据上述网址提供的步骤操作后就可以,即删除部分归档日志。
1.首先查看当前flash recovery area使用情况
C:windowssystem32>sqlplus sys/fyzh@orcl as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期三 9月 4 18:08:48 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show parameter log_archive_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest string --日志路径的value没有值
log_archive_dest_1 string
.............................................................省略
log_archive_dest_state_1 string enable
............................................................省略
SQL> set linesize 200
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE 0 0 0
REDO LOG 0 0 0
ARCHIVED LOG 99.98 0 97 发现已经使用了99.98%
BACKUP PIECE 0 0 0
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
FOREIGN ARCHIVED LOG 0 0 0
已选择7行。
2.清除部分日志
采用rman方式清除日志
C:windowssystem32>rman target sys/fyzh
恢复管理器: Release 11.2.0.1.0 - Production on 星期三 9月 4 18:35:02 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORCL (DBID=1351232595)
RMAN> crosscheck archivelog all; --先检查下
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=68 设备类型=DISK
对归档日志的验证成功
归档日志文件名=E:APPFUYINZHENFLASH_RECOVERY_AREAORCLARCHIVELOG2013_09_04O1_MF_1_329_92FRDR8G_.ARC RECID=77 STAMP=825262239
对归档日志的验证成功
..........................................................
RMAN> delete expired archivelog all; --删除过期的日志,本库没有过期的
释放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=68 设备类型=DISK
说明与资料档案库中的任何归档日志都不匹配
--没有过期的,为了腾出空间,就指定到具体的时间将其删除。
RMAN>delete archivelog until time "to_date('2013-09-04 13:00:00','yyyy-mm-dd hh24:mi:ss')";
--删除后在看日志使用的空间情况,发现已使用的只有21.73%
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE 0 0 0
REDO LOG 0 0 0
ARCHIVED LOG 21.73 0 21
BACKUP PIECE 0 0 0
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
FOREIGN ARCHIVED LOG 0 0 0
已选择7行。
==========================================
windows 下自动清理
dellog.txt
----------------------
自动备份
exp aais/aais@orcl file=d:ackuporacleoracle%date:~0,10%.dmp owner=emis log=d:ackuporacleoracle%date:~0,10%.log
自动清理
connect target aais/aais
run{
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-2'; //删除两天前的归档日志
crosscheck archivelog all; //检查
delete expired archivelog all; //删除过期日志
}
------------------------
del_arhiverlog.bat文件
-------------------
rman cmdfile=c:dellog.txt
--------------------
任务管理器 每晚3点 执行 del_arhiverlog.bat