Oracle data guard Primary và Standby là gì?

Primary và Standby là gì?

Primary (Chính):

  • Là cơ sở dữ liệu chính nhận tất cả các yêu cầu ghi (thêm, sửa, xóa) từ ứng dụng.
  • Là “ngựa thồ” hoạt động tích cực đảm bảo tính toàn vẹn và tính sẵn sàng của dữ liệu cho các hoạt động quan trọng của bạn.

Standby (Dự phòng):

  • Là bản sao được đồng bộ hóa của cơ sở dữ liệu chính.
  • Luôn sẵn sàng để tiếp quản nếu cơ sở dữ liệu chính gặp sự cố.
  • Cơ sở dữ liệu dự phòng thường được sử dụng trong cấu hình High Availability (HA) để giảm thiểu thời gian chết trong trường hợp xảy ra lỗi.

Cách thức hoạt động:

  • Cơ sở dữ liệu chính liên tục gửi cập nhật (gọi là dữ liệu redo) đến cơ sở dữ liệu dự phòng.
  • Việc đồng bộ hóa này đảm bảo rằng cơ sở dữ liệu dự phòng luôn nhất quán với cơ sở dữ liệu chính.
  • Nếu cơ sở dữ liệu chính gặp sự cố, cơ sở dữ liệu dự phòng có thể được kích hoạt nhanh chóng để giảm thiểu gián đoạn cho ứng dụng. Người dùng có thể tiếp tục làm việc với thời gian chết tối thiểu.

Lợi ích:

  • High Availability (HA): Cơ sở dữ liệu dự phòng cung cấp mạng lưới an toàn cho dữ liệu quan trọng của bạn, đảm bảo ứng dụng của bạn có thể tiếp tục hoạt động ngay cả khi cơ sở dữ liệu chính gặp sự cố.
  • Phục hồi sau thảm họa: Trong trường hợp xảy ra thảm họa lớn, cơ sở dữ liệu dự phòng được đặt ở vị trí địa lý riêng biệt có thể được sử dụng để khôi phục hoạt động nhanh chóng.
  • Cân bằng tải: Đôi khi cơ sở dữ liệu dự phòng có thể được sử dụng để dỡ tải các truy vấn chỉ đọc từ cơ sở dữ liệu chính, cải thiện hiệu suất cho ứng dụng của bạn.

Các loại Oracle Standby Databases

Oracle cung cấp nhiều loại Standby Databases khác nhau, mỗi loại có ưu và nhược điểm riêng, phù hợp với nhu cầu cụ thể của bạn. Dưới đây là tóm tắt các loại phổ biến nhất:

1. Physical Standby Database:

  • Là bản sao đầy đủ của Primary Database, được cập nhật liên tục thông qua apply redo log.
  • Có thể được kích hoạt nhanh chóng để tiếp quản nếu Primary Database gặp sự cố.
  • Cung cấp khả năng High Availability (HA) cao nhất.
  • Tuy nhiên, cấu hình và quản lý phức tạp hơn so với các loại Standby khác.

2. Logical Standby Database:

  • Là bản sao logic của Primary Database, chỉ bao gồm cấu trúc và dữ liệu cần thiết cho các ứng dụng cụ thể.
  • Cập nhật được thực hiện thông qua SQL statementcommit SCN.
  • Dễ dàng thiết lập và quản lý hơn Physical Standby.
  • Tuy nhiên, thời gian phục hồi có thể lâu hơn vì cần áp dụng SQL statement để cập nhật dữ liệu.

3. Snapshot Standby Database:

  • Là bản sao tại một thời điểm cụ thể của Primary Database.
  • Không được cập nhật liên tục.
  • Dễ dàng tạo và quản lý.
  • Phù hợp cho mục đích phục hồi dữ liệu hoặc báo cáo.
  • Tuy nhiên, không cung cấp khả năng HA giống như Physical Standby hay Logical Standby.

4. Active Data Guard:

  • Là một tính năng nâng cao của Oracle Data Guard cho phép cấu hình nhiều Standby Database.
  • Cho phép thực hiện các thao tác đọc/ghi trên một số Standby Database, giảm tải cho Primary Database.
  • Cung cấp khả năng HA cao và khả năng mở rộng.
  • Tuy nhiên, cấu hình và quản lý phức tạp hơn so với các loại Standby khác.

Bảng so sánh các loại Oracle Standby Database:

Loại StandbyƯu điểmNhược điểm
PhysicalHA caoPhức tạp
LogicalDễ dàngThời gian phục hồi lâu
SnapshotDễ dàngKhông có HA
Active Data GuardHA cao, mở rộngPhức tạp

Các loại Oracle Data Guard Services

Oracle Data Guard cung cấp các dịch vụ sau để bảo vệ dữ liệu và đảm bảo tính sẵn sàng cao cho cơ sở dữ liệu Oracle của bạn:

1. Oracle Data Guard Broker (DGB):

  • Dịch vụ trung tâm quản lý các thành phần Data Guard khác nhau.
  • Giám sát trạng thái của các thành phần Data Guard và tự động thực hiện các hành động cần thiết để đảm bảo tính sẵn sàng cao.
  • Cung cấp giao diện quản lý đơn giản cho Data Guard.

