1. 程式人生 > 其它 >如何檢查oracle的歸檔空間是否滿了?

如何檢查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-LogVol0026G 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 * Fromv$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 * fromv$recovery_file_dest;

NAME SPACE_LIMITSPACE_USEDSPACE_RECLAIMABLE NUMBER_OF_FILES
--------------------- ----------------- ---- --------------- -------------------
/oracle/flash_recovery_area 2147483648 1804771840 0 51

但是還是在系統層面去檢視磁碟空間。