天天看點

oracle dataguard 作業系統重新開機後資料不能同步

環境: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中有錯誤,才真正的定位問題的根源。

其實有時候頭痛不一定要醫頭,去看看腳也許能解決頭痛的問題。