Oracle-11g-R2
當新數據插入主數據庫時,數據反映在備用數據庫中的標準時間延遲是多少
我已經使用數據代理配置了數據保護設置。當我將新數據插入主數據庫中的表時,這應該反映在備用數據庫中。當我檢查備用數據庫中的這些數據時,它沒有反映在那裡。所以,我重新啟動了數據庫並以只讀方式打開它。我使用以下命令來避免延遲:
SQL> alter database recover managed standby database nodelay disconnect from session;
但是仍然需要很多時間才能在備用數據庫中反映出來。
將數據從主數據庫傳輸到備用數據庫的時間延遲是多少?
這是數據反映在備用數據庫中的標準時間延遲嗎?還是我在配置中錯過了任何東西。
有什麼辦法可以解決嗎?
我認為您想要的是實時應用,但為此,您必須首先在備用數據庫上創建備用重做日誌。附帶說明一下,為了使角色轉換更容易,在主數據庫上創建備用重做日誌被認為是最佳實踐:
備用重做日誌應該與您的重做日誌大小相同,並且您需要比重做日誌多至少 1 組備用日誌:
我在主數據庫上使用以下腳本,該腳本為備用重做日誌創建語句,然後我在備用數據庫上執行:
select 'alter database add standby logfile group ' || to_number((select count(*) from v$log) + rownum) || '(''T:\ORACLE\STANDBYREDO\REDO0' || to_number((select count(*) from v$log) + rownum) || '.LOG'') SIZE ' || (select max( bytes/1024/1024) from v$log) || 'M;' as standbyredo from v$log union all select 'alter database add standby logfile group ' || ((select max(group#) from v$log) + (select count(*) from v$log) + 1) || '(''T:\ORACLE\STANDBYREDO\REDO0' || ((select max(group#) from v$log) + (select count(*) from v$log) + 1) || '.LOG'') SIZE ' || (select max( bytes/1024/1024) from v$log) || 'M;' from dual;
在備用數據庫上出現備用日誌後,要開始實時應用,您需要
using current logfile
在恢復命令中包含以下片語:SQL> alter database recover managed standby database using current logfile disconnect from session;
在運輸和申請期間,您可以通過查詢備用數據庫上的 v$standby_log 來檢查是否正在使用備用日誌:
select * from v$standby_log;
當我學習如何設置物理備用時,我發現Tim Hall 的備用數據庫指南非常有用。