Quản trị Oracle data guard hiệu quả với cấu hình DATA_GUARD_MAX Oracle 19c

Như các bạn đã biết trong quá trình vận hành CSDL Oracle Data Guard chúng ta thường xuyên gặp hiện tượng là xuất hiện GAP nghĩa là dữ liệu từ Primary không được đồng bộ sang bên Standby (cũng có thể gọi là mất đồng bộ).

Lỗi này do nhiều nguyên nhân: lỗi mạng kết nối giữa các node, chưa bật listener, lỗi đĩa, máy chủ CSDL bị treo do quá tải….

Bài viết này sẽ chia sẻ một vài phương pháp quản trị và khắc phục sự cố tự động trong quá trình vận hành Oracle Data Guard.

Tuning Automatic Outage Resolution with Data Guard” là một tính năng trong Oracle Data Guard được sử dụng để tối ưu hóa quá trình phục hồi tự động sau khi xảy ra sự cố (outage) trong một môi trường Data Guard.

Khi có sự cố xảy ra, chẳng hạn như mất kết nối mạng giữa primary database và standby database, hoặc một vấn đề kỹ thuật khác, Data Guard có khả năng tự động phát hiện và phục hồi từ các sự cố này. Tuy nhiên, quá trình này có thể ảnh hưởng đến hiệu suất và thời gian phục hồi của hệ thống.

Tuning Automatic Outage Resolution cho phép bạn điều chỉnh cách mà Data Guard phản ứng và xử lý các sự cố, nhằm cải thiện hiệu suất và thời gian phục hồi. Dưới đây là một số cải tiến mà tính năng này mang lại:

  1. Thời gian chờ và đợi (Timeouts and Delays): Bạn có thể tinh chỉnh thời gian chờ và thời gian đợi trước khi Data Guard bắt đầu thực hiện các hành động phục hồi, như kích hoạt một standby database.
  2. Sự ưu tiên (Priority): Cho phép bạn xác định ưu tiên của các sự cố để Data Guard biết sự cố nào cần được xử lý trước.
  3. Kiểm soát số lượng và tần suất thử lại (Retry Control): Bạn có thể cấu hình số lượng lần thử lại và thời gian giữa các lần thử lại để đảm bảo quá trình phục hồi được thực hiện một cách hiệu quả.
  4. Xử lý thông báo và logging: Data Guard cung cấp các cấu hình để kiểm soát cách thông báo và logging được xử lý trong quá trình phục hồi tự động, giúp bạn quản lý được lượng thông tin và logs được tạo ra.
  5. Kiểm soát hoạt động tự động (Automatic Activity Control): Cho phép bạn tắt hoặc bật các chức năng tự động như kích hoạt database, quản lý quá trình log apply, và nhiều hơn nữa.

THÔNG TIN CHI TIẾT 2 NODE:

ItemsPrimary – SRV1Standby – SRV2
hostnamesrv1srv2
ip192.168.1.11192.168.1.12
db nameduodbduodb
instance_nameduodbstand
db_unique_nameduodbstand
version DB19.319.3
DB_HOME/u01/app/oracle/ product/19.3.0/dbhome_1/u01/app/oracle/ product/19.3.0/dbhome_1
DB_BASE/u01/app/oracle/u01/app/oracle
global database namesrv1.localdomainsrv2.localdomain

SRV1 – server tôi đặt là Primary

SRV2 – server tôi đặt là Standby

Kiểm tra thông tin database:

DATA_GUARD_MAX là một tham số trong Oracle Database, thường được sử dụng trong môi trường Oracle Data Guard để xác định số lượng bản sao dữ liệu tối đa có thể được tạo ra.

Khi thiết lập tham số này, bạn chỉ định số lượng bản sao dữ liệu mà hệ thống Oracle Data Guard có thể tạo ra trước khi dừng quá trình sao chép. Tham số này giúp quản trị viên kiểm soát việc sao chép dữ liệu, đặc biệt hữu ích trong các trường hợp khi việc sao chép có thể gây ảnh hưởng đến hiệu suất hệ thống.

