博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ORA-00257 archiver error. 错误的处理方法
阅读量:6976 次
发布时间:2019-06-27

本文共 5179 字,大约阅读时间需要 17 分钟。

archive log 日志已满

方法/步骤

  1. 1

    SecureCRT登录服务器,切换用户oracle,连接oracle

    [root@userbeta~]# su - oracle

    [oracle@userbeta~]$ sqlplus /nolog

    SQL> connect /as sysdba

  2. 2

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

    SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;

  3. 3

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

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

  4. 4

    修改FLASH_RECOVERY_AREA的空间修改为6GB,修改前确认磁盘有足够空间

    SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=8g;

  5. 5

    现在来清理一下archivelog归档日志,生产环境建议备份

    查询日志目录位置

    show parameter recover;

    删除归档日志,USERDB是数据库实例名

    cd /u01/app/oracle/flash_recovery_area/USERDB/archivelog

    使用root帐户删除该目录下的文件或者备份其它地方

  6. 6

    使用rman 操作,内容太多,只做部分截图

    [oracle@userbeta archivelog]$ rman

    RMAN> connect target sys/sys_passwd

    crosscheck backup;

    delete obsolete;

    delete expired backup;

    crosscheck archivelog all;

    delete expired archivelog all;

    //此步会有提示,输入 YES 回车

    host;   //退出rman

  7. 7

    确认是否操作成功

    #  sqlplus /nolog

    SQL>  connect /as sysdba

    SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;

  8. 8

    删除完成,重新连接数据库

    END


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

1. 用sys用户登录


sqlplus sys/pass@tt  sysdba

2. 看看archiv log所在位置


> show parameter log_archive_dest;	NAME                                     TYPE        ------------------------------------ ----------- ------------------------------log_archive_dest                   string	log_archive_dest_1               string	log_archive_dest_10             string

3. 一般VALUE为空时,可以用archive log list;检查一下归档目录和log sequence


 
> archive log list;	 log mode                 Archive Mode	Automatic archival                   Enabled	Archive destination                  USE_DB_RECOVERY_FILE_DEST	Oldest online log sequence     360	 log sequence  archive  360	 log sequence              362

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


 
>  *  V$FLASH_RECOVERY_AREA_USAGE;FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES------------ ------------------ ------------------------- ---------------CONTROLFILE                 .13                        0               1	ONLINELOG                  2.93                        0               3	ARCHIVELOG                96.62                       0              141	BACKUPPIECE                   0                         0               0	IMAGECOPY                      0                         0               0	FLASHBACKLOG                0                         0               0

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


>  (percent_space_used)*3/100  v$flash_recovery_area_usage;	(PERCENT_SPACE_USED)*3/100-----------------------------                       2.9904

6. 找到recovery目录, show parameter recover


 
> show parameter recover;NAME                                 TYPE        ------------------------------------ ----------- ------------------------------db_recovery_file_dest                string           /u01/app/oracle/flash_recovery_area	db_recovery_file_dest_size        big    5G	recovery_parallelism                            0

7 上述结果告诉我们,归档位置用的是默认值,放在flash_recovery_area下(db_recovery_file_dest目录=/u01/app/oracle/flash_recovery_area)


 
[root@sha3 10.2.0]# echo $ORACLE_BASE	/u01/app/oracle	[root@sha3 10.2.0]# cd $ORACLE_BASE/flash_recovery_area/tt/archivelog

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

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

注意:

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

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

8. rman target sys/pass


 
[root@sha3 oracle]# rman target sys/passRecovery  Manager: Release 10.2.0.4.0 - Production  Tue Jan 20 01:41:26 2009	Copyright (c) 1982, 2007, Oracle.   rights reserved.	connected  target : tt (DBID=4147983671)

 

9. 检查一些无用的archivelog


 
RMAN> crosscheck archivelog ;

10. 删除过期的归档


RMAN>  expired archivelog ;	 archivelog until  'sysdate-1' ; 删除截止到前一天的所有archivelog

11. 再次查询,发现使用率正常,已经降到23.03


 
>  *  V$FLASH_RECOVERY_AREA_USAGE;	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其它有用的Command:----------------------------------如果archive log模式下不能正常startup,则先恢复成noarchive log,startup成功后,再shutdown;	 ;	startup mount;	  noarchivelog;	  ;	 ;再次startup以archive log模式 ;	startup mount;	show parameter log_archive_dest;	  archivelog;	archive log list;	  ;如果还不行,则删除一些archlog log	>  #,sequence#  v$log;	    # SEQUENCE#---------- ----------         1         62	         3         64	         2         63原来是日志组一的一个日志不能归档>   clear unarchived logfile  1;	  ;最后,也可以指定位置Arch Log, 请按照如下配置 name  v$datafile;	 system  log_archive_dest='/opt/app/oracle/oradata/usagedb/arch' scope=spfile或者修改大小>  system  db_recovery_file_dest_size=3G scope=;

转载于:https://www.cnblogs.com/ios9/p/9716696.html

你可能感兴趣的文章
设置编码格式为utf8
查看>>
java web项目优化记录:优化考试系统
查看>>
weblogic线程阻塞性能调优(图解)
查看>>
spring-redis-data的一个坑
查看>>
[20180412]订阅+镜像切换
查看>>
stylus使用文档总结:内置方法+参数+条件+迭代+导入+继承
查看>>
模式的秘密-观察者模式(四)
查看>>
JAVA多线程之Synchronized、wait、notify实例讲解
查看>>
HDU 1258 Sum It Up (DFS)
查看>>
软件破解工具整理收集
查看>>
Bat命令学习
查看>>
Nhibernate3循序渐进(三): 一对多映射和级联保存
查看>>
对职业生涯的思考
查看>>
SQL Server用户自定义函数
查看>>
关于静态方法的使用方式
查看>>
hi35183e增加exfat文件系统的支持
查看>>
Android媒体相关开发应用程序接口
查看>>
asp.net 2.0中新增的AppendDataBoundItems .dropdownlist 添加第一项
查看>>
SQL Server 2008之WaitFor
查看>>
NYOJ 48
查看>>