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

http://www.cnblogs.com/lanzi/archive/2013/09/04/3301729.html


参考http://www.2cto.com/database/201109/104615.html,

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

1.首先查看当前flash recovery area使用情况

C:\windows\system32>sqlplus sys/fyzh@orcl as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期三 9月 4 18:08:48 2013

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

连接到:

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_state_1             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                      99.98                         0              97    发现已经使用了99.98%

BACKUP PIECE                          0                         0               0

IMAGE COPY                            0                         0               0

FLASHBACK LOG                         0                         0               0

FOREIGN ARCHIVED LOG                  0                         0               0

已选择7行。

 

2.清除部分日志

采用rman方式清除日志

 

C:\windows\system32>rman target sys/fyzh

恢复管理器: Release 11.2.0.1.0 - Production on 星期三 9月 4 18:35:02 2013

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

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

RMAN> crosscheck archivelog all;  --先检查下

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=68 设备类型=DISK

对归档日志的验证成功

归档日志文件名=E:\APP\FUYINZHEN\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_09_04\O1_MF_1_329_92FRDR8G_.ARC RECID=77 STAMP=825262239

对归档日志的验证成功

..........................................................

RMAN> delete expired archivelog all; --删除过期的日志,本库没有过期的

释放的通道: ORA_DISK_1

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=68 设备类型=DISK

说明与资料档案库中的任何归档日志都不匹配

--没有过期的,为了腾出空间,就指定到具体的时间将其删除。

RMAN>delete archivelog until time "to_date('2013-09-04 13:00:00','yyyy-mm-dd hh24:mi:ss')";

 --删除后在看日志使用的空间情况,发现已使用的只有21.73%

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                      21.73                         0              21

BACKUP PIECE                          0                         0               0

IMAGE COPY                            0                         0               0

FLASHBACK LOG                         0                         0               0

FOREIGN ARCHIVED LOG                  0                         0               0

已选择7行。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ORA-00257是Oracle数据库中的一个错误代码,表示归档错误。错误信息中的“connect internal only, until freed”表示只有内部连接才能解决这个问题,直到空间释放为止。这个错误通常是由于归档日志文件已满或磁盘空间不足导致的。要解决这个问题,可以通过删除旧的归档日志文件或增加磁盘空间来释放空间。 ### 回答2: ORA-00257是Oracle数据库中常见的错误之一,它表示归档器发生故障,无法继续归档。这个错误经常出现在数据库空间不足或者磁盘空间不足的情况下。另外,当出现一个归档进程正在使用或者另一个归档进程正在进行数据转储时,也可能出现ORA-00257错误。 这个错误可以通过在SQLPLUS命令行界面中连接到内部(internal)以解决。连接到内部可以使用以下命令: sqlplus / as sysdba 连接到内部后,可以尝试使用以下命令释放空间并解决ORA-00257错误: 1.查看当前的归档日志: archive log list; 2.查看归档日志的状态: select * from v$archive_dest_status; 3.检查数据库的归档日志目录: select name, value from v$parameter where name like '%log_archive_dest%'; 4.手动归档当前的重做日志: alter system archive log current; 5.删除重复或无用的归档日志: RMAN> crosscheck archivelog all; RMAN> delete noprompt expired archivelog all; 当然,磁盘空间不足也是ORA-00257错误的常见原因。在这种情况下,需要增加磁盘空间或定期清理日志来避免出现这个错误。 总之,ORA-00257错误是Oracle数据库中常见的归档器错误之一。尽管出现这个错误可能有多种原因,但可以通过连接到内部,查找并释放空间以及清理无用的归档日志来解决这个问题。 ### 回答3: ORA-00257是Oracle数据库中的一个错误代码,表示出现了归档器错误,只能通过内部连接访问,直到释放。 当Oracle数据库中的归档日志没有及时清空时,就可能会出现ORA-00257错误。归档日志是Oracle数据库保留的一些历史记录,用于恢复数据和保证数据一致性。每当Oracle数据库执行完一定量的事务操作后,就会将这些操作记录下来,并写入到归档日志中。但是,如果归档日志没有及时清空,就会导致存储空间不足,从而导致ORA-00257错误的发生。 解决ORA-00257错误的方法是通过内部连接访问数据库,并释放所有占用该日志的进程。首先,需要先停止所有使用归档日志的进程,然后释放归档日志,最后再启动这些进程,即可解决错误。 具体操作步骤如下: 1. 使用管理员账号登录到数据库中。 2. 执行以下SQL语句,停止所有使用归档日志的进程。 SQL> ALTER system SWITCH logfile; SQL> ALTER system SWITCH logfile; SQL> ALTER system SWITCH logfile; SQL> SHUTDOWN immidiate; 3. 使用以下命令释放归档日志。 SQL> startup mount; SQL> ARCHIVE LOG ALL; SQL> ALTER DATABASE OPEN; 4. 最后,启动之前停止的进程。 SQL> ALTER system ARCHIVELOG ALL; 以上就是解决ORA-00257错误的完整步骤。需要注意的是,在清空归档日志之前,需要备份相关的数据以保证数据的安全性。同时,也应该定期清空归档日志,避免存储空间不足导致ORA-00257错误的再次发生。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值