Thông thường, nếu số lượng bản sao dữ liệu vượt quá giá trị DATA_GUARD_MAX, quá trình sao chép sẽ dừng lại cho đến khi số lượng bản sao giảm xuống dưới ngưỡng được chỉ định. Điều này giúp tránh tình trạng quá tải hệ thống và có thể điều chỉnh được bằng cách thay đổi giá trị của tham số này.

Check thông tin DB Primary:

show parameter DATA_GUARD_MAX

Giá trị mặc định là: 240
Giá trị có thể nhận là: 10 to 7200

SQL> show parameter DATA_GUARD_MAX

NAME TYPE VALUE

———————————— ———– ——————————

data_guard_max_io_time integer 240

data_guard_max_longio_time integer 240

Trong đó:

data_guard_max_io_time: là một tham số được sử dụng trong môi trường Oracle Data Guard để xác định thời gian tối đa mà một hoạt động I/O có thể chờ đợi trước khi bị hủy bởi quá trình ghi bản sao dữ liệu (data guard write).

Khi một bản sao dữ liệu (standby database) đang chờ để ghi dữ liệu từ bản gốc (primary database), thời gian chờ đợi có thể tăng lên nếu có sự cố xảy ra, chẳng hạn như mất kết nối mạng hoặc sự cố phần cứng. Tham số DATA_GUARD_MAX_IO_TIME cho phép bạn đặt một giới hạn thời gian cho các hoạt động I/O này, để tránh việc chờ đợi vô hạn và giảm thiểu tác động đến hiệu suất hệ thống.

Khi thời gian chờ đợi vượt quá giá trị được thiết lập trong DATA_GUARD_MAX_IO_TIME, bản sao dữ liệu có thể quyết định hủy bỏ hoạt động đang chờ đợi và tiếp tục với các hoạt động khác.

data_guard_max_longio_time: Nó xác định thời gian tối đa mà một hoạt động I/O dài (long I/O) có thể chờ đợi trước khi bị hủy bởi quá trình ghi bản sao dữ liệu (data guard write).

Cụ thể, khi một bản sao dữ liệu (standby database) đang chờ để ghi dữ liệu từ bản gốc (primary database), có thể có các hoạt động I/O mà cần nhiều thời gian hơn để hoàn thành do các vấn đề như mất kết nối mạng hoặc sự cố phần cứng. Tham số DATA_GUARD_MAX_LONGIO_TIME giúp đặt một ngưỡng thời gian cho các hoạt động I/O dài này.

Khi thời gian chờ đợi vượt quá giá trị được thiết lập trong DATA_GUARD_MAX_LONGIO_TIME, bản sao dữ liệu có thể quyết định hủy bỏ hoạt động đang chờ đợi và tiếp tục với các hoạt động khác.

Như vậy: để điều chỉnh hiệu năng CSDL chúng ta chỉ cần tính toán và thay đổi thông số này cho phù hợp với thông tin CSDL hiện tại của bạn:

alter system set data_guard_max_io_time = 260;

alter system set data_guard_max_longio_time = 300;

SQL> show parameter DATA_GUARD_MAX

NAME TYPE VALUE

———————————— ———– ——————————

data_guard_max_io_time integer 240

data_guard_max_longio_time integer 240

SQL> alter system set data_guard_max_io_time = 260;

System altered.

SQL> show parameter DATA_GUARD_MAX

NAME TYPE VALUE

———————————— ———– ——————————

data_guard_max_io_time integer 260

data_guard_max_longio_time integer 240

SQL> alter system set data_guard_max_longio_time = 300;

System altered.

SQL> show parameter DATA_GUARD_MAX

NAME TYPE VALUE

———————————— ———– ——————————

data_guard_max_io_time integer 260

data_guard_max_longio_time integer 300

Chúc các bạn thành công.

 

Datalinks.vn

Hello các bạn, mình là Dương Nguyễn tác giả của blog này. Với gần 20 năm làm việc trong lĩnh vực CNTT, VT trong và ngoài nước, mong muốn được chia sẻ kiến thức và kinh nghiệm về database với các bạn đam mê và quan tâm đến lĩnh vực này. Đặc biệt là #OracleDatabase hoặc luyện thi #OCP database admin. Các bạn cần người đồng hành thì alo mình nhé. Call/Zalo: 0765 871 888. Thanks you !.....
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận