连接Oracle报错 ORA-00257

早上公司开发反映说开发环境数据库挂掉了,不能写入,现场报如下的错误提示。
ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法。
这是很常见的‘归档日志’写满‘快闪恢复区’(flash recovery area)导致的问题。具体的解决方法分为三种(可搭配起来使用):
一是 删除过期的归档文件;
二是 更改快闪恢复区(flash recovery area)的大小;
三是 修改归档日志文件默认路径。


第一部分:了解你的数据库环境,明白问题出在哪里,可跳过(主要为新手学习)
1.1 用sys用户登录

 sqlplus sys/pass@orcl as sysdba


1.2 看看archiv log所在位置
SQL> show parameter log_archive_dest_1;
NAME                  TYPE      VALUE
-------------------- --------  --------------------
log_archive_dest_1    string 
log_archive_dest_10   string
默认log_archive_dest_1的VALUE值为空,代表了归档日志路径使用默认值,即使用快闪恢复区。


1.3  找到recovery目录,并查看快闪恢复区最大值
SQL> show parameter recover;
NAME                         TYPE       VALUE
-------------------------- ----------- ------------------------------
db_recovery_file_dest       string      /home/oracle/flash_recovery_area
db_recovery_file_dest_size  big integer 512M
recovery_parallelism        integer      0

1.4 查看快闪恢复区flash_recovery_area使用情况
[root@DB104 ~]# du -h --max-depth=1 /home/oracle/flash_recovery_area/
1M /home/oracle/flash_recovery_area/ORCL
511M /home/oracle/flash_recovery_area/orcl
512M /home/oracle/flash_recovery_area/
这里看到磁盘的使用已经达到的快闪恢复区(1.3中)的最大值.

第二部分:解决问题的三种方法

2.1 方法一:删除过期的归档文件

  2.1.1 进入归档目录,删除/转移过期的归档文件,可保留最近几天的文件

[root@DB104 ~]# cd /home/oracle/flash_recovery_area/ORCL/archivelog

  2.1.2 使用RMAN维护控制文件,释放空间

[oracle@DB104 ~]$ rman target sys/password
RMAN> crosscheck archivelog all; ——检查所有归档日志
RMAN> delete expired archivelog all; ——删除过期的归档日志
问题解决,可通过1.5语句查看快闪恢复区使用大小


2.2  方法二:扩大快闪恢复区(flash recovery area)的大小;

SQL> alter system set db_recovery_file_dest_size=50G scope=both;
NAME                        TYPE        VALUE
--------------------------- ----------- ------------------------------
db_recovery_file_dest       string       /home/oracle/flash_recovery_area
db_recovery_file_dest_size  big integer  50G
recovery_parallelism        integer      0

2.3  方法三:修改归档日志文件到指定路径(自定义)
SQL>alter system set log_archive_dest_1='location=/home/oracle/log_archive_dest' scope=spfile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值