ORA-00257 与 ORA-19815 ,归档日志超出范围的解决方案

1.错误现象:

公司系统开启时报错:“ORA-00257  归档程序错误。在释放之前仅限于内部链接。”

2.查看报错日志(路径:D:\oracle\product\10.2.0\admin\orcl\bdump\alert_orcl.log)

SQL> show parameter dump // 查看alert日志目录

 1 Wed Mar 28 14:36:48 2018
 2 Errors in file d:\oracle\product\10.2.0\admin\orcl\bdump\orcl_arc0_7072.trc:
 3 ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 8589934592 字节) 已使用 100.00%, 尚有 0 字节可用。
 4 Wed Mar 28 14:36:48 2018
 5 ************************************************************************
 6 You have following choices to free up space from flash recovery area:
 7 1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
 8    then consider changing RMAN ARCHIVELOG DELETION POLICY.
 9 2. Back up files to tertiary device such as tape using RMAN
10    BACKUP RECOVERY AREA command.
11 3. Add disk space and increase db_recovery_file_dest_size parameter to
12    reflect the new space.
13 4. Delete unnecessary files using RMAN DELETE command. If an operating
14    system command was used to delete files, then use RMAN CROSSCHECK and
15    DELETE EXPIRED commands.
16 ************************************************************************
17 ARC0: Failed to archive thread 1 sequence 9284 (19809)

可以看出是闪存空间满了

验证步骤:

/* ************************************************************ */
/* 由于楼主没有保留相应查询结果数据,故盗取别人帖子的返回结果,敬请见谅! */
/* ************************************************************ */

SQL> show parameter recover; /* 查看闪回空间大小 */

NAME                           TYPE        VALUE
----------------------------- ----------- ---------------------------------------
/* 文件路径 */
db_recovery_file_dest              string /home/U01/app/oracle/fast_recovery_area
db_recovery_file_dest_size    big integer                                     40G /* 文件夹最大限制大小(实际可超出,用于ORA检测控制)*/
db_unrecoverable_scn_tracking     boolean                                    TRUE
recovery_parallelism              integer                                       0

SQL> select * from v$recovery_file_dest; /* 查看闪回路径及使用情况 */

NAME                                    
SPACE_LIMIT
SPACE_USED
SPACE_RECLAIMABLE
NUMBER_OF_FILES
CON_ID ------------------------------------------------------- ----------- ---------- ----------------- --------------- ---------- /home/U01/app/oracle/fast_recovery_area /* 文件夹路径
*/ 4.2950E+10 /* 限制大小,即上方的40G */ 2.1538E+10 /* 实际大小,楼主出问题时此值大大超出设置大小 */ 0 89 /* GROUP编号*/ 0

SQL> select * from v$log /* 查看GROUP归档情况 */

GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
------ ------- --------- -------- ------- --- -------- ------------- ----------
     1       1        93 52428800       1 NO INACTIVE 4345718 04-FEB-09
     3       1        94 52428800       1 NO INACTIVE 4347356 04-FEB-09
     2       1        95 52428800       1 NO  CURRENT 4368182 04-FEB-09
SQL> select * from V$RECOVERY_AREA_USAGE; /* 查看闪回空间使用情况 */ FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES CON_ID ----------------------- ------------------ ------------------------- --------------- ---------- CONTROL FILE 0 0 0 0 REDO LOG 7.45 0 7 0 ARCHIVED LOG 100 0 76 0 BACKUP PIECE 0 0 0 0 IMAGE COPY 0 0 0 0 FLASHBACK LOG 0 0 0 0 FOREIGN ARCHIVED LOG 0 0 0 0 AUXILIARY DATAFILE COPY 0 0 0 0

 

3.解决方案:(可只用一种或两种都用,具体参数因情况而定。)

3.1)手工归档:
SQL> alter database clear logfile group 3; // 用CLEAR命令重建该日志文件
SQL>alter database clear unarchived logfile group 3;// 如果是该日志组还没有归档,则需要用
SQL> alter database open;// 打开数据库,重新备份数据库

3.1)空间扩容:

SQL> alter system set db_recovery_file_dest_size=100G scope=both;

3.2)删除归档(注意:在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。)

$ rman target /

RMAN> crosscheck archivelog all; /* 检查一些无用的archivelog */

RMAN> delete expired archivelog all; /* 删除过期的归档 */

RMAN> delete archivelog until time 'sysdate-1'; /* 删除截止到前一天的所有archivelog */

退出进入SQLPLUS

SQL> alter database open;

 

4.排错心得:

楼主作为一个维护小白,在查错的过程中走了很多歪路、错路,以上步骤是问题解决后整理的正确步骤,具体情况视个人情况而定。

其实楼主的解决过程磕磕绊绊,很多方法试过了,或解决问题或反复解决问题不久又重新报错,总结下来还是应改提早查看错误日志,对问题的引发点有更确切的认识。

比如本例中系统报错为 ORA-00257 ,而日志中的具体报错为 ORA-19815 。

学习解决问题的思路,而不是为了解决问题而解决问题。

一步一脚印。

至此~~~~~

转载于:https://www.cnblogs.com/BlackList-Sakura/p/8665093.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORA-00257错误是由于Oracle数据库归档日志满了导致的。要解决这个问题,可以采取以下几个步骤: 1. 首先,确认归档日志的使用情况。你可以通过查询v$flash_recovery_area_usage视图来获取有关归档日志使用情况的信息。如果归档日志的使用量超过了可用空间的80%,则需要清理归档日志。 2. 清理归档日志。你可以使用RMAN工具或者手动删除过期的归档日志来释放空间。如果使用RMAN,可以运行以下命令:DELETE ARCHIVELOG UNTIL TIME 'sysdate-7' BACKED UP 1 TIMES TO DISK; 这个命令将删除一周前的已备份的归档日志。如果你使用手动删除归档日志,请确保你备份了这些归档日志,并且在删除之前先将它们标记为已备份。 3. 增加归档日志的存储空间。如果你发现归档日志频繁满了,可以考虑增加归档日志的存储空间。你可以通过修改参数LOG_ARCHIVE_DEST_n来指定归档日志的存储位置,或者增加归档日志的存储空间。 总结起来,解决ORA-00257错误的步骤包括确认归档日志的使用情况,清理过期的归档日志以释放空间,并且可以考虑增加归档日志的存储空间。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Oracle归档日志写满(ora-00257)了怎么办](https://download.csdn.net/download/weixin_38710781/12830263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [ORA-00257: 归档程序错误 Oracle归档报错处理方式](https://blog.csdn.net/zl61347338/article/details/123202527)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [ORA-00257: Archiver error. Connect AS SYSDBA only until resolved错误解决](https://blog.csdn.net/Paulangsky/article/details/127518046)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值