Mục lục
1. Giới thiệu PGPool
Bài toán đặt ra: Database PostgreSQL của bạn đang gặp vấn đề nghiêm trọng về hiệu năng, do có quá nhiều connection kết nối đến.
Trong trường hợp này, 1 giải pháp Connection Pooling như Pgpool II có thể là 1 giải pháp phù hợp.
Ý tưởng của Connection Pool cơ bản là mở sẵn 1 loạt các connection (số lượng mà chúng ta biết chắc sẽ không gây quá tải database), các ứng dụng khi muốn kết nối vào sẽ đấu nối vào các connection đã mở sẵn đó, nếu kết nối nào vào sau mà không còn connection đã mở sẵn, thì nó sẽ phải đợi kết nối trước đó kết thúc.
Nói đơn giản hơn, nó là lớp trung gian giữa người sử dụng và PostgreSQL database
Pgpool-II trong suốt đối với cả database server và client, một hệ thống application đã có sẵn có thể sử dụng được với Pgpool-II mà hầu như không cần thay đổi mã nguồn của nó.
2. Các tính năng của PGPool
Pgpool II có rất nhiều tính năng thú vị như sau:
1. Connection Pooling
Pgpool II quản lý các connection đã được kết nối đến PostgreSQL Server và tái sử dụng chúng mỗi khi có connection mới với cùng các thuộc tính với connect đã kết nối ( như username, database, version protocol, …). Nó giúp giảm tổng lượng thông tin overhead trên tất cả connection, từ đó cải thiện hiệu năng tổng thể.
2. Load Balancing
Nếu bạn đã cấu hình tính năng Streaming Replication bao gồm 1 server master với 1 hoặc nhiều server slave, Pgpool II có thể giúp giảm tải cho server master bằng cách đẩy các câu lệnh SELECT sang các server slave. Chức năng Load balancing rất hữu ích trong tình huống có rất nhiều user thực hiện các câu lệnh SELECT xuống database.
3. Automated fail over
Nếu database server master bị shutdown và không thể hoạt động, Pgpool II sẽ gỡ nó ra khỏi cấu hình và đưa database server slave lên thành master.
Đây gọi là cơ chế Automated fail over
4. Online Recovery
Sau khi database server master bị gỡ ra khỏi cấu hình đồng bộ theo cơ chế Automated fail over, Pgpool II có thể đưa nó trở lại cấu hình cũ với một câu lệnh.
Cơ chế này gọi là Online Recovery
5. Replication
Cũng giống như Streaming Replication, Pgpool II cũng có 1 chức năng tương tự. Nó cho phép tạo ra 1 database cluster khác đồng bộ liên tục theo thời gian thực với database cluster chính
6. Giới hạn connection tối đa
Trong PostgreSQL, bạn có thể cấu hình tham số max_connection để giới hạn số connection tối đa được phép kết nối vào hệ thống. Tuy nhiên, nếu hệ thống đạt max connection, thì những connection kết nối vào sau sẽ nhận được một thông báo lỗi và bị ngắt luôn. Pgpool II cũng cung cấp 1 cơ chế giới hạn connection như vậy, nhưng “mềm mại” hơn: Những connection bị vượt ra ngoài phạm vi max connection, sẽ được đưa vào 1 hàng đợi, chờ đến lượt, thay vì bị văng ra ngoài kèm theo 1 thông báo lỗi.
7. Watchdog
Pgpool có thẻ là nơi phân tải đến các database server ở đằng sau, nhưng nó cũng có thể biến thành điểm rủi ro (single point of failure), khi Pgpool có trục trặc, phần mềm sẽ không thể kết nối đến database được nữa. Tính năng Watchdog cho phép bạn xây dựng nhiều Pgpool dự phòng. Nó sẽ kiểm tra trạng thái của Pgpool chính, nếu phát hiện Pgpool chính bị down, nó sẽ đưa Pgpool dự phòng lên thành Pgpool chính, dựa trên cơ chế bình bầu (voting).
Nếu số lượng Pgpool là số chẵn, thì sẽ không thể quyết định được PgPool nào là chính, do đó, số lượng Pgpool nên là số lẻ.
8. In Memory Query Cache
Chức năng này cho phép lưu giữ câu lệnh và kết quả thực hiện của nó trên Memory. Nếu có 1 câu lệnh SELECT giống hết câu lệnh đã có trên Memory, Pgpool sẽ trả kết quả lấy từ trên Memory xuống luôn, không cần phải phân tích câu lệnh hay truy vấn xuống đĩa để xử lý nữa.
Nguồn: https://dangxuanduy.com/
Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.
KHOÁ DÀNH CHO NGƯỜI MỚI
KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN (ADMIN 1)
CÁC KHOÁ NÂNG CAO:
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ KIẾN TRÚC MULTITENANT 12c
KHÓA HỌC ORACLE NÂNG CAO: QUẢN TRỊ HỆ THỐNG DATA GUARD
CÁC KHOÁ COMBO:
COMBO 1: ADMIN 1 + MULTITENANT 12c
COMBO 3: ADMIN 1 + MULTITENANT 12c + DATA GUARD
LỊCH HỌC:
Mời bạn xem tại đây: LỊCH HỌC CÁC LỚP ORACLE
ĐĂNG KÝ:
https://forms.gle/MtCAoRQFenP886y79
Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.