ORA-00257: archiver error. Connect internal only, until freed——解决

来源:互联网 发布:淘宝在哪里添加子账号 编辑:程序博客网 时间:2024/05/23 10:04

参考http://www.cnblogs.com/lanzi/p/3301729.html
题外话—-昨晚两点钟左右的时候idea还跑的好好的,今天早上打开idea 连接oracle一直提示ORA-00257: archiver error. Connect internal only, until freed,而且在命令行里面登陆oracle也是一直提示ORA-00257: archiver error. Connect internal only, until freed,别提多堵心了,重启了电脑也是无济于事。。。。。。。。

**写在前面—–当你确定好用户名和密码正确后,仍旧无法登陆到oracle的时候,请手动找到归档日志的路径下,删除归档日志文件。路径一般为F:\app\jiajiaQian\flash_recovery_area\orcl\ARCHIVELOG。
手动删除了这些文件后,仍旧无法登陆到oracle,这时候,你需要在服务中重新启动oracle服务。并且再次在控制台进行连接oracle,这个时候,神奇的事情出现了**
这里写图片描述

这个时候我们就可以进入到rman了:
这里写图片描述

开启归档后,操作一个大表迁移表空间,执行了1个多小时没完成就手动给中断了,但是再次用plsql登陆时提示“ORA-00257: archiver error. Connect internal only, until freed”,原来是日志满了,根据上述网址提供的步骤操作后就可以,即删除部分归档日志。

1.首先查看当前flash recovery area使用情况—-
请输入用户名: sys as sysdba
输入口令:

连接到:
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_10 string
log_archive_dest_11 string
log_archive_dest_12 string
log_archive_dest_13 string
log_archive_dest_14 string
log_archive_dest_15 string
log_archive_dest_16 string
log_archive_dest_17 string
log_archive_dest_18 string

NAME TYPE VALUE


log_archive_dest_19 string
log_archive_dest_2 string
log_archive_dest_20 string
log_archive_dest_21 string
log_archive_dest_22 string
log_archive_dest_23 string
log_archive_dest_24 string
log_archive_dest_25 string
log_archive_dest_26 string
log_archive_dest_27 string
log_archive_dest_28 string

NAME TYPE VALUE


log_archive_dest_29 string
log_archive_dest_3 string
log_archive_dest_30 string
log_archive_dest_31 string
log_archive_dest_4 string
log_archive_dest_5 string
log_archive_dest_6 string
log_archive_dest_7 string
log_archive_dest_8 string
log_archive_dest_9 string
log_archive_dest_state_1 string enable

NAME TYPE VALUE


log_archive_dest_state_10 string enable
log_archive_dest_state_11 string enable
log_archive_dest_state_12 string enable
log_archive_dest_state_13 string enable
log_archive_dest_state_14 string enable
log_archive_dest_state_15 string enable
log_archive_dest_state_16 string enable
log_archive_dest_state_17 string enable
log_archive_dest_state_18 string enable
log_archive_dest_state_19 string enable
log_archive_dest_state_2 string enable

NAME TYPE VALUE


log_archive_dest_state_20 string enable
log_archive_dest_state_21 string enable
log_archive_dest_state_22 string enable
log_archive_dest_state_23 string enable
log_archive_dest_state_24 string enable
log_archive_dest_state_25 string enable
log_archive_dest_state_26 string enable
log_archive_dest_state_27 string enable
log_archive_dest_state_28 string enable
log_archive_dest_state_29 string enable
log_archive_dest_state_3 string enable

NAME TYPE VALUE


log_archive_dest_state_30 string enable
log_archive_dest_state_31 string enable
log_archive_dest_state_4 string enable
log_archive_dest_state_5 string enable
log_archive_dest_state_6 string enable
log_archive_dest_state_7 string enable
log_archive_dest_state_8 string enable
log_archive_dest_state_9 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 82.28 0 131
BACKUP PIECE 17.67 0 2
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
FOREIGN ARCHIVED LOG 0 0 0

已选择7行。
发现已经使用了82.28%。
2.清除部分日志

采用rman方式清除日志

Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation。保留所有权利。

C:\Users\12654>rman target sys/qjj1234

恢复管理器: Release 11.2.0.1.0 - Production on 星期四 4月 6 09:33:43 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

连接到目标数据库: ORCL (DBID=1460330333)

RMAN> crosscheck archivelog all;
—-–先检查下使用目标数据库控制文件替代恢复目录
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=192 设备类型=DISK
对归档日志的验证失败

已交叉检验的 131 对象

RMAN> delete expired archivelog all;

释放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=192 设备类型=DISK
**db_unique_name 为 ORCL 的数据库的归档日志副本列表
=====================================================================**

关键字 线程序列 S 时间下限


4 1 12 X 09-1月 -17
名称: F:\APP\JIAJIAQIAN\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2017_01_09\O1_MF_1_12_D76J9OGC_.ARC

5 1 13 X 09-1月 -17

是否确定要删除以上对象 (输入 YES 或 NO)? yes
已删除的归档日志
归档日志文件名=F:\APP\JIAJIAQIAN\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2017_04_06\O1_MF_1_143_DGC6TW26_.ARC RECID=135 STAMP=940584925
已删除的归档日志
归档日志文件名=F:\APP\JIAJIAQIAN\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2017_04_06\O1_MF_1_144_DGC6TZ1K_.ARC RECID=136 STAMP=940584928
2 对象已删除
–删除后在看日志使用的空间情况,发现已使用的只有1.39%
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 1.39 0
2
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE
**——————– —————— ————————-
NUMBER_OF_FILES
—————**
BACKUP PIECE 17.67 0
2
IMAGE COPY 0 0
0
FLASHBACK LOG 0 0
0
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE


**NUMBER_OF_FILES
—————**
FOREIGN ARCHIVED LOG 0 0
0

已选择7行。

到这里就解决了ora-00257的错误了,但是本人认为这样子每次被动的去清理,很不方便,对的,程序猿都是懒人,所以目前还在研究怎么写批处理文件定时对归档日志进行清理。当然了曾经一度我也想关闭归档模式,但是在实际开发中,归档模式是符合开发的,归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,归档模式应该和相应的备份策略相结合,只有归档模式没有相应的备份策略只会带来麻烦。
所以咯,,,,,继续学习吧。。。。。。。。。。

0 0