千家信息网

ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法oracle数据库做了实时同步功能,同步必须要打开归档日志功能
千家信息网最后更新 2026年11月01日ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法

ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法

oracle数据库做了实时同步功能,同步必须要打开归档日志功能


1. 用sys用户登录

sqlplus sys/password as sysdba;


2. 看看archiv log有那些日志

SQL> show parameter log_archive_dest;


3. 可以用archive log list 检查一下log sequence

SQL> archive log list;


4. 检查flash recovery area的使用情况,可以看见archivelog已经很大了,达到97

SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;


5. 计算flash recovery area已经占用的空间

SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;


6. 查看日志所在目录及日志空间设置的最大值:

SQL> show parameter db_recovery_file_dest;


用Rman转移或清除对应的归档日志, 删除一些不用的日期目录的文件,注意保留最后几个文件

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

注意:

如果直接删除归档日志后,必须用RMAN维护控制文件,否则空间显示仍然不释放。

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


7. rman target sys/pass


8. 检查一些无用的archivelog

RMAN> crosscheck archivelog all;


9. 删除过期的归档

RMAN> delete expired archivelog all;

delete archivelog until time 'sysdate-1' ; 删除截止到前一天的所有archivelog

10. 再次查询,发现使用率正常,已经降下來

SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;


下面的命令用于校验归档日志的有效性,列出无效的归档日志,以及以何种方式清除归档日志,列出几种常用的:

crosscheck archivelog all; --->校验日志的可用性

list expired archivelog all; --->列出所有失效的归档日志

delete archivelog until sequence 16; --->删除log sequence为16及16之前的所有归档日志

delete archivelog all completed before 'sysdate-7'; --->删除系统时间7天以前的归档日志,不会删除闪回区有效的归档日志

delete archivelog all completed before 'sysdate - 1'; --->同上,1天以前的

delete archivelog from time 'sysdate-1'; --->注意这个命令,删除系统时间1天以内到现在的归档日志

delete noprompt archivelog all completed before 'sysdate'; --->该命令清除所有的归档日志

delete noprompt archivelog all; --->同上一命令

其它有用的Command:

如果archive log模式下不能正常startup,则先恢复成noarchive log,startup成功后,再shutdown;

shutdown immediate;

startup mount;

alter database noarchivelog;

alter database open;

shutdown immediate;

再次startup以archive log模式

shutdown immediate;

startup mount;

show parameter log_archive_dest;

alter database archivelog;

archive log list;

alter database open;

如果还不行,则删除一些archlog log

SQL> select group#,sequence# from v$log;

原来是日志组一的一个日志不能归档

SQL> alter database clear unarchived logfile group 1;

SQL> alter database open;

最后,也可以指定位置Arch Log, 请按照如下配置

SQL> select name from v$datafile;

SQL> alter system set log_archive_dest='/u/app/admin/backup' scope=spfile

或者修改大小

SQL> alter system set db_recovery_file_dest_size=100G scope=both;


备注:应该是scope=both和scope=spfile

Oracle 里面有个叫做spfile的东西,就是动态参数文件,里面设置了Oracle 的各种参数。所谓的动态,就是说你可以在不关闭数据库的情况下,

更改数据库参数,记录在spfile里面。更改参数的时候,有4种scope选项。scope就是范围

++ scope=spfile 仅仅更改spfile里面的记载,不更改内存,也就是不立即生效,而是等下次数据库启动生效。有一些参数只允许用这种方法更改

++ scope=memory 仅仅更改内存,不改spfile。也就是下次启动就失效了

++ scope=both 内存和spfile都更改

++ 不指定scope参数,等同于scope=both.

将归档日志方式进行设定

一 设置为归档方式

Sql代码

sql> archive log list; #查看是不是归档方式

sql> alter system set log_archive_start=true scope=spfile; #启用主动归档

sql> alter system set log_archive_dest=''location=/oracle/ora11/oradata/arch'' scope=spfile;#设置归档路径

sql> alter system set log_archive_dest_1=''location=/oracle/ora11/oradata/arch2'' scope=spfile;

sql> alter system set log_archive_dest_2=''location=/oracle/ora11/oradata/arch3'' scope=spfile;

#如果归档到两个位置,则可以通过上边方法实现

sql> alter system set log_archive_format=''arch_%d_%t_%r_%s.log'' #设置归档日记款式

sql> shutdown immediate;

sql> startup mount; #打开控制文件,不打开数据文件

sql> alter database archivelog; #将数据库切换为归档模式

sql> alter database open; #将数据文件打开

sql> archive log list; #查看此时是否处于归档模式

查询以确定数据库位于archivelog模式中且归档过程正在运行

sql> select log_mode from v$database;

sql> select archiver from v$instance;


Sql代码

日志切换

sql> alter system switch logfile;

这次日志切换将归档写到两个目标地,

即上边的/oracle/ora11/oradata/arch2和/oracle/ora11/oradata/arch3,

要是要对目录确认

在oracle情况中运行如下查询:

sql> select name from v$archived_log;

而后在操作系统中确认查询所列出的文件


二 设置非归档方式

Sql代码

sql> archive log list; #查看是否是归档方式

sql> alter system set log_archive_start=false scope=spfile;

#禁用自动归档

sql> shutdown immediate;

sql> startup mount; #打开控制文件,不打开数据文件

sql> alter database noarchivelog; #将数据库切换为非归档模式

sql> alter database open; #将数据文件打开

sql> archive log list; #查看此时便处于非归档模式


三 归档相关命令

Sql代码

sql> archive log stop;

sql> archive log start;

sql> archive log list;

sql> show parameters;

sql> show parameters log_archive_start;

sql> show parameters log_archive_max_process; #归档进程数

sql> alter system set log_archive_max_process=5; #将归档进程数改为5

sql> select * from v$bgprocess; #检察后台进程

日志 数据 文件 数据库 模式 参数 方式 代码 命令 切换 查询 方法 内存 就是 情况 目录 空间 系统 进程 控制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网高科技 科技平台互联网 互联网科技会 上海挚品互联网科技 奇酷互联网科技公司 成都仁贤领冠互联网科技有限公司 昭通云南众福互联网科技有限公司 互联网校园科技培训 武汉健翔互联网络科技有限公司 互联网科技研发水平 徐州市互联网科技有限公司 区块链结合互联网科技 互联网方面的科技前沿 雨阳互联网卡科技有限公司 皮皮虾互联网科技有限公司 互联网科技股为什么大涨 扫呗互联网科技有限公司 互联网科技手机排行榜 科技互联网经济论坛 互联网科技创业有什么好项目 互联网科技网站 狮子座互联网科技培训 现代科技和互联网有关系吗 互联网系的金融科技公司 玉溪互联网科技怎么选 中国科技创新与世界互联网大会 济南有互联网科技公司吗 滨湖区互联网智能科技产品有哪些 深圳互联网科技的发展 玉溪新华互联网科技怎么选
0