Trong quá trình vận hành CSDL Oracle database chúng ta không thể tránh khỏi việc xảy ra sự cố bất ngờ dẫn tới CSDL chính Primary không thể hoạt động (lỗi đĩa, mạng, cpu…) => như vậy chúng ta cần hành động ngay lập tức chuyển chức năng của Standby thành Primary để tiếp tục hệ thống CSDL.
Việc này có thể thực hiện một cách thủ công thông qua thủ tục FAILOVER qua DGMGRL hoặc cấu hình cho hệ thống tự nhận biết và thực hiện nó một cách tự động.
Fast-Start Failover (FSFO) trong Oracle Data Guard xảy ra khi hệ thống tự động chuyển sự chấp nhận từ primary database sang một standby database khác một cách tự động và nhanh chóng mà không cần sự can thiệp của người quản trị. FSFO xảy ra trong các tình huống sau:
- Primary Database Unavailable: Khi primary database trở nên không khả dụng vì một lý do nào đó, chẳng hạn như mất kết nối mạng hoặc hỏng hóc phần cứng, và không thể khôi phục nhanh chóng.
- Fast-Start Failover Threshold Exceeded: Khi các tiêu chí đánh giá tình trạng của primary database (như log transport lag, communication lag, và apply lag) vượt quá ngưỡng được cấu hình.
- Manual Initiation: Người quản trị có thể khởi động FSFO thủ công nếu họ phát hiện rằng primary database không thể khôi phục được.
Dưới đây là hướng dẫn thực hiện thủ tục FAILOVER tự động: Fast-Start Failover
Các bạn có thể xem các bước dựng CSDL Data Guard tại đây: https://datalinks.vn/huong-dan-cai-dat-oracle-data-guard-physical-standby-ver-19c-voi-rman/
THÔNG TIN CHI TIẾT 2 NODE:
SRV1 – server tôi đặt là Primary
SRV2 – server tôi đặt là Standby
Mục tiêu của demo này là khi Primary SRV1 bị sự cố thì SRV2 Standby sẽ thành Primary, thực hiện tự động.
Kiểm tra thông tin database: (yêu cầu phải cấu hình Oracle data guard broker trước khi thực hiện theo hướng dẫn này, trên cả 2 node phải bật Flashback)
Nếu bạn chưa cấu hình Oracle data guard broker thì xem ở đây: https://datalinks.vn/cau-hinh-oracle-data-guard-broker-dgmgrl-oracle-data-guard-19c/
Primary: check thông tin cần thiết
select flashback_on,instance_name,database_role from v$database,V$instance; exit dgmgrl connect sys/oracle@duodb; show configuration;
SQL> select flashback_on,instance_name,database_role from v$database,V$instance;
FLASHBACK_ON INSTANCE_NAME DATABASE_ROLE
—————— —————- —————-
YES duodb PRIMARY
FLASHBACK_ON INSTANCE_NAME DATABASE_ROLE
—————— —————- —————-
YES stand PHYSICAL STANDBY
DGMGRL> show configuration;
Configuration – duong_primary
Protection Mode: MaxPerformance
Members:
duodb – Primary database
stand – Physical standby database
Fast-Start Failover: Disabled
Configuration Status:
SUCCESS (status updated 25 seconds ago)
Primary: Active Fast-Start Failover
Fast-start failover có thể được active trong chế độ Protection mode: maximum availability mode or maximum performance.
dgmgrl connect sys/oracle@duodb; edit database 'duodb' set property 'logxptmode'='sync'; edit database 'stand' set property 'logxptmode'='sync'; edit configuration set protection mode as maxavailability; show configuration verbose; enable fast_start failover; start observer;
Session sẽ bị treo => Ctrl C để thoát ra. Hoặc tắt đi và mở một Sesion mới sau đó login lại vào DGMGRL:
dgmgrl connect sys/oracle@duodb; show configuration; show fast_start failover
DGMGRL> connect sys/oracle@duodb;
Connected to “duodb”
Connected as SYSDBA.
DGMGRL> show configuration;
Configuration – duong_primary
Protection Mode: MaxAvailability
Members:
duodb – Primary database
stand – (*) Physical standby database
Fast-Start Failover: Enabled in Zero Data Loss Mode
Configuration Status:
SUCCESS (status updated 36 seconds ago)
DGMGRL> show fast_start failover
Fast-Start Failover: Enabled in Zero Data Loss Mode
Protection Mode: MaxAvailability
Lag Limit: 0 seconds
Threshold: 30 seconds
Active Target: stand
Potential Targets: “stand”
stand valid
Observer: srv1.localdomain
Shutdown Primary: TRUE
Auto-reinstate: TRUE
Observer Reconnect: (none)
Observer Override: FALSE
Configurable Failover Conditions
Health Conditions:
Corrupted Controlfile YES
Corrupted Dictionary YES
Inaccessible Logfile NO
Stuck Archiver NO
Datafile Write Errors YES
Oracle Error Conditions:
(none)
Quá trình Active Fast-Start Failover đã hoàn tất thành công.