捉虫日志2-解决 Oracle ORA-01033,第二弹,终极原因是归档日志满

本文详细介绍了如何解决Oracle数据库中反复出现的Ora-01033错误,通过分析发现归档日志空间已满是根本原因。提供了使用RMAN进行归档日志清理的具体步骤,包括如何避免版本冲突,以及如何执行归档日志的检查和删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇,给出了Ora-01033解决办法,但是,并没有彻底解决,几次重启关机后仍然出现Ora-01033反复出现错误。

现给出终极解决办法。

 

发现问题-探索根源

Ora-01033反复出现,尝试alter system switch logfile 命令,结果此命令长时间未结束。

Ctrl+c后出现ORA-00257错误。

进入Oracle所在服务器,“D:\oracle\product\10.2.0\db_1\flash_recovery_area\ORCL”发现此文件夹竟然应经达到2GB了

查一查归档日志空间大小


SQL*Plus: Release 11.2.0.1.0 Production on 星期五 3月 13 17:05:56 2020

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

请输入用户名:  /as sysdba

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> show parameter log_archive_dest;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest                     string
log_archive_dest_1                   string
log_archive_dest_10                  string
log_archive_dest_2                   string
log_archive_dest_3                   string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string
log_archive_dest_7                   string
log_archive_dest_8                   string
log_archive_dest_9                   string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_1             string      enable
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable
SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     543
下一个存档日志序列   543
当前日志序列           545
SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE                   0                         0               0
ONLINELOG                     0                         0               0
ARCHIVELOG                99.99                         0             133
BACKUPPIECE                   0                         0               0
IMAGECOPY                     0                         0               0
FLASHBACKLOG                  0                         0               0

已选择6行。

SQL> show parameter recover

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      D:\oracle\product\10.2.0\db_1/
                                                 flash_recovery_area
db_recovery_file_dest_size           big integer 2G
recovery_parallelism                 integer     0
SQL>

其中 ARCHIVELOG                99.99

并且db_recovery_file_dest_size           big integer 2G

 

根源发现:根源是归档日志已满。

 

解决问题

打开cmd,使用rman进行归档日志清理。

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>set ORACLE_SID=ORCL

C:\Users\Administrator>rman target /

恢复管理器: Release 11.2.0.1.0 - Production on 星期五 3月 13 17:16:06 2020

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

恢复管理器与 TARGET 数据库不兼容: 要求 RMAN 8.0.4.0 到 10.2.0.0
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: 内部恢复管理器程序包初始化失败
RMAN-06429: TARGET数据库与该版本的 RMAN 不兼容

C:\Users\Administrator>cd D:\oracle\product\10.2.0\client_1\BIN

C:\Users\Administrator>rman target /

恢复管理器: Release 11.2.0.1.0 - Production on 星期五 3月 13 17:18:07 2020

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

恢复管理器与 TARGET 数据库不兼容: 要求 RMAN 8.0.4.0 到 10.2.0.0
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: 内部恢复管理器程序包初始化失败
RMAN-06429: TARGET数据库与该版本的 RMAN 不兼容

C:\Users\Administrator>cd D:\oracle\product\10.2.0\client_1\BIN

C:\Users\Administrator>d:

D:\oracle\product\10.2.0\client_1\BIN>rman target /

恢复管理器: Release 10.2.0.1.0 - Production on 星期五 3月 13 17:21:10 2020

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

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

RMAN>

因为本机安装了多个Oracle版本导致rman打开不兼容,重新打开cmd窗口,设置实例名后,直接rman target /会找到11gclient的rman,需要手动cd切换到10g的目录cd D:\oracle\product\10.2.0\client_1\BIN下再执行rman taget /

核心步骤

在rman中进行归档日志删除。

登录rman,检查一些无用的archivelog

下面步骤参考了:https://blog.51cto.com/pimg2005/857879,感谢作者。

 

  • 命令>crosscheck archivelog all;  (列出归档日志信息)
  • 命令>delete expired archivelog all;  (将上述列出的归档日志删除)
  • 命令>delete archivelog until time 'sysdate-1' ; 删除截止到前一天的所有archivelog
  • 命令>exit;

部分截图如下

再次查看占用率,已经降低到0.12%了。

 

至此,问题解决。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值