ORA-00257: Archiver error. Connect AS SYSDBA only until resolved错误解决

错误原因:服务器分配空间不足,数据库归档日志满导致系统数据库登陆失败。

解决办法:1、删除以前的日志

                  2、增大归档日志的容量

                  3、关闭归档模式

一、删除以前的容量

1、登录账号后,查看ORACLE_BASE目录

[oracle@localhost ~]$ echo $ORACLE_BASE;

/orc/app/oracle

2、进入数据库操作界面

[oracle@localhost ~]$ sqlplus / as sysdba;

3、查看flash recovery area的使用情况

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.9                         0               255

BACKUPPIECE                   0                         0               0

IMAGECOPY                     0                         0               0

FLASHBACKLOG                  0                         0               0

注:可以看出,ARCHIVELOG日志已经达到99.9%了。造成归档满的原因是因为有一个用户在做大量更新操作,由于更新操作产生大量重做日志,归档日志切换频繁。解决方法是要把大量归档日志清除掉!

4、差看recovery目录

SQL> show parameter recovery;

NAME                                 TYPE

------------------------------------ ---------------------------------

VALUE

------------------------------

db_recovery_file_dest                string

/orc/app/oracle/fast_recovery_

area/orcl

db_recovery_file_dest_size           big integer

8016M

db_unrecoverable_scn_tracking        boolean

TRUE

recovery_parallelism                 integer

0

5、退出数据库命令后,进入/orc/app/oracle/fast_recovery_area/orcl/ORCL/archivelog文件夹下保留最近日期的一个文件夹,删除其他的文件夹。

6、使用rman维护控制文件,否则空间显示仍不释放。

[oracle@localhost ~]$ rman target sys/pass

恢复管理器: Release 12.2.0.1.0 - Production on 星期四 9月 3 17:55:59 2020

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

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

***************************

Rman target sys/oracle@db 其中sys是用户名,密码是oracle,@后面数据库实例

7、检查错误文档

RMAN> crosscheck archivelog all;

检查控制文件和实际物理文件的差别

8、删除过期文档

RMAN> delete expired archivelog all;

delete expired删除的是那些本来RMAN以为存在但是实际上在磁盘或者磁带上已经被删除了的信息,删除的只是RMAN资料库中的记录

9、删除截止到前一天所有的archivelog

RMAN> delete archivelog until time 'sysdate-1';

 删除截止到前一天的所有archivelog

10、退出

RMAN> exit();

11、再次进入sql查询使用率(执行2-3步)

  FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
  ------------ ------------------ ------------------------- ---------------
  CONTROLFILE                 .13                         0               1
  ONLINELOG                  2.93                         0               3
  ARCHIVELOG                23.03                         0              36
  BACKUPPIECE                   0                         0               0
  IMAGECOPY                     0                         0               0
  FLASHBACKLOG                  0                         0               0

二、数据库中查看归档日志的存储大小以及修改存储容量

SQL> show parameter db_recover;

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
db_recovery_file_dest                string
/opt/oracle/flash_recovery_are
a
db_recovery_file_dest_size           big integer
20G

修改db_recovery_file_dest_size大小为500G

alter system set db_recovery_file_dest_size=500G scope=spfile(需要重启DB生效)

---------------------------------------------------------------------------------------------------------------------------------------

Oracle 里面有个叫做spfile的东西,就是动态参数文件,里面设置了Oracle 的各种参数。所谓的动态,就是说你可以在不关闭数据库的情况下,更改数据库参数,记录在spfile里面。更改参数的时候,有4种scope选项。scope就是范围
++ scope=spfile 仅仅更改spfile里面的记载,不更改内存,也就是不立即生效,而是等下次数据库启动生效。有一些参数只允许用这种方法更改
++ scope=memory 仅仅更改内存,不改spfile。也就是下次启动就失效了
++ scope=both 内存和spfile都更改
++ 不指定scope参数,等同于scope=both.

三、修改为无归档日志模式

开启归档日志模式

1、登录服务端:sqlplus / as sysdba;

2、查询归档模是否开启:archive log list;

3、关闭数据库:shutdown immediate;

4、开启数据库至mount状态:startup mount;

5、修改数据库模式:alter database archivelog;

6、开启数据库:alter database open;

7、查看归档日志是否开启:archive log list; 

关闭归档日志模式

1、登录服务端:sqlplus / as sysdba;

2、关闭数据库:shutdown immediate;

3、打开数据库:startup mount; 

4、关闭归档日志:alter database noarchivelog; 

5、开启数据库:alter database open; 

6、查看归档日志是否关闭:archive log list ; 

  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORA-00257错误是一个归档错误,这意味着数据库的归档进程无法将归档日志文件写入到预定的目标位置。当这种情况发生时,连接到数据库的用户只能使用SYSDBA特权连接,直到该问题解决为止。 解决这个问题的方法有多种。一种常见的解决方案是增加归档日志目标的空间,以便容纳更多的归档日志文件。这可以通过删除旧的归档日志文件或将归档日志文件移到另一个位置来实现。另外,也可以考虑将归档模式更改为非归档模式,以避免归档错误的发生。 另一个解决方案是执行数据库的恢复操作,以解决归档错误。这可以通过使用隐藏参数和重置日志文件来实现。首先,使用SYSDBA特权连接到数据库并启动数据库到挂载状态。然后,使用隐藏参数"_allow_resetlogs_corruption"设置为true,这将允许重置日志文件。接下来,强制重新启动数据库到挂载状态,并执行数据库的恢复操作直到取消。最后,使用resetlogs选项打开数据库,并确认数据库状态为OPEN。 需要注意的是,在执行任何恢复操作之前,请确保你对数据库的备份和恢复操作有足够的了解,并且在执行操作前进行适当的计划和备份。另外,如果你不确定如何处理这个问题,建议咨询专业的数据库管理员或Oracle支持团队以获取帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [oracle报错解决](https://blog.csdn.net/weixin_40548182/article/details/125873152)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [基于ORA-19815闪回空间爆满问题的处理方法](https://download.csdn.net/download/weixin_38569675/13703337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值