如何检查oracle的归档空间是否满了

2014-11-24 15:58:17 · 作者: · 浏览: 0
如何检查oracle的归档空间是否满了
关于如何检查归档空间是否慢了,大多数人会去先检查放归档的目录的磁盘空间是否满了,通过该归档目录空余情况来判断归档空间是否满了,但我觉得这个方法不一定代表实际情况,你看到的可能是一个表面现象。
默认情况下我们在dbca建库时,会把归档放在$ORACLE_HOME/ flash_recovery_area 下,并且oracle默认给FRA配置的大为2g
这里需要足以两个参数:
db_recovery_file_dest                    string      /oracle/flash_recovery_area
db_recovery_file_dest_size           big integer 2G

这里总结一句,如果db_recovery_file_dest 下的存放的归档大小达到db_recovery_file_dest_size 即使该目录下仍然有磁盘空间剩余,oracle也不会去写。
这里我建议按照如下步骤去确定:归档空间是否满了?
1.首先从系统层面确定归档目录存放的磁盘空间情况:
[oracle@localhost bdump]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00 26G   12G   14G  46%      /
/dev/sda2                                          19G   16G  2.8G  85%     /oracle
/dev/sda1                                          99M   24M   71M  25%     /boot
tmpfs                                                978M  508M  470M  52%  /dev/shm

2. 确定归档存放目录,归档存放目录大小
SQL> archive log list;  
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST  -------这里默认使用的是DB_RECOVERY_FILE_DEST 
Oldest online log sequence     17
Next log sequence to archive   20
Current log sequence           20

----也可以按照以下方式查询归档放置的地方
SQL> show parameter db_         
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_keep_cache_size                   big integer 0
db_name                                     string      lixora
db_recovery_file_dest                string      /oracle/flash_recovery_area
db_recovery_file_dest_size           big integer 2G
db_recycle_cache_size                big integer 0
db_unique_name                       string      lixora


-----这里可以看到闪回恢复区里的空间使用情况:
SQL>
select * From v$flash_recovery_area_usage; FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES ------------ ------------------ ------------------------- --------------- CONTROLFILE 0 0 0 ONLINELOG 4.88 0 1 ARCHIVELOG 76.05 0 47 BACKUPPIECE 3.1 0 3 IMAGECOPY 0 0 0 FLASHBACKLOG 0 0 0 6 rows selected. ------注意这一步才是真正查看归档空间的实际使用情况: SQL> select * from v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES ----------- ---------- ----------------- ---- --------------- ------------------- /oracle/flash_recovery_area 2147483648 1804771840 0 51

但是还是在系统层面去查看磁盘空间。