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

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

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

2、增大归档日志的容量

3、关闭归档模式

一、删除以前的容量

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

oracle@localhost \~\]$ echo $ORACLE_BASE; /[orc](https://so.csdn.net/so/search?q=orc&spm=1001.2101.3001.7020 "orc")/app/oracle **2、进入数据库操作界面** \[oracle@localhost \~\]$ [sqlplus](https://so.csdn.net/so/search?q=sqlplus&spm=1001.2101.3001.7020 "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](https://so.csdn.net/so/search?q=recovery&spm=1001.2101.3001.7020 "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 ;

相关推荐
松涛和鸣3 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
likangbinlxa3 小时前
【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
数据库·sql
r i c k4 小时前
数据库系统学习笔记
数据库·笔记·学习
野犬寒鸦4 小时前
从零起步学习JVM || 第一章:类加载器与双亲委派机制模型详解
java·jvm·数据库·后端·学习
IvorySQL5 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·5 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德5 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫5 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i5 小时前
完全卸载MariaDB
数据库·mariadb
纤纡.5 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql