zoukankan      html  css  js  c++  java
  • 归档日志充满的问题解决

    在配置流复制环境时,将数据库配置为归档模式后,在执行流配置时卡住了,查日志文件发现是日志文件无法归档,于是手工强制归档,出现了如下错误:

    SQL> archive log next

    ORA-16014: 日志 3 的序列号 127 未归档, 没有可用的目的地

    ORA-00312: 联机日志3线程1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\REDO03.LOG'

    于时检查归档文件的参数log_archive_destdb_recovery_file_dest,没有发现问题,又检查了文件夹的NTFS权限,也没有问题。又执行下面的归档命令发现:

    SQL> archive log all

    ORA-16020: 可用的目的地少于由 LOG_ARCHIVE_MIN_SUCCEED_DEST 指定的数量

           到后来,数据库重启后根本打不开了,只能启动到Mout状态。

    SQL> alter database open;

    alter database open

    *

    1 行出现错误:

    ORA-16014: 日志 3 的序列号 127 未归档, 没有可用的目的地

    ORA-00312: 联机日志 3 线程 1:

    ’ D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\REDO03.LOG’

    查看警告日志文件中发现的错误,怀疑是空间不够,于是修改了参数db_recovery_file_dest_size,由1G改为2G,仍然不够,改为3G后,执行归档正常了。

           感到很奇怪,归档日志所在的盘,可用空间不止3G,已用的归档日志删除后也很少,是什么原因导致Oracle认为归档所需的空间不够呢?

           分析警告日志文件发现有下面的信息:

           Errors in file g:\oracle\product\10.2.0\db_1\admin\orcl\bdump\orcl_arc1_5188.trc:

    ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available.

           看来,确实Oracle认为归档目录的空间满了,继续分析发现联机日志文件使用的是缺省尺寸50M(Oracle 10G的缺省大小),回想起有一段时间数据库是运行在归档模式的,这么大的联机日志归档,当然空间增长很快。

           于是,先重建联机日志文件,改为每个文件5M

           但是,归档日志是删除了的,占用的空间根本就没有2GOracle为什么认为空间不够呢?原来,Oracle内部还记录了这些归档文件的信息,物理文件虽然删除了,但是文件相关的信息仍然在Oracle数据库中,需要使用Rman的命令来清除这些信息。

           RMAN>connect target /

           RMAN>crosscheck archivelog all

           RMAN> delete expired archivelog all

           最后,再修改db_recovery_file_dest_size,改为1G,执行强制归档,一切正常了。

  • 相关阅读:
    若依问题解决(一)
    Java 将两个List转换为流合并List
    后端返回前端文本换行显示,只能在前端再转换
    Java Stream() 流根据对象属性去重
    vue 当前端传回后端,后端使用实体类接收数据显示报错
    js 中 getMonth() 获取的月份比现实少一个月
    vue连个数组对比
    JS链接跳转方法
    ElementUI--表格toggleRowSelection无法选中
    Linux 常用命令
  • 原文地址:https://www.cnblogs.com/zyk/p/946270.html
Copyright © 2011-2022 走看看