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

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

RA-00257: archiver error. Connect internal only, until freed
的错误,之后怎么连接都连接不上。

之前也见过这种问题,想起可能是归档日志满了,%oracle_home%\10.1.0\flash_recovery_area\下面看了一下,大概有5个G的日志。
想应该是归档日志太大了,当时又是了几下,还是登录不上数据库。
看了些网上的资料,有用的较少。
本次的实验如下:
1)我把数据库的“tnsname”文件的共享模式改成专有模式。
2)重新启动了一下监听和服务
3)再次用sys用户登录
这次奇迹般的登录进去了。
sqlplus sys/password@oracle as sysdba。 sys是用户名,oracle是数据库名字

后面的就是清除归档文件了。


登录oracle显示上面的错误 

以下是公司大师给出的步骤,谨记录备用: 
1、手工删除归档日志的文件夹(按日期那种) 
2、在oracle用户下以rman target / 
3、crosscheck archivelog all; 
4、delete expired archivelog all;-- 这里删除了一些与第1步中删除的文件日期匹配的文件,目前研究还不深入,不清楚它们之间具体的联系  
5、exit; 

--如果发现归档日志的空间快使用完了,而没有出现00257的错误,只做到这一步就够了,不用再进行下面的步骤了 
--查询归档日志使用的sql:select * from v$flash_recovery_area_usage; 

6、接下来是在sqlplus中的操作: 
Oracle sqlplus代码   收藏代码
  1. SQL> conn / as sysdba  
  2. Connected.  
  3. SQL> shutdown immediate  
  4. ORA-01013: user requested cancel of current operation  
  5. //一直停不掉,就ctl+c中断了  
  6.   
  7. //再试一次  
  8. SQL> shutdown immediate  
  9. ORA-01013: user requested cancel of current operation  
  10. //还是停不掉,再次ctl+c中断  
  11.   
  12. //强行停止吧  
  13. SQL> shutdown abort  
  14. ORACLE instance shut down.  
  15.   
  16. //再次启动  
  17. SQL> startup                                            
  18. ORACLE instance started.  
  19.   
  20. Total System Global Area 1610612736 bytes  
  21. Fixed Size                  1267740 bytes  
  22. Variable Size             452986852 bytes  
  23. Database Buffers         1140850688 bytes  
  24. Redo Buffers               15507456 bytes  
  25. Database mounted.  
  26. ORA-16014: log 2 sequence# 101 not archived, no available destinations  
  27. ORA-00312: online log 2 thread 1'/oracle/oradata/orcl/redo02.log'  
  28. ORA-00312: online log 2 thread 1:  
  29. '/backup/oracle_archive/redo_data/redo2/redo021.log'  
  30. //数据库没有打开,报上面的错误  
  31.   
  32. SQL> show parameter db_recovery_file_dest_size;  
  33.   
  34. NAME                                 TYPE        VALUE  
  35. ------------------------------------ ----------- ------------------------------  
  36. db_recovery_file_dest_size           big integer 4G  
  37. SQL> select group#,sequence#,archived,status from v$log;  
  38.   
  39.     GROUP#  SEQUENCE# ARC STATUS  
  40. ---------- ---------- --- ----------------  
  41.          1        103 NO  CURRENT  
  42.          3        102 NO  INACTIVE  
  43.          2        101 NO  INACTIVE  
  44.   
  45. //搞一搞SEQUENCE号最小的一个  
  46. SQL> alter database clear logfile group 2;  
  47. alter database clear logfile group 2  
  48. *  
  49. ERROR at line 1:  
  50. ORA-00350: log 2 of instance orcl (thread 1) needs to be archived  
  51. ORA-00312: online log 2 thread 1'/oracle/oradata/orcl/redo02.log'  
  52. ORA-00312: online log 2 thread 1:  
  53. '/backup/oracle_archive/redo_data/redo2/redo021.log'  
  54.   
  55. SQL> alter database clear unarchived logfile group 2;  
  56.   
  57. Database altered.  
  58.   
  59. SQL> alter database open;  
  60.   
  61. Database altered. 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ORA-00257Oracle数据库中的一个错误代码,表示归档错误。错误信息中的“connect internal only, until freed”表示只有内部连接才能解决这个问题,直到空间释放为止。这个错误通常是由于归档日志文件已满或磁盘空间不足导致的。要解决这个问题,可以通过删除旧的归档日志文件或增加磁盘空间来释放空间。 ### 回答2: ORA-00257Oracle数据库中常见的错误之一,它表示归档器发生故障,无法继续归档。这个错误经常出现在数据库空间不足或者磁盘空间不足的情况下。另外,当出现一个归档进程正在使用或者另一个归档进程正在进行数据转储时,也可能出现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-00257Oracle数据库中的一个错误代码,表示出现了归档器错误,只能通过内部连接访问,直到释放。 当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、付费专栏及课程。

余额充值