今天用SQL Developer连接数据库报ORA-00257异常,网上找了些资料,一步一步总算搞定了:
1. 查看归档日志使用情况
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.99 0 8072
归档日志存储空间用了99.99%
2. 查看归档日志配置
SQL> show parameter recover;
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_recovery_file_dest string E:\app\Administrator\flash_recovery_area
db_recovery_file_dest_size big integer 300G
recovery_parallelism integer 0
归档日志存储位置在E:\app\Administrator\flash_recovery_area,分配了300G的空间,去磁盘目录下看了下,果然写满了。
3. 删除不用的归档日志
参考了http://yesican.blog.51cto.com/700694/214935
命令行下输入: rman target sys/*******;
检查无用的archivelog:
RMAN>crosscheck archivelog all;
删除过期日志
RMAN>delete expired archivelog all;
提示:说明与资料档案库中的任何数据文件副本都不匹配 (以前没用过rman,不知道是啥意思,猜测是没有找到过期文件)
删除14天前的归档日志
RMAN>delete archivelog until time 'sysdate-14';
先列出所有需要删除的文件,询问是否删除,输入yes确认。
4. 重新检查归档日志使用状态
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 12.29 0 1089
使用百分比为12.29%
5. 连接数据库,成功。