ORA-00257錯誤診斷及解決方案

來源:互聯網
上載者:User

  我在實際項目中遇到了ORA-00257錯誤(空間不足錯誤),通過尋找資料,絕大部分說這是由于歸檔日誌太多,佔用了全部的硬碟剩餘空間導致的,通過簡單刪除日誌或加大儲存空間就能夠解決。但是我在Oracle 10g上發現,儲存空間還有很大,卻也報這個錯誤。原來是Oracle 10g中新的特性,對Flash Recovery的管理導致的。

  1、軟硬體環境
  伺服器 HP Proliant DL580G4
  作業系統 RHEL5.4
  資料庫 Oracle 10.2.0.4.0

  2、問題現象
  資料庫系統已經試運行了半個多月,在7月24日晚上串連資料庫後做資料更新時出現ORA-00257錯誤,如。
  提示歸檔錯誤,通過尋找ORACLE錯誤碼,解釋為硬碟空間不足,需要刪除歸檔日誌增加空間,但是伺服器可用空間200GB,目前只用了10GB左右,這是為什麼呢?

  3、診斷過程:
  (1)查看ORACLE資料庫歸檔日誌情況
  [root@db2/]# cd /oracle/flash_recovery_area/HKCHR/archivelog
  [root@db2 archivelog]# ls
可以查看到,出現問題之前資料庫歸檔處理一直是正常的。
(2)查看資料庫REDOLOG情況
  [oracle@db2~]$ sqlplus “/as sysdba”
SQL> select * from v$log;
可以發現ARC狀態為NO,說明系統無法正常歸檔。
  (3)手工切換日誌
  SQL> alter system switch logfile;
  alter system switch logfile
  *
  第1行出現錯誤:
  ORA-01013: 使用者請求取消當前的操作
  在等待長時間沒反應後,中斷操作,手工切換日誌沒有成功。
(4) 查看Oracle資料庫後台歸檔服務進程
  [oracle@db2~]$ ps -ef|grep oracle
  ……
  oracle 20923 1 0 Jul24 ? 00:00:01 ora_pmon_hkchr
  oracle 20925 1 0 Jul24 ? 00:00:00 ora_psp0_hkchr
……
  [oracle@hrmsdb ~]$
  後台進程都正常運行。
(5) 查看FLASH_RECOVERY_AREA空間使用方式
  [root@db2/]# cd /oracle
  [root@db2 oracle]# ls
  admin flash_recovery_area oraInventory product
  [root@db2 oracle]# du -a -k flash_recovery_area
……
  [root@db2 oracle]#
  FLASH_RECOVERY_AREA空間使用了3.35GB
  (6)查看FLASH_RECOVERY_AREA空間中各部分使用方式
  SQL> select * from v$recovery_file_dest;
  NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
  ------------------------------------------------------------
  /oracle/flash_recovery_area 2147483648 2134212608 0 35
  SQL> select * from v$flash_recovery_area_usage;
  FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
  ------------ ------------------ -------------------------
  CONTROLFILE 0 0 0
  ONLINELOG 0 0 0
  ARCHIVELOG 69.97 0 40
  BACKUPPIECE 30.01 0 2
  IMAGECOPY 0 0 0
  FLASHBACKLOG 0 0 0
  已選擇6行。
 發現ARCHIVELOG占近70%,BACKUPPIRCR佔了30%,這樣FLASH_RECOVERY_AREA空間的空間已經被完全佔據了。

  4、解決過程
  根據資料庫目前可用儲存空間為200GB、FLASH_RECOVERY_AREA空間為2GB的實際情況,把FLASH_RECOVERY_AREA的空間修改為50GB。
SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=50g scope=both;(如報錯可用scope=spfile)
  系統已更改。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.