pgwatch là công cụ giám sát PostgreSQL phổ biến, phiên bản 6.0.0-beta vừa ra mắt với nhiều cải tiến về khả năng tích hợp monitoring. Những thay đổi chính là Prometheus hiện nay được cấu hình làm nguồn dữ liệu (source) thay vì chỉ là đích điểm (sink) để pgwatch đẩy metrics qua pushgateway. Điều này cho phép Prometheus tự động thu thập (scrape) metrics từ pgwatch qua HTTP endpoint, giảm độ trễ và loại bỏ nhu cầu cấu hình pushgateway riêng. Kết quả là hệ thống giám sát trở nên đơn giản hơn, độ tin cậy tăng vì giảm một lớp trung gian và dễ dàng mở rộng với các quy tắc cảnh báo của Prometheus. Từ bài học này, các team DevOps có thể suy nghĩ về việc đảo ngược hướng dữ liệu trong các hệ thống quan sát để tối ưu hoá độ trễ và giảm phụ thuộc vào cơ chế push.
Vì sao nên đọc: Bài viết này giúp lập trình viên hiểu cách Prometheus trong pgwatch v6 chuyển từ điểm thu thập dữ liệu thành nguồn cung cấp dữ liệu, mang lại khả năng giám sát và phân tích hiệu suất cơ sở dữ liệu Postgres linh hoạt hơn.
Trả lời 3 câu hỏi ngắn để nhận điểm thưởng cho bài này. Chỉ làm khi bạn muốn lấy điểm.
3 câu hỏi · dưới một phút · không bắt buộc
Nguồn: https://www.cybertec-postgresql.com/en/pgwatch-v6-prometheus-becomes-a-source-not-just-a-sink. 8 Sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Đang tải bình luận…
PostgreSQL mặc định bọc mỗi câu lệnh trong một giao dịch riêng khi không có BEGIN…COMMIT rõ ràng. Tuy nhiên, khi gửi nhiều câu lệnh trong một chuỗi truy vấn đơn (thông qua PQexec hoặc các hàm plpgsql) hoặc sử dụng các tiện ích như COPY và CREATE INDEX CONCURRENTLY, máy chủ sẽ ẩn ý tạo một giao dịch duy nhất bao gồm tất cả các câu lệnh đó. Điều này có thể dẫn đến việc giữ khóa lâu hơn, tiêu thụ ID giao dịch tăng nhanh và làm khó khăn việc rollback một phần công việc khi lỗi xảy ra. Do đó, lập trình viên cần kiểm tra xem ứng dụng của mình có vô tình nhóm nhiều câu lệnh vào một giao dịch ngầm không và cân nhắc sử dụng BEGIN…COMMIT cụ thể khi cần kiểm soát granularity. Theo dõi pg_stat_activity để phát hiện các giao dịch mở dài hạn cũng là biện pháp phòng ngừa tốt.
Bài này giúp lập trình viên hiểu rõ cách Postgres tự động tạo giao dịch nhiều câu lệnh, tránh lỗi và tối ưu hiệu năng.
Bài viết giải thích vai trò của hai tham số GUC log_destination và logging_collector trong PostgreSQL, mô tả cách logging collector hoạt động như một daemon dựa trên pipe để tránh mất và garbled log messages. Khi bật logging_collector, PostgreSQL phải khởi động lại vì daemon được tạo trong quá trình khởi động, và các định dạng log như stderr, csvlog và jsonlog đều được đưa vào pipe này. Tuy nhiên, dưới tải cao, collector có thể trở thành điểm nghẽn và làm giãn cả instance, trong khi việc sử dụng syslog lại có nguy cơ silently drop messages khi hệ thống quá tải. Bài cũng so sánh mặc định của log_destination trên các nền tảng phổ biến: Debian/Ubuntu thường để stderr, PGDG RPMs thường dùng csvlog, Docker images và một số dịch vụ quản lý có thể pre‑configure jsonlog hoặc syslog tùy theo nhà cung cấp. Từ đó, tác giả khuyên trong môi trường production nên chọn định dạng log phù hợp với hệ thống giám sát, bật logging_collector chỉ khi cần lưu trữ tập trung và luôn monitor throughput để tránh stall, đồng thời cân nhắc sử dụng syslog với buffer đủ lớn hoặc các giải pháp bên ngoài như Fluentd để tránh mất log.
Bài giải thích chi tiết về log_destination và logging_collector GUCs giúp bạn hiểu rõ cơ chế logging của PostgreSQL, từ đó tối ưu hóa cấu hình giám sát và xử lý log hiệu quả trong môi trường production.
Debezium 3.7.0.Beta1 là bản phát hành beta mới nhất của nền tảng mã nguồn mở phân tán dùng để bắt thay đổi dữ liệu (Change Data Capture). Bản beta này tiếp tục duy trì tính năng kết nối với các cơ sở dữ liệu phổ biến như MySQL, PostgreSQL, MongoDB và SQL Server, cho phép ứng dụng theo dõi ngay các thao tác INSERT, UPDATE, DELETE. Nhờ cơ chế lưu trữ bền vững và xử lý nhanh, Debezium đảm bảo không bỏ lỡ bất kỳ sự kiện nào ngay cả khi hệ thống gặp sự cố. Với việc phát hành beta, nhóm phát triển muốn thu thập phản hồi từ cộng đồng để ổn định phiên bản 3.7.0 cuối cùng. Điều này nhắc nhở các lập trình viên rằng việc sử dụng một giải pháp CDC đáng tin cậy như Debezium giúp xây dựng hệ thống phản hồi sự kiện real‑time mà không lo mất dữ liệu.
Debezium 3.7.0.Beta1 mang đến những cải tiến đáng chú ý cho việc xử lý sự kiện thay đổi dữ liệu hiệu quả.
Bài viết mô tả bối cảnh nhu cầu tách biệt lưu trữ và tính toán trong hệ thống Postgres khi ứng dụng AI agents ngày càng tăng. Nó giải thích cách coi WAL (Write‑Ahead Log) như nguồn thực thể duy nhất và đưa nó lên Amazon S3 để lưu trữ đối tượng. Kỹ thuật này cho phép ricostruzione cơ sở dữ liệu từ WAL trên S3 mà không cần giữ toàn bộ dữ liệu trên đĩa local, giảm chi phí lưu trữ và mở rộng khả năng sao chép bất đồng bộ. Các tác động bao gồm thời gian phục hồi nhanh hơn, khả năng truy vấn lịch sử dữ liệu trực tiếp từ S3 và tích hợp dễ dàng với các công cụ xử lý sự kiện cho agents. Bài học chính là việc xem WAL như lớp lưu trữ không thay đổi mở ra kiến trúc lakebase, giúp团队 tách biệt công việc vận hành Postgres khỏi chi phí cơ sở hạ tầng và chuẩn bị sẵn sàng cho workloads AI‑native.
Bài viết giúp lập trình viên hiểu cách tận dụng WAL và S3 để tối ưu hóa lưu trữ dữ liệu trong thời đại AI agents.
Bài viết thực nghiệm trên PostgreSQL bằng cách tăng số kết nối từ 1 lên 400 để đo …
LibreDB Studio là IDE SQL mã nguồn mở, tự host cho PostgreSQL chạy trên trình duyệt, triển …
PostgreSQL chuẩn bị câu lệnh (prepared statement) sẽ tạo kế hoạch tùy chỉnh dựa trên giá trị tham số thực tế trong năm lần thực thi đầu tiên, mang lại chất lượng kế hoạch như thay thế văn bản. Khi đến lần thực thi thứ sáu, hệ thống xây dựng kế hoạch chung (generic plan) không sử dụng giá trị tham số và so sánh chi phí ước tính của nó với chi phí trung bình của các kế hoạch tùy chỉnh; nếu kế hoạch chung có chi phí thấp hơn, PostgreSQL sẽ chuyển sang dùng kế hoạch chung và giữ nó cho tới khi bị làm vô hiệu. Kế hoạch chung dựa trên ước tính chọn lọc mù quáng (ví dụ, phân số không null chia số giá trị riêng biệt cho phép bằng, một phần ba bảng cho phép không bằng), có thể sai lệch nghiêm trọng trên dữ liệu lệch, dẫn đến việc truy vấn chậm xuống bất ngờ sau lần thực thi thứ sáu. Quyết định này chỉ dựa trên chi phí ước tính, không đo lường thời gian thực thi thực và có tính dính dáng bất đối xứng; các nguyên nhân thường gặp là hàm PL/pgSQL và các driver như psycopg 3 hoặc JDBC mà tự động nâng cấp thành câu lệnh có tên sau ngưỡng mặc định (5 lần), khiến chuyển đổi xảy ra khoảng lần thực thi thứ mười hoặc mười một. Các biện pháp khắc phục bao gồm đặt plan_cache_mode=force_custom_plan cho các truy vấn lệch, tắt chuẩn bị ở mức driver (prepare=False), viết lại truy vấn hoặc tạo chỉ mục phần phần trên cột lệch.
Bài này giúp lập trình viên hiểu và giải quyết hiện tượng truy vấn PostgreSQL đột ngột chậm sau lần thực hiện thứ sáu do sự chuyển đổi sang generic plan không phù hợp với dữ liệu không đồng nhất.
Trong PostgreSQL, các replica bất đồng bộ thường trả về dữ liệu cũ vì chúng chỉ áp dụng WAL sau một khoảng trễ, gây ra hiện tượng đọc không thấy bản ghi vừa ghi trên primary.
Phiên bản PostgreSQL 19 bổ sung lệnh WAIT FOR cho phép một truy vấn READ chỉ định vị trí WAL (log sequence number) mà nó muốn chờ trước khi trả về kết quả.
Khi lệnh được thực hiện, phiên bản server sẽ tạm dừng việc đọc cho đến khi WAL đã được replay tới vị trí đó trên replica, từ đó đảm bảo read‑your‑writes mà không cần chuyển sang synchronous replication hoặc tăng toàn bộ độ trễ hệ thống.
Điều đáng học: thay vì phải bật synchronous replication toàn cluster hoặc chịu đọc stale data, разработчики có thể sử dụng WAIT FOR cho các giao dịch cụ thể nơi cần nhất quán đọc‑ghi, tiết kiệm tài nguyên và kiểm soát độ trễ chi tiết.
Ví dụ thực tế, một lệnh như SELECT ... WAIT FOR LSN '0/3000000' sẽ chỉ trả về sau khi replica đã áp dụng WAL tới LSN đó, cho phép ứng dụng xác nhận ngay lập tức việc ghi vừa thực hiện trên primary mà không ảnh hưởng đến các truy vấn khác.
Bài này giúp lập trình viên hiểu cách sử dụng WAIT FOR trong PostgreSQL 19 để đảm bảo tính nhất quán read-your-writes trên bản sao bất đồng bộ.
Đọc tin ở đây, luyện code, học theo lộ trình và luyện IELTS trên các sản phẩm anh em — tất cả kết nối với nhau trong hệ sinh thái 8 Sync.
Cổng chính của hệ sinh thái: giới thiệu sản phẩm, blog và bảng giá trọn bộ.
Khám pháHọc theo lộ trình rõ từng chặng: video, quiz chấm tự động, certificate và mentor đang làm nghề.
Xem lộ trình1.000+ bài DSA, đề tiếng Việt, chấm tự động 7 ngôn ngữ — nhiều bài FREE, chạy ngay trên trình duyệt.
Luyện miễn phíChấm bốn kỹ năng IELTS bằng AI, phản hồi chi tiết theo rubric.
Dùng thử miễn phíAI IDE 22 MB cho dev Việt.
Tải miễn phíBộ nhớ tổ chức cho AI agent.
Khám pháAI trực Fanpage, tự sàng lọc lead.
Dùng thử