為客戶測試一個ADG場景問題,發現測試環境的日誌切換頻率過低,總是需要定期手工切換,這非常影響測試心情。
實際上,可以設定archive_lag_target引數強制日誌切換。
比如設定:
alter system set archive_lag_target=1800;
這樣即使庫沒任何壓力,半小時也會切換一次日誌。
該設定同時也適用於非常空閒的生產環境,畢竟太久時間的業務資料都在Online Redo logfile中也不好。
尤其是有cascade的DG環境,更不應該讓這個時間太長,但也不要設定太短了,那樣會有效能問題。
另外,藉著這個引數設定的問題,順便提示下ADG環境的問題:
1. 這類資料庫引數設定,並不會透過ADG同步。
這在面試中也會經常被拿來提問,可以考察候選人的實際經驗和思考方式。
----------
@primary
----------
SQL> alter system set archive_lag_target=1800;
System altered.
SQL> show parameter archive_lag_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 1800
----------
@standby
----------
SQL> show parameter archive_lag_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
SQL>
2. 修改業務使用者密碼的行為,會被同步到備庫。
----------
@primary
----------
SQL> alter user test identified by 123;
User altered.
SQL> conn test/123
Connected.
----------
@standby
----------
SQL> conn test/123
Connected.
SQL> show parameter archive_lag_target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
之所以說這個問題,經常碰到有開發人員去問DBA,某某庫的備庫密碼不正確,主庫的密碼是對的,是不是ADG並不會同步密碼修改的動作?
而其實除了在主庫修改密碼後,備庫沒有及時同步的情況之外,基本都是開發連錯庫了..