ORA-00257: archiver error. Connect internal only, until free
發表于:2007-07-02來源:作者:點擊數:
標簽:
環境:winxp+ oracle 9.2.0.1客戶端 win2003+oracle9.2.0.5服務端 一、出錯過程: 在客戶端執行以下語句: conn scott/tiger@pgjt declare i number; begin select s.nextval into i from dual; while i1000 loop insert into b values (i); end loop; end;
環境: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 N
CCWGS
已選擇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. Shu
tdown 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>
原文轉自:http://www.kjueaiud.com