Oracle-11g-R2

當新數據插入主數據庫時,數據反映在備用數據庫中的標準時間延遲是多少

  • June 22, 2017

我已經使用數據代理配置了數據保護設置。當我將新數據插入主數據庫中的表時,這應該反映在備用數據庫中。當我檢查備用數據庫中的這些數據時,它沒有反映在那裡。所以,我重新啟動了數據庫並以只讀方式打開它。我使用以下命令來避免延遲:

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 的備用數據庫指南非常有用。

引用自:https://dba.stackexchange.com/questions/176995