ORA-00257错误--归档FLASH_RECOVERY_AREA空间满了_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2553 | 回复: 0   主题: ORA-00257错误--归档FLASH_RECOVERY_AREA空间满了        下一篇 
zlasdf
注册用户
等级:新兵
经验:72
发帖:70
精华:0
注册:2011-10-17
状态:离线
发送短消息息给zlasdf 加好友    发送短消息息给zlasdf 发消息
发表于: IP:您无权察看 2015-7-23 14:36:32 | [全部帖] [楼主帖] 楼主

情况描述

做测试时,往表T插入数据时出现卡住运行很久。后面想通过PLSQL查看是否出现假死的状态,此时出现错误提示:

“ORA-00257归档程序错误,在释放之前仅限于内部连接”

SQL操作如下

SQL>DROP TABLE T PURGE;
SQL>CREATE TABLE T AS SELECT * FROM DBA_OBJECTS;
SQL>INSERT INTO T SELECT * FROM T;
SQL>INSERT INTO T SELECT * FROM T;
SQL>INSERT INTO T SELECT * FROM T;
SQL>INSERT INTO T SELECT * FROM T;


问题追踪

通过百度查询到这个问题基本上是由于归档FLASH_RECOVERY_AREA空间满了造成的。

一般有2种解决方法:

1.手动增加FLASH_RECOVERY_AREA空间

2.删除一些过期或者不需要的archive log文件

解决方案

(1)手动增加FLASH_RECOVERY_AREA空间

A.检查flash recovery area的使用情况,可以看见archivelog已经很大了,达到99.56


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.56 0 122
BACKUP PIECE 0 0 0
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
FOREIGN ARCHIVED LOG 0 0 0


B. 计算flash recovery area已经占用的空间


SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
SUM(PERCENT_SPACE_USED)*3/100
-----------------------------
2.9868


C. 修改FLASH_RECOVERY_AREA的空间修改为6GB


SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=6g;


D. 查询相关参数正常,可以连接了


SQL> select * from v$recovery_file_dest;
NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------------------------------------------------------------------- ----------- ---------- ----------------- ---------------
E:\app\keungyu\flash_recovery_area 6442450944 5182151168 0 113
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 80.44 0 113
BACKUP PIECE 0 0 0
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
FOREIGN ARCHIVED LOG 0 0 0
7 rows selected


(2) 手动删除归档日志释放空间

A. 找到recovery目录, show parameter recover


SQL> show parameter recover;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string E:\app\keungyu\flash_recovery_area
db_recovery_file_dest_size big integer 4977M
recovery_parallelism integer 0


B.根据找到的归档文件所在位置手动删除部分不需要或者过期的文件


C.此时出现了问题,为了测试手动删除文件后,空间是否有释放,对数据进行shutdown操作。


SQL>shutdown immediate;
(此时卡在这一步,没有执行下去因为之前的insert还没执行完毕,因为数据量比较大在回滚,为了能够快速关闭,选择了shutdown abort操作)
SQL>shutdown abort
(
但是在启动的时候出现了问题,报“ORA-03113: 通信通道的文件结尾错误,分析可能由于数据库立即关闭,导致文件状态可能不一致,因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致并且不用进行崩溃恢复,不得不进行下面的恢复)
C:\Users\keungyu>sqlplus "/as sysdba"


SQL*Plus: Release 11.2.0.1.0 Production on 星期五 5 31 14:14:35 2013

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


已连接到空闲例程。

SQL> startup


ORACLE 例程已经启动。

Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 205521360 bytes
Database Buffers 322961408 bytes
Redo Buffers 5804032 bytes


数据库装载完毕。

ORA-03113: 通信通道的文件结尾

进程 ID: 3956

会话 ID: 9 序列号: 3

SQL> startup mount;


ORA-24324: 未初始化服务句柄

ORA-01041: 内部错误, hostdef 扩展名不存在

SQL> conn /as sysdba


已连接到空闲例程。

SQL>
SQL>
SQL> startup mount;


ORACLE 例程已经启动。

Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 205521360 bytes
Database Buffers 322961408 bytes
Redo Buffers 5804032 bytes


数据库装载完毕。

SQL> set lineszie 1000;


SP2-0158: 未知的 SET 选项 "lineszie"

SQL> set linesize 1000;
SQL>
SQL>
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES BLOCKSIZE MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
---------- ---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- -------------- ------------ --------------


1 1 172 52428800 512 1 NO CURRENT 2004354 31-5 -13 2.8147E+14

3 1 171 52428800 512 1 NO INACTIVE 2001237 31-5 -13 2004354 31-5 -13

2 1 170 52428800 512 1 NO INACTIVE 1996178 31-5 -13 2001237 31-5 -13

SQL> alter database open resetlogs;
alter database open resetlogs
*


 1 行出现错误:

ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效

<执行恢复操作>

SQL> recover database until time '2013-05-31 12:00:00';


完成介质恢复。

SQL> alter database open resetlogs;


数据库已更改。

SQL> shutdown immediate;


数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup


ORACLE 例程已经启动。

Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 205521360 bytes
Database Buffers 322961408 bytes
Redo Buffers 5804032 bytes


数据库装载完毕。

数据库已经打开。

SQL>


D.此时查询归档文件空间仍然为99.56并没有释放,但是可以以非sys用户登陆


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.56 0 122
BACKUP PIECE 0 0 0
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
FOREIGN ARCHIVED LOG 0 0 0
7 rows selected


E.RMAN对归档文件进行操作


RMAN删除过期归档文.sql

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


归档日志文件名=E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_27\O

1_MF_1_105_8T69TZSV_.ARC RECID=58 STAMP=816542946


对归档日志的验证成功
归档日志文件名=E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_27\O

1_MF_1_106_8T69V5MF_.ARC RECID=59 STAMP=816542953


对归档日志的验证成功
归档日志文件名=E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_27\O

1_MF_1_107_8T69V9XD_.ARC RECID=60 STAMP=816542956


对归档日志的验证成功
归档日志文件名=E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_27\O

1_MF_1_108_8T69VLPJ_.ARC RECID=61 STAMP=816542966


对归档日志的验证成功

已交叉检验的 122 对象

--删除无效的日志
RMAN> delete expired archivelog all;


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

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

------- ---- ------- - ----------


1 1 48 X 08-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_09\O1_MF_1_48_8ROWMYK1_.ARC
2 1 49 X 09-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_10\O1_MF_1_49_8RRKFGG1_.ARC
3 1 50 X 10-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_13\O1_MF_1_50_8S0GNDN4_.ARC
4 1 51 X 13-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_13\O1_MF_1_51_8S0RQXCW_.ARC
5 1 52 X 13-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_14\O1_MF_1_52_8S32VFVL_.ARC
6 1 53 X 14-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_14\O1_MF_1_53_8S36M9O8_.ARC
7 1 54 X 14-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_14\O1_MF_1_54_8S3OFOJO_.ARC
8 1 55 X 14-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_16\O1_MF_1_55_8S8CJGYB_.ARC
9 1 56 X 16-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_16\O1_MF_1_56_8S9TZ298_.ARC
10 1 57 X 16-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_20\O1_MF_1_57_8SLX634K_.ARC
11 1 58 X 20-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_20\O1_MF_1_58_8SMZ5P3H_.ARC
12 1 59 X 20-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_21\O1_MF_1_59_8SOL3G2Q_.ARC
13 1 60 X 21-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_21\O1_MF_1_60_8SPZVRDD_.ARC
14 1 61 X 21-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_22\O1_MF_1_61_8SSGDJ7R_.ARC
15 1 62 X 22-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_22\O1_MF_1_62_8SSNC5PR_.ARC
16 1 63 X 22-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_23\O1_MF_1_63_8SW6HB7T_.ARC
17 1 64 X 23-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_23\O1_MF_1_64_8SW6K672_.ARC
18 1 65 X 23-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_23\O1_MF_1_65_8SW6VPK4_.ARC
19 1 66 X 23-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_23\O1_MF_1_66_8SW76455_.ARC
20 1 67 X 23-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_23\O1_MF_1_67_8SW7RHT5_.ARC
21 1 68 X 23-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_23\O1_MF_1_68_8SW89WRV_.ARC
22 1 69 X 23-5月 -13 名称: E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_24\O1_MF_1_69_8SXGXQ00_.ARC

是否确定要删除以上对象 (输入 YES 或 NO)? YES
已删除的归档日志
归档日志文件名=E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_09\O

1_MF_1_48_8ROWMYK1_.ARC RECID=1 STAMP=814956544


已删除的归档日志
归档日志文件名=E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_10\O

1_MF_1_49_8RRKFGG1_.ARC RECID=2 STAMP=815043375


已删除的归档日志
归档日志文件名=E:\APP\KEUNGYU\FLASH_RECOVERY_AREA\MYTEST\ARCHIVELOG\2013_05_24\O

1_MF_1_69_8SXGXQ00_.ARC RECID=22 STAMP=816253241


22 EXPIRED 对象已删除

RMAN>


F. 此时查询归档文件空间仍然为87.43,空间释放了


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 87.43 0 100
BACKUP PIECE 0 0 0
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
FOREIGN ARCHIVED LOG 0 0 0
7 rows selected


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论