環境:oracle虛拟機+ Oracle Linux 6.3 64bit + Oracle11g 11.2.0.3 64bit Dataguard
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
$ cat /etc/issue
Oracle Linux Server release 6.3
Kernel \r on an \m
alert:
Managed Standby Recovery not using Real Time Apply
Parallel Media Recovery started with 4 slaves
Waiting for all non-current ORLs to be archived...
All non-current ORLs have been archived.
Media Recovery Waiting for thread 1 sequence 39953
Fetching gap sequence in thread 1, gap sequence 39953-39953
Completed: alter database recover managed standby database disconnect from session
Wed Mar 12 21:22:16 2014
Creating archive destination file : /u01/ora11g/arch01/1_39953_770961807.dbf (77251 blocks)
Wed Mar 12 21:22:37 2014
Creating archive destination file : /u01/ora11g/arch01/1_39953_770961807.dbf (77251 blocks)
Wed Mar 12 21:22:58 2014
Creating archive destination file : /u01/ora11g/arch01/1_39953_770961807.dbf (77251 blocks
手工注冊歸檔,可以正常應用。
ALTER DATABASE REGISTER LOGFILE '/u01/ora11g/arch01/1_39953_770961807.dbf';
/var/log/dmesg:
EXT4-fs warning (device xvda2): ext4_end_bio:258: I/O error writing to inode 11145535 (offset 0 size 4096 starting block 10659634)
JBD2: Detected IO errors while flushing file data on xvda2-8
end_request: I/O error, dev xvda, sector 85277072
檢查實體機的磁盤使用率,發現有一塊盤使用率是100%。
#df -h
dev/mapper/3600000e00d10000000100377000c0000
1300G 1300G 0 100% /OVS/Repositories/0001fb0000030000d4a4b27cf3835c47
檢查這塊盤下都有什麼檔案
# find /OVS/Repositories/0001fb0000030000d4a4b27cf3835c47 -type f
發現有一個ISO檔案,占用約3.5G空間。将此ISO檔案删除,但空間仍未釋放。(如果打開檔案的程序還在,這個檔案并未被真正删除,這個是linux的特性。)
#lsof | grep -i deleted
#ps -elf|grep <process_id_of_result_above>
我們發現還有程序在打開ISO檔案。停掉相應的程序,空間被釋放。這一步要注意,打開ISO檔案的程序有可能是某個正在運作的虛拟機,關閉程序的時候要小心。
重新開機作業系統,dataguard恢複正常。
這其實是一個作業系統級别的錯誤導緻oracle dataguard資料不能正常同步。
在發現問題後将重點放在了oracle dataguard的配置上,耽誤了比較長的時間解決問題。由于隻是重新開機了一下作業系統并沒有對配置做修改。
在手工注冊歸檔,日志能正常應用後,開始懷疑導緻這個錯誤的原因不在oracle本身,而将問題轉向了作業系統。
當發現dmesg中有錯誤,才真正的定位問題的根源。
其實有時候頭痛不一定要醫頭,去看看腳也許能解決頭痛的問題。