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 ;

相关推荐
wei_shuo12 分钟前
KES 扩展与插件开发实战:自定义函数、触发器与第三方插件集成
数据库·kes
风中芦苇啊1 小时前
从直接生成到受控配置:新一代图表Agent的SQL安全生成范式
数据库·sql·安全
吴声子夜歌1 小时前
SQL进阶——窗口函数
数据库·sql
周杰伦的稻香1 小时前
MySQL8.0+中引入的SET_USER_ID权限迭代SUPER权限指定 DEFINER
数据库·mysql
动恰客流统计1 小时前
客流统计如何结合AI分析?从传统计数到智能决策的技术升级路径
数据库·人工智能·边缘计算
宠友信息2 小时前
多端数据互通场景下Spring Boot仿小红书源码结构设计
数据库·spring boot·redis·缓存·架构
风曦Kisaki2 小时前
#Linux数据库管理Day06:主从同步与MaxScale读写分离
linux·运维·数据库
影寂ldy3 小时前
C# try-catch 异常处理全套笔记
服务器·数据库·c#
长不胖的路人甲3 小时前
Redis 缓存的数据持久化方案讲解
数据库·redis·缓存
长不胖的路人甲3 小时前
Redis 单线程为什么速度很快
数据库·redis·缓存