【发布时间】:2015-02-09 19:02:45
【问题描述】:
今天早上我到达办公室时,我们的 Oracle 10.2 服务器磁盘空间不足。经过仔细检查,我发现每分钟生成大约 1 到 4 个或更多 .dbf 文件(例如 1_1278092_658232789.dbf、1_1278093_658232789.dbf 等)。我创建了一些空间,但 Oracle 仍然创建这些文件而不删除旧文件。它似乎是在大约 35 小时前开始的。如何让服务器恢复正常。请注意,我不是 Oracle DBA,Oracle 知识有限。
编辑 1:
首先,我设法使用以下内容清理了大约 270GB 的空间,这使服务器能够继续运行:
RMAN> CROSSCHECK BACKUP;
RMAN> DELETE ARCHIVELOG ALL;
回答 ora-600 的问题:
Oracle 在哪个路径中创建这些文件?
/home/oracle/archive/
(这也是log_archive_dest_1的值)
DB_CREATE_FILE_DEST(数据文件的参数)
这似乎没有设置(“show parameter DB_CREATE_FILE_DEST”显示没有值),但是数据库文件在 /home/oracle/app/oracle/product/oradata/irs3
DB_RECOVERY_FILE_DEST(FRA 的参数)——哪个子目录?
sys@iris > show parameter DB_RECOVERY_FILE_DEST
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /home/backup
db_recovery_file_dest_size big integer 2500G
我怀疑这些是闪回日志。如果是这样,您应该通过将参数 DB_RECOVERY_FILE_DEST_SIZE 设置为较小的值来限制闪回恢复区 (FRA)。 Oracle 会一直写入闪回日志,直到 FRA 空间不足...然后它会统计删除/覆盖旧文件。
嗯,以前的 DBA 确实将它设置为非常高的值,现在它已经满了。例如。看看:
sys@iris > SELECT NAME, (SPACE_LIMIT/1024/1024) || 'MB' AS SPACE_LIMIT,
((SPACE_LIMIT - SPACE_USED + SPACE_RECLAIMABLE)/1024/1024) || 'MB' AS SPACE_AVAILABLE,
ROUND((SPACE_USED - SPACE_RECLAIMABLE)/SPACE_LIMIT * 100, 1)
AS PERCENT_FULL
FROM V$RECOVERY_FILE_DEST;
NAME SPACE_LIMIT SPACE_AVAILABLE PERCENT_FULL
/home/backup 2560000MB 940MB 100
但 RMAN 现在会在其日志文件中吐出如下错误:
....
input archive log thread=1 sequence=1278543 recid=1271197 stamp=866048159
input archive log thread=1 sequence=1278544 recid=1271198 stamp=866048232
channel ORA_DISK_1: starting piece 1 at 11-DEC-14
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 12/11/2014 22:07:20
ORA-19809: limit exceeded for recovery files
ORA-19804: cannot reclaim 2691888128 bytes disk space from 2684354560000 limit
continuing other job steps, job failed will not be re-run
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=1278907 recid=1271561 stamp=866062135
....
即使驱动器上有空间:
-bash-3.2$ df -h
Filesystem Size Used Avail Use% Mounted on
....
/dev/vg01/lvol1 684G 365G 317G 54% /home
为什么即使驱动器上有可用空间,上面的查询也会显示空间已满?
如果需要,下面是更多信息。
谢谢。
妮可
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/backup/%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/home/oracle/app/oracle/product/10/dbs/snapcf_irs3.f'; # default
【问题讨论】:
-
你当然知道
*.dbf存储数据库数据?是否正在运行一些向您的表中插入大量数据的查询? -
是的,但存档日志文件也有一个 .dbf 扩展名。
标签: oracle