Oracle 10g默认归档路径在闪回区的2G空间大小限制问题是本文我们主要要介绍的内容,接下来我们就通过一个实际的例子来开始介绍。实例使这样的,在为客户解决问题时,打开数据解压缩后一看,他们还是用的Oracle 815版本的(他们exp导出时,带了导出日志,从导出日志中看出来是oracle 815版本的),不过没有关系,低版本的exp是可以用高版本的imp导入到高版本数据库中的。
一看是导入还很正常,导入到其中某个表的时候,突然就不动了。一开始我还没有弄明白怎么回事。后来,无意中看到了计算机管理--事件查看器中,有很多报错信息:
Archive process error: ORA-16038: log 1 sequence# 317 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 1 thread 1: 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORACLE/REDO01.LOG'
我这才发现,问题出在了归档上了。
又看了alert_oracle.log文件,也有很多这个报错信息。到这里,这个问题给了我一个教训:与oracle有关的操作,只要有问题,肯定会向alert_oracle.log文件写入日志的,就看你有没有意识去看这个日志文件了。
网上查看资料得知:Oracle 10g在默认情况下,归档日志是保存在闪回恢复区的(对于我的来说是:E:/oracle/product/10.2.0/flash_recovery_area/ORACLE/ARCHIVELOG),如果你建库的时候用的默认设置,闪回恢复区应该是2G,空间被占满了以后就无法再归档了。
此时,我从sqlplus open database,有提示:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:/Documents and Settings/Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 11月 26 17:58:22 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select open_mode from v$database;
OPEN_MODE
----------
MOUNTED
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-16014: 日志 1 的序列号 317 未归档, 没有可用的目的地
ORA-00312: 联机日志 1 线程 1:
'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORACLE/REDO01.LOG'
SQL>
那怎么解决这个问题呢?网上的高手也给出了不少方法(以下的方法为转载,原文地址:http://yaanzy.itpub.net/post/1263/286285 ):
解决方法:
1.将归档设置到其他目录,修改alter system set log_archive_dest = 其他路径。
2.转移或者删除闪回恢复区里的归档日志。
3.增大闪回恢复区。
ALTER SYSTEM SET db_recovery_file_dest_size=4g scope=both;
我的处理方法是采用第3种方法,下边是我的操作过程:
SQL> show parameter db_recovery_file_dest_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 2G
SQL> alter system set db_recovery_file_dest_size=3G;
系统已更改。
SQL> alter database open;
数据库已更改。
SQL> show parameter db_recovery_file_dest_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 3G
SQL>
值得注意的是,我执行完毕alter system set db_recovery_file_dest_size=3G;后,马上又去show parameter db_recovery_file_dest_size;此时显示的是3g了,不是原来的2g了。从另外一个方面来说:E:/oracle/product/10.2.0/db_1/dbs/SPFILEORACLE.ORA这个文件的修改时间,就是我执行alter system set db_recovery_file_dest_size=3G; 这就更证明,此更改马上就生效了。
如果将归档路径下的可用空间扩充到了3G,也就是在原来2G的基础上又加了1G. oracle database下新形成的归档日志,实际上是用的这个新增的1G的空间。也许会有人提出疑问,“那我把原来已经形成的2G归档日志删除掉,oracle database不就能用3G了么?”其实不是这样,虽然在物理空间上,已经删除了2G,但是动态性能视图(v$recovery_file_dest)并没有释放此这2g空间,可以使用select * from v$recovery_file_dest 查询出来。
若你不从动态性能视图里删除这2G的空间,oracle database会认为这2G依然被占用。若是有个大的事物提交,并有频繁的日志切换,1G的空间马上就被用完,到时候你的alert_oracle.log就有错误出现,比如:
ORA-19815: WARNING: db_recovery_file_dest_size of 3221225472 bytes is 100.00% used, and has 0 remaining bytes available.
*** 2008-11-28 10:05:13.375
************************************************************************
You have following choices to free up space from flash recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
system command was used to delete files, then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
************************************************************************
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 47715840 bytes disk space from 3221225472 limit
*** 2008-11-28 10:05:13.406 60680 kcrr.c
ARC0: Error 19809 Creating archive log file to 'E:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/ORACLE/ARCHIVELOG/2008_11_28/O1_MF_1_344_%U_.ARC'
解决以上问题,就需要删除掉动态性能视图中的已占用空间的信息。按照eygle大师在http://www.eygle.com/archives/2005/03/oracle10gecieif.html 一文中的方法,是用rman来删除这些信息。所用到的rman命令如下:
1.是RMAN> crosscheck archivelog all;--此命令的含义是检查所有归档日志的状态,并把遗失的标记为expired,也就是说,expired 表示已经被操作系统中被删除的归档日志。
2.是delete expired archivelog all; --此命令的含义是删除expired的归档日志。
分享到:
相关推荐
在这种情况下,手动指定的路径具有最高的优先级,无论是闪回恢复区还是$ORACLE_HOME/rdbms目录下的默认路径都会被覆盖。 通过上述操作和命令的测试可以观察到,Oracle在选择归档目录位置时遵循一定的优先级顺序: 1...
在Oracle RAC环境中,正确配置归档日志路径至关重要,因为它涉及到数据保护和集群间的协调。 在Oracle RAC集群中修改归档日志路径通常涉及以下步骤: 1. **创建归档日志存放路径**: 在Oracle RAC中,归档日志...
发现默认的归档路径为C:\app\Administrator\flash_recovery_area,而限制使用空间为 3852M。 六、 扩大归档日志空间 可以通过增加磁盘空间并调整db_recovery_file_dest_size参数来扩大归档日志空间。例如,可以将...
本文档主要讲解了如何在Oracle 11g中开启归档模式,并且如何修改归档日志文件的存储位置,这对于数据库的备份和恢复有着重要的意义。 归档模式是Oracle数据库中的一个关键功能,它确保数据库中所有的修改操作都被...
Oracle 10G数据库的归档设置是数据库管理中的一个重要环节,主要目的是为了确保数据的安全性和完整性,特别是在数据库出现故障时能够进行恢复。归档日志记录了数据库的所有更改,以便在系统崩溃或介质故障后进行恢复...
### Oracle 10g 默认用户名、密码解锁 ...通过上述方法,可以有效地解锁Oracle 10g中的默认用户,从而确保数据库管理系统能够正常运行并方便地进行管理和维护。同时,建议在生产环境中及时更改默认密码,以提高安全性。
### Oracle 10g 闪回恢复区详解 #### 一、引言 随着数据库规模的不断增大和技术的发展,数据库的备份与恢复成为了确保数据安全的重要环节。Oracle 10g 引入了一项名为“闪回恢复区”(Flash Recovery Area)的新...
Oracle 10G 的闪回技术是数据库管理系统中一项强大的恢复功能,它使得DBA能够轻松地恢复误删除或误更新的数据,极大地简化了数据库管理的工作。本实验手册重点介绍了Oracle 10G及以后版本的主要闪回技术,并强调其...
在Oracle 10g中,闪回功能是一种非常重要的数据库恢复工具,它允许用户恢复到特定的时间点而不会丢失事务数据。但是,在使用这一强大功能时,可能会遇到一些问题,比如在启动过程中出现的ORA-16038和ORA-19809等错误...
文件"在Windows 7下安装Oracle 11g的解决方法.doc"很可能包含了详细步骤和技巧,以解决在安装过程中可能遇到的兼容性、依赖库或服务配置等问题。安装过程中,可能需要调整操作系统的防火墙设置,确保Oracle相关的...
【Oracle10g闪回恢复区】是Oracle数据库在10g版本中引入的一个关键特性,旨在简化数据库备份和恢复过程。它是一个专门用于存储恢复相关文件的存储区域,包括控制文件、归档日志、闪回日志、自动备份的控制文件和...
### 如何正确删除Oracle归档日志 #### 一、问题背景 在Oracle数据库的日常运维工作中,归档日志的管理和清理是一项重要的任务。随着业务的发展和数据的增长,归档日志会不断累积,占据大量的磁盘空间。如果不及时...
在 Oracle 11g 中,默认情况下归档日志是启用的,但是在某些情况下,我们可能需要关闭归档日志,例如在不重要的数据库中,以释放磁盘空间。关闭归档日志可以通过以下步骤实现: 1. 关闭数据库:shutdown immediate;...
Oracle 10g(10g代表10th Generation,即第十代)是Oracle公司发布的一个重要版本,发布于2004年。这一版本在之前的版本基础上进行了大量的改进和优化,引入了许多新特性,特别是在网格计算方面有着显著的进步。以下...
### ORACLE 11g RAC 开启与修改归档模式方法详解 #### 一、概述 在Oracle 11g RAC(Real Application Clusters)环境中,正确配置归档模式对于实现高可用性和灾难恢复至关重要。归档模式允许数据库记录所有事务...
但在Oracle 10g及之后的版本中,这一设置不再需要,因为默认情况下数据库会自动启动归档模式。如果希望数据库在启动时就进入归档模式,可以设置以下参数: - **检查参数**: ```sql SQL> show parameter db_...
### Oracle10g在Windows环境下的安装指南 #### 一、Oracle 10g简介 Oracle Application Server 10g是Oracle公司推出的一款集成化的、基于标准的软件平台。它是Oracle 9i Application Server(Oracle9iAS)Release ...
Oracle10g作为Oracle公司推出的第十代数据库系统,在其文件目录结构上进行了显著的调整与优化,相比前代Oracle9i有着本质的区别。理解Oracle10g的默认目录结构对于管理和维护数据库至关重要,本文将深入探讨Oracle10...
当数据库运行在归档模式下,每次事务提交都会产生一个新的redo log,当redo log切换时,旧的日志就会被归档到指定的归档空间,即闪回恢复区(Flash Recovery Area)。这个区域存储控制文件、归档日志、备份片段等...