2. Oracle Data Guard Redo Apply (RDA):

  • Dịch vụ áp dụng redo log từ Primary Database sang Standby Database.
  • Đảm bảo rằng Standby Database luôn đồng bộ với Primary Database.
  • Cho phép Standby Database tiếp quản nhanh chóng nếu Primary Database gặp sự cố.

3. Oracle Data Guard Fast-Start Failover (FSFO):

  • Tính năng cho phép Standby Database tự động tiếp quản Primary Database mà không cần sự can thiệp của người dùng.
  • Giảm thiểu thời gian chết trong trường hợp Primary Database gặp sự cố.
  • Cải thiện khả năng sẵn sàng cao cho cơ sở dữ liệu của bạn.

4. Oracle Data Guard Switchover (Switchover):

  • Tính năng cho phép chuyển đổi thủ công từ Primary Database sang Standby Database.
  • Dùng cho các mục đích bảo trì hoặc di chuyển dữ liệu.
  • Cung cấp khả năng chuyển đổi dữ liệu an toàn và đáng tin cậy.

5. Oracle Data Guard Failover (Failover):

  • Tính năng cho phép Standby Database tự động tiếp quản Primary Database khi Primary Database gặp sự cố.
  • Đảm bảo tính sẵn sàng cao cho cơ sở dữ liệu của bạn.
  • Giảm thiểu thời gian chết và gián đoạn cho các ứng dụng.

Ngoài ra, Oracle Data Guard còn cung cấp các dịch vụ khác như:

  • Oracle Data Guard Patching: Cho phép vá lỗi Primary Database mà không cần downtime.
  • Oracle Data Guard Backup: Cho phép sao lưu dữ liệu Primary Database và Standby Database.
  • Oracle Data Guard Recovery: Cho phép khôi phục dữ liệu từ Primary Database hoặc Standby Database.

Chế độ bảo vệ dữ liệu:

Oracle Data Guard cung cấp ba chế độ bảo vệ chính (protection modes) để cân bằng giữa mức độ bảo vệ dữ liệu (data protection) và hiệu suất (performance) cho cấu hình standby database của bạn. Lựa chọn chế độ phù hợp phụ thuộc vào các yêu cầu cụ thể về tính sẵn sàng (availability) và phục hồi dữ liệu (data recovery) của bạn.

1. Maximum Protection (Bảo vệ Tối đa):

  • Chế độ này cung cấp mức độ bảo vệ dữ liệu cao nhất.
  • Standby database không ghi nhận bất kỳ thay đổi nào cho đến khi nó xác nhận rằng redo log đã được ghi thành công trên cả Primary database và Standby database.
  • Ưu điểm: Đảm bảo dữ liệu trên Standby database luôn nhất quán với Primary database, giảm thiểu khả năng mất dữ liệu.
  • Nhược điểm: Hiệu suất ghi (write performance) trên Standby database bị ảnh hưởng vì phải chờ xác nhận. Ít được sử dụng trong thực tế do ảnh hưởng đến hiệu suất.

2. Maximum Availability (Tính Sẵn sàng Tối đa):

  • Chế độ này ưu tiên tính sẵn sàng của Standby database.
  • Standby database ghi nhận thay đổi cục bộ (locally) khi nhận được redo log từ Primary database, mà không cần chờ xác nhận.
  • Ưu điểm: Cho phép Standby database tiếp quản Primary database nhanh hơn trong trường hợp Primary database gặp sự cố.
  • Nhược điểm: Khả năng mất dữ liệu nhỏ nếu Primary database gặp sự cố ngay sau khi Standby database ghi nhận thay đổi cục bộ.

3. Maximum Performance (Hiệu suất Tối đa):

  • Đây là chế độ mặc định của Oracle Data Guard.
  • Standby database ghi nhận thay đổi cục bộ ngay khi nhận được redo log từ Primary database, tương tự như Maximum Availability.
  • Tuy nhiên, Standby database không gửi xác nhận lại cho Primary database.
  • Ưu điểm: Cung cấp hiệu suất ghi tốt nhất cho Standby database.
  • Nhược điểm: Có khả năng mất dữ liệu cao nhất trong ba chế độ nếu Primary database gặp sự cố ngay sau khi Standby database ghi nhận thay đổi cục bộ.

Tóm tắt các chế độ bảo vệ Oracle Data Guard:

Chế độƯu điểmNhược điểm
Maximum ProtectionBảo vệ dữ liệu cao nhấtHiệu suất ghi thấp
Maximum AvailabilityTính sẵn sàng caoKhả năng mất dữ liệu nhỏ
Maximum PerformanceHiệu suất ghi tốt nhấtKhả năng mất dữ liệu cao nhất (mặc định)

Lựa chọn chế độ phù hợp:

  • Sử dụng Maximum Protection nếu ưu tiên bảo vệ dữ liệu tuyệt đối, ngay cả khi ảnh hưởng đến hiệu suất.
  • Sử dụng Maximum Availability nếu tính sẵn sàng của Standby database để tiếp quản Primary database là ưu tiên hàng đầu, chấp nhận khả năng mất dữ liệu nhỏ.
  • Sử dụng Maximum Performance (mặc định) để cân bằng giữa hiệu suất và khả năng mất dữ liệu. Đây là lựa chọn phổ biến cho các tình huống không yêu cầu mức độ bảo vệ dữ liệu quá cao.

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA - https://www.youtube.com/@DuoDBA) tác giả của blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn muốn có người đồng hành thì alo tôi 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