记处理ORA-00257错误

记处理ORA-00257错误

情况描述

今天在做测试时,往表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

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25269462/viewspace-762634/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25269462/viewspace-762634/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值