Switchover và failover là hai phương pháp quan trọng trong quản lý hệ thống PostgreSQL để đảm bảo tính khả dụng cao và dự phòng. Dưới đây là hướng dẫn chi tiết về cách thực hiện cả hai phương pháp này.

1. Switchover

Switchover là quá trình chuyển đổi chủ động giữa các nút trong một hệ thống cơ sở dữ liệu, thường được thực hiện khi bạn muốn nâng cấp hoặc bảo trì mà không làm gián đoạn dịch vụ.

Bước 1: Kiểm tra Trạng Thái Các Nút Trước khi thực hiện switchover, hãy đảm bảo rằng cả hai nút (primary và standby) đều hoạt động bình thường.

SELECT pg_is_in_recovery();

Bước 2: Thực Hiện Switchover Bạn có thể sử dụng lệnh pg_ctl hoặc SELECT pg_switch_wal(); trong phiên làm việc SQL để thực hiện switchover.

# Trên nút primary
SELECT pg_promote();

# Trên nút standby
SELECT pg_promote();

Bước 3: Kiểm Tra Kết Quả Sau khi thực hiện switchover, hãy xác nhận rằng nút mới đã trở thành primary và nút cũ đã trở thành standby.

SELECT pg_is_in_recovery();

2. Failover

Failover là quá trình tự động hoặc thủ công chuyển đổi sang nút dự phòng khi nút chính gặp sự cố, nhằm đảm bảo hệ thống tiếp tục hoạt động mà không bị gián đoạn lâu dài.

Bước 1: Kiểm Tra Trạng Thái Nút Chính Xác nhận rằng nút chính đã ngừng hoạt động hoặc không thể truy cập.

SELECT pg_is_in_recovery();

Bước 2: Thực Hiện Failover Nếu nút chính không hoạt động, bạn có thể thực hiện failover bằng cách sử dụng lệnh pg_ctl hoặc thực hiện lệnh trong SQL.

# Trên nút standby
SELECT pg_promote();

Bước 3: Cập Nhật Cấu Hình Sau khi failover, bạn cần cập nhật cấu hình của ứng dụng và các nút để hướng tới nút mới đã trở thành primary.

# Trên nút standby (nếu cần)
# Cập nhật pg_hba.conf và postgresql.conf để phản ánh trạng thái mới.

Bước 4: Kiểm Tra Kết Quả Xác minh rằng nút mới đã trở thành primary và hoạt động bình thường.

SELECT pg_is_in_recovery();

Kết Luận

Switchover và failover là các quy trình quan trọng trong quản lý hệ thống PostgreSQL, giúp duy trì tính khả dụng và bảo mật dữ liệu. Việc thực hiện chúng cần được lên kế hoạch cẩn thận và kiểm tra thường xuyên để đảm bảo rằng hệ thống hoạt động hiệu quả khi cần thiết. Hãy đảm bảo rằng bạn đã cấu hình các cảnh báo và giám sát để phát hiện sự cố sớm và thực hiện các bước thích hợp nhằm giảm thiểu thời gian ngừng hoạt động.