• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

ORA-00257 archiver error. 错误解决方法一例

mysql 搞代码 4年前 (2022-01-09) 15次浏览 已收录 0个评论

在这个DELETE 语句中子查询是报错的因为没有C_ID这个字段、所以JEW_LOG这张表就糟殃了数据98292条记录直接被删除、幸亏一直以来养

在此发现一个Oracle漏动,eg:

DELETE JEW_LOG WHERE C_ID IN (SELECT C_ID FROM BAS_BATCHNO WHERE C_WARID=’028′ AND C_BATCHNOTYPE=’P’)

在这个DELETE 语句中子查询是报错的因为没有C_ID这个字段、所以JEW_LOG这张表就糟殃了数据98292条记录直接被删除、幸亏一直以来养成的好习惯(First delete, after commit).不至于损失数据。赶紧rollback;结果一直在等、发现在连接其他用户进不去了

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

这是因为archive log 日志已满

Linux-6-64下安装Oracle 12C笔记

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

提供下ORA-00257: ar本文来源[email protected]搞@^&代*@码2网chiver error. Connect internal only, until freed 错误解决方法

1. 用sys用户登录
sqlplus sys/pass@ORCL as sysdba
2. 看看archiv log所在位置
SQL> show parameter log_archive_dest;
NAME TYPE VALUE
———————————— ———– ——————————
log_archive_dest string
log_archive_dest_1 string
log_archive_dest_10 string
3. 一般VALUE为空时,可以用archive log list;检查一下归档目录和log sequence
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 360
Next log sequence to archive 360
Current log sequence 362
4. 检查flash recovery area的使用情况,可以看见archivelog已经很大了,达到96.62
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
———— —————— ————————- —————
CONTROLFILE .13 0 1
ONLINELOG 2.93 0 3
ARCHIVELOG 96.62 0 141
BACKUPPIECE 0 0 0
IMAGECOPY 0 0 0
FLASHBACKLOG 0 0 0
5. 计算flash recovery area已经占用的空间
SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
SUM(PERCENT_SPACE_USED)*3/100
—————————–
2.9904

6. 找到recovery目录, show parameter recover
SQL> show parameter recover;
NAME TYPE VALUE
———————————— ———– ——————————
db_recovery_file_dest string /u01/app/oracle/flash_recovery_area
db_recovery_file_dest_size big integer 5G
recovery_parallelism integer 0

7 上述结果告诉我们,归档位置用的是默认值,,放在flash_recovery_area下(db_recovery_file_dest目录=/u01/app/oracle/flash_recovery_area)
[root@sha3 10.2.0]# echo $ORACLE_BASE
/u01/app/oracle
[root@sha3 10.2.0]# cd $ORACLE_BASE/flash_recovery_area/ORCL/archivelog
转移或清除对应的归档日志, 删除一些不用的日期目录的文件,注意保留最后几个文件(比如360以后的)
—————————————————————————————
注意:
在删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。
—————————————————————————————
8. rman target sys/pass
[root@sha3 oracle]# rman target sys/pass
Recovery Manager: Release 10.2.0.4.0 – Production on Tue Jan 20 01:41:26 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: tt (DBID=4147983671)

9. 检查一些无用的archivelog
RMAN> crosscheck archivelog all;
10. 删除过期的归档
RMAN> delete archivelog until time ‘sysdate-1’ ; –删除截止到前一天的所有archivelog

delete expired archivelog all;—-删除所有archivelog
Do you really want to delete the above objects(yes or no) yes

更多详情见请继续阅读下一页的精彩内容:


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:ORA-00257 archiver error. 错误解决方法一例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址