如何检查Oracle的归档空间是不是占满?
2022-12-14 · 百度认证:北京惠企网络技术有限公司官方账号
大多数人会去先检查放归档的目录的磁盘空间是否满了,通过该归档目录空余情况来判断归档空间是否满了,但我觉得这个方法不一定代表实际情况,你看到的可能是一个表面现象。
默认情况下我们在dbca建库时,会把归档放在$ORACLE_HOME/flash_recovery_area下,并且oracle默认给FRA配置的大为2g
这里需要足以两个参数:
db_recovery_file_deststring/oracle/flash_recovery_area
db_recovery_file_dest_sizebiginteger2G
这里总结一句,如果db_recovery_file_dest下的存放的归档大小达到db_recovery_file_dest_size即使该目录下仍然有磁盘空间剩余,oracle也不会去写。
这里我建议按照如下步骤去确定:归档空间是否满了?
1.首先从系统层面确定归档目录存放的磁盘空间情况:
[oracle@localhostbdump]$df-h
FilesystemSizeUsedAvailUse%Mountedon
/dev/mapper/VolGroup00-LogVol0026G12G14G46%/
/dev/sda219G16G2.8G85%/oracle
/dev/sda199M24M71M25%/boot
tmpfs978M508M470M52%/dev/shm
2.确定归档存放目录,归档存放目录大小
SQL>archiveloglist;
DatabaselogmodeArchiveMode
AutomaticarchivalEnabled
ArchivedestinationUSE_DB_RECOVERY_FILE_DEST-------这里默认使用的是DB_RECOVERY_FILE_DEST
Oldestonlinelogsequence17
Nextlogsequencetoarchive20
Currentlogsequence20
----也可以按照以下方式查询归档放置的地方
SQL>showparameterdb_
NAMETYPEVALUE
-----------------------------------------------------------------------------
db_keep_cache_sizebiginteger0
db_namestringlixora
db_recovery_file_deststring/oracle/flash_recovery_area
db_recovery_file_dest_sizebiginteger2G
db_recycle_cache_sizebiginteger0
db_unique_namestringlixora
-----这里可以看到闪回恢复区里的空间使用情况:
SQL>select*Fromv$flash_recovery_area_usage;
FILE_TYPEPERCENT_SPACE_USEDPERCENT_SPACE_RECLAIMABLENUMBER_OF_FILES
----------------------------------------------------------------------
CONTROLFILE000
ONLINELOG4.8801
ARCHIVELOG76.05047
BACKUPPIECE3.103
IMAGECOPY000
FLASHBACKLOG000
6rowsselected.
------注意这一步才是真正查看归档空间的实际使用情况:
SQL>select*fromv$recovery_file_dest;
NAMESPACE_LIMITSPACE_USEDSPACE_RECLAIMABLENUMBER_OF_FILES
----------------------------------------------------------------------------
/oracle/flash_recovery_area21474836481804771840051
但是还是在系统层面去查看磁盘空间。