动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   数据库 → 阅读文章

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

作者来源: 
阅读 2232 人次 , 2006-5-11 15:46:00 


  
环境:winxp+oracle9.2.0.1客户端
             win2003+oracle9.2.0.5服务端
一、出错过程:
在客户端执行以下语句:
conn scott/tiger@pgjt
declare
i number;
begin
select s.nextval into i from dual;
while i<1000
loop
insert into b values (i);
end loop;
end;
出现错误,客户端呈假死机现象。
新开一个窗口:
SQL> conn scott/tiger@pgjt
已连接。
SQL> select sid,serial#,username from v$session;

      SID   SERIAL# USERNAME
--------- --------- ------------------------------
        1         1
        2         1
        3         1
        4         1
        5         1
        6         1
        7         1
        8         1
        9         1
       10         1
       11         1
       12        14
       13         5 SCOTT
       14        15 SCOTT
       15         4
       16         1
       17         1
       18         1
       19         1
       20         4 NCCWGS

已选择20行。

已用时间:  00: 00: 00.01
SQL> alter system kill session '13,5';

系统已更改。

已用时间:  00: 00: 00.00
SQL>

重复上面步骤大概3次后,
SQL> conn scott/tiger@pgjt
ERROR:
ORA-00257: archiver error. Connect internal only, until freed.

无法连接数据库。

二、Problem Description ------------------- 

The database is running in archive log mode with automatic archiving turned on. When the archive log destination diskspace becomes full the automatic archiving will stop.  This is expected to happen.  At this point a message should appear  on the screen:  ORACLE Instance v816 - Can not allocate log, archival required  When all of the online redo logs are filled up, the database will be in a hang  state.  After freeing up diskspace the online redo logs are still not archiving.  In  most cases this is the CORRECT behaviour. 

If you attempt to manually archive the files you may receive the following errors: 

SVRMGR> archive log next ORA-16014: log 1 sequence# 199 not archived, no available destinations ORA-00312: online log 1 thread 1: 'C:ORACLEORADATAV816REDO01.LOG' 

SVRMGR> archive log all ORA-16020: less destinations available than specified by LOG_ARCHIVE_MIN_SUCCEED_DEST  

Solution Description -------------------- 

Some of the possible ways to fix this problem: 

1.  Use the command:     

  alter system archive log all to 'c:oracleoradatav816archive';        *NOTE:  You MUST specify a location ref - ora-16014 

2.  Shutdown and restart the database.  It may be necessary to do a Shutdown     abort. 

3. Use the REOPEN attribute of the LOG_ARCHIVE_DEST_n init.ora parameter.    

  LOG_ARCHIVE_DEST_n='
  REOPEN=30'     Or run the following comand:      

  alter system set LOG_ARCHIVE_DEST_n = 'reopen' 

4. Use the commands:        

alter system archive log stop;     alter system archive log start;  

Explanation ----------- 

The error ora-16014 is the real clue for this problem.  Once the archive  destination becomes full the location also becomes invalid.  Normally Oracle  does not do a recheck to see if space has been made available. 

1.  Using the command: alter system archive log all to 'c:oracleoradatav816archive';   gives Oracle a valid location for the archive logs.  Even after using this the  archive log destination parameter is still invalid and automatic achive does not work.  This solution is best for systems that do not archive regularly but cannot be shutdown.  You can also use this to allow you to do a Shutdown  immediate instead of Shutdown abort. 

2.  Shutdown and restart of the database resets the archive log destinstation  parameter to be valid.  Do not forget to make disk space available before  starting the database. 

3. Use the REOPEN attribute of the LOG_ARCHIVE_DEST_n parameter to determine  whether and when ARCn attempts to re-archive to a failed destination following an error.  REOPEN applies to all errors, not just OPEN errors.   REOPEN=n sets the minimum number of seconds before ARCn should try to reopen a failed destination.  The default value for n is 300 seconds.  A value of 0 is the same as turning off the REOPEN option, in other words, ARCn will not  attempt to archive after a failure.  If you do not specify the REOPEN keyword,  ARCn will never reopen a destination following an error.  The Server  Administration Guide has more information on REOPEN.  

References ---------- 

[BUG:1271752] AUTOMATIC ARCHIVING HAS NOT RESUMED AFTER SPACE IS FREED UP Server Administration Guide:  Chapter 7 

[NOTE:74324.1] Auto Archive Stopped - 8i LOG_ARCHIVE_DEST_n Issues .

3、问题解决
归档日志使用的磁盘空间已满。删除一些老的磁盘归档文件
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  542712360 bytes
Fixed Size                   455208 bytes
Variable Size             427819008 bytes
Database Buffers          109051904 bytes
Redo Buffers                5386240 bytes
Database mounted.
Database opened.
SQL> conn scott/tiger
Connected.
SQL>
  
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:ORACLE之常用FAQ V1.0 (1)
· 下一篇:ORA-01502 state unusable错误成因和解决方法(一)
· 如何确定有多少人登陆数据库
· 整理Oracle数据库碎片
· 在Access中实现密码管理的另一种方式
· windows 2003中SQL Server 2000分布式事务错误解决方法
· 改善SQL Server内存管理


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077