oracle报错:ORA-00257: 归档程序错误。在释放之前仅限于内部连接
2018-03-27 13:50
417 查看
应用场景:线上user会员登录系统无法登录,查看user日志,发现报错:ORA-00257: 归档程序错误。在释放之前仅限于内部连接
原因分析:FLASH_RECOVERY_AREA 设置空间为60G。归档日志占满了FLASH_RECOVERY_AREA 的空间,就出现了以上的错误。
解决方案:
方法一:改变了FLASH_RECOVERY_AREA的大小
SQL>alter system setdb_recovery_file_dest_size=100G scope=both;
SQL> show parameter db_recovery_file_dest_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 100G
方法二:删除归档日志
2.1 查看归档日志所在位置
SQL> show parameter recover;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/rdbms/archivelog/
db_recovery_file_dest_size big integer 100G
db_unrecoverable_scn_tracking boolean TRUE
recovery_parallelism integer 0
2.2 到具体的位置把归档文件删除
[oracle@kmb2b-db01 root]$ cd /u01/app/oracle/rdbms/archivelog/KMB2B/archivelog/
[oracle@kmb2b-db01 archivelog]$ rm -rf 2017_*
2.3 查看使用率
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
2.4 然后用户用rman进入把归档日志删除
>rman target/
>crosscheck archivelogall;
>delete expired archivelog all;
>exit
注:删除过期的归档或者删除指定时间之前的archivelog:
DELETE ARCHIVELOG ALL COMPLETED BEFORE'SYSDATE-7';(指定删除7天前的归档日志)
方法三:使用脚本自动化删除归档日志
[oracle@kmb2b-db01 init]$ cat oracle_del_archivelog.sh
#!/bin/bash
export ORACLE_SID=kmb2b
export TERM=vt100
export ORACLE_BASE=/u01/app/oracle/rdbms
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export ORACLE_DOC=$ORACLE_BASE/doc
export TMP=/tmp
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL32UTF8'
source /home/oracle/.bash_profile
$ORACLE_HOME/bin/rman target / <<EOF
crosscheck archivelog all;
delete force noprompt archivelog all completed before 'sysdate-30';
exit;
EOF
原因分析:FLASH_RECOVERY_AREA 设置空间为60G。归档日志占满了FLASH_RECOVERY_AREA 的空间,就出现了以上的错误。
解决方案:
方法一:改变了FLASH_RECOVERY_AREA的大小
SQL>alter system setdb_recovery_file_dest_size=100G scope=both;
SQL> show parameter db_recovery_file_dest_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 100G
方法二:删除归档日志
2.1 查看归档日志所在位置
SQL> show parameter recover;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/rdbms/archivelog/
db_recovery_file_dest_size big integer 100G
db_unrecoverable_scn_tracking boolean TRUE
recovery_parallelism integer 0
2.2 到具体的位置把归档文件删除
[oracle@kmb2b-db01 root]$ cd /u01/app/oracle/rdbms/archivelog/KMB2B/archivelog/
[oracle@kmb2b-db01 archivelog]$ rm -rf 2017_*
2.3 查看使用率
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
2.4 然后用户用rman进入把归档日志删除
>rman target/
>crosscheck archivelogall;
>delete expired archivelog all;
>exit
注:删除过期的归档或者删除指定时间之前的archivelog:
DELETE ARCHIVELOG ALL COMPLETED BEFORE'SYSDATE-7';(指定删除7天前的归档日志)
方法三:使用脚本自动化删除归档日志
[oracle@kmb2b-db01 init]$ cat oracle_del_archivelog.sh
#!/bin/bash
export ORACLE_SID=kmb2b
export TERM=vt100
export ORACLE_BASE=/u01/app/oracle/rdbms
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export ORACLE_DOC=$ORACLE_BASE/doc
export TMP=/tmp
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL32UTF8'
source /home/oracle/.bash_profile
$ORACLE_HOME/bin/rman target / <<EOF
crosscheck archivelog all;
delete force noprompt archivelog all completed before 'sysdate-30';
exit;
EOF
相关文章推荐
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接 .
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- oracle10g遇到ORA-00257归档程序错误,在释放之前仅限于内部连接
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- 解决ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- ORA-00257:程序归档错误,在释放之前仅限于内部连接
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- ORA-00257 归档程序错误,在释放之前仅限于内部连接
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- ORA-00257: 归档程序错误。在释放之前仅限于内部连接
- ora-00257:归档程序错误,在释放之前仅限于内部链接如何解决
- 归档程序错误。在释放之前仅限于内部连接
- 归档程序错误。在释放之前仅限于内部连接
- 今天早上刚刚碰到的一个问题oracle数据归档已满,只能进行内部连接,ORA-00257 archiver error. 错误的处理方法