您的位置:首页 > 数据库

[置顶] 【实验-视频过程】数据库归档日志满了以后

2015-10-14 14:25 585 查看
归档日志满了以后、

一、清理文件

C:\Users\Administrator>19:24:36.78>sqlplus scott/tiger

SQL*Plus: Release 11.2.0.1.0 Production on 星期五 10月 9 19:24:40 2015

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-00257: archiver error. Connect internal only, until freed.


这个时候不再允许读写了

查看使用量

SQL>select * from V$FLASH_RECOVERY_AREA_USAGE;


删除过

rman target sys/XXXXXXXXXXX

RMAN> crosscheck archivelog all;


查下

可以到目录下物理删除后 做一个这个操作

RMAN>delete expired archivelog all; --删除过期的日志,本库没有过期的


没有过期的 直接删除到某一天

RMAN>delete archivelog until time "to_date('2015-10-09 00:00:00','yyyy-mm-dd hh24:mi:ss')";


我的是测试库 直接全部删除

RMAN>delete archivelog all


二、扩大空间,定时清理。

将归档日志使用空间设成10g,使用sql命令

SQL>  alter system set db_recovery_file_dest_size=10g scope=both;


---设置使用空间大小,如果是生产环境建议更大500G

SQL>  show parameter db_recovery_file_dest;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      D:\oracle\product\10.2.0\flash_recovery_area\
db_recovery_file_dest_size           big integer 10G


需要定制任务定时清理归档日志,

而删除归档日志只有在RMAN里才能进行,

于是在数据库服务器上新建一个bat文件

编辑此文件为:

rman target 'sys/password' cmdfile 'd:\cmd.txt'


―――此处路径、

文件名随意 在命令中对应的路径下新建cmd.txt文件,打开编辑此文件,

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-3';


然后在windows计划任务里添加任务

如果是测试库 的话 可以关闭
shutdown immediate;
startup mount;
alter database noarchivelog;
alter database open;
archive log list;

如果是闪回数据库的话可以先闪回

shutdown immediate;
startup mount;
alter database flashback off;
alter database noarchivelog;
alter database open;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: