Mục đích của bài viết này là cung cấp cho bạn hình dung về công việc quản trị Database (Database Administrator – DBA) và giúp định hướng việc học của bạn nếu bạn còn bối rối.


   Học các thuật ngữ và khái niệm quan trọng

  • Object model: data types, columns, rows, tables, schemas, databases, queries.
  • Relational model: domains, attributes, tuples, relations, constraints, NULL.
  • Databases high-level concepts: ACID, MVCC, transactions, write-ahead log, query processing.

   Học cài đặt và khởi động PostgreSQL

  • Cách sử dụng các trình quản lý gói phần mềm trên Linux (APT, YUM, RPM, …)
  • Sử dụng docker (không bắt buộc)
  • Quản lý service PostgreSQL bằng systemd (start, stop, restart, reload).
  • Quản lý service PostgreSQL bằng pg_ctl, pg_ctlcluster.
  • Kết nối vào Postgres bằng psql.
  • Deploy database service trên môi trường cloud như AWS, GCE, Azure, Heroku, DigitalOcean, … (không bắt buộc)
Đọc thêm  Hướng dẫn cài đặt PostgreSQL trên CentOS 7
Đọc thêm  Cài đặt PgAdmin để quản lý PostgreSQL

   Học cách cấu hình PostgreSQL

Học cách cấu hình các thành phần cơ bản trong PostgreSQL. Ở bước này, bạn chưa cần hiểu quá sâu về từng thành phần

  • Cách cấu hình các tham số trong postgresql.conf:
  • Cách cấu hình các tham số quy định sử dụng tài nguyên (Memory, CPU, Session,…)
  • Cách cấu hình Write-ahead Log
  • Hiểu khái niệm về Checkpoints và Background Writer
  • Hiểu và sử dụng Cost-based vacuum and auto-vacuum
  • Cấu hình các kỹ thuật Replication
  • Sử dụng Query planner
  • Cách sử dụng Reporting, logging và statistics
  • Sử dụng các extensions
Đọc thêm  Cấu hình tham số trong PostgreSQL
Đọc thêm  Các tham số cấu hình Memory trong PostgreSQL
Đọc thêm  PostgreSQL WAL là gì?

   Học về bảo mật PostgreSQL

Hiểu về các khái niệm quan trọng trong bảo mật và biết cách triển khai những chính sách bảo mật cơ bản

  • Các hình thức xác thực, role, pg_hba.conf, SSL settings.`
    Quyền: Cách gán/gỡ quyền, quyền mặc định
  • Các chủ đề bảo mật khác:` row-level security, selinux.

   Học các kỹ năng quản trị Database nền tảng:

Luyện tập các kỹ năng triển khai, mở rộng, bảo trì vận hành PostgreSQL và các phần mềm trong cùng hệ sinh thái

  • Replication: streaming replication, logical replication
  • Các công cụ Backup/recovery :
    • Có sẵn khi cài đặt: pg_dump, pg_dumpall, pg_restore, pg_basebackup
    • Từ hãng thứ 3: barman, pgbackrest, pg_probackup, WAL-G
  • Thủ tục kiểm tra tính khả dụng của bản backup
  • Nâng cấp Database
    • Nâng cấp bằng công cụ pg_upgrade
    • Nâng cấp bằng logical replication
  • Connection pooling: Pgbouncer, Pgpool-II, Odyssey, Pgagroal
  • Công cụ giám sát: Prometheus, Zabbix,…
  • High availability và cluster management: Patroni, Repmgr, Stolon, pg_auto_failover, PAF
  • Phần mềm Load Balancing và Service Discovery: Haproxy, Keepalived, Consul, Etcd
  • Triển khai Postgres trên Kubernetes: Simple StatefulSet setup, HELM, operators
  • Resource usage and provisioning, capacity planning
  • Học cách định kỳ vận hành hệ thống một cách tự động
    • Sử dụng 1 ngôn ngữ lập trình đơn giản như Bash, Python, Perl, ..
    • Ansible, Salt, Chef, Puppet
Đọc thêm  Cài đặt PgAdmin để quản lý PostgreSQL

   Các kỹ năng để phát triển Database

Học các nguyên lý và công cụ để phát triển Database

  • Công cụ quản lý version database : liquibase, sqitch, …
  • Data import/export, bulk loading and processing
  • Queues: Skytools PGQ
  • Data partitioning và sharding.
  • Các kỹ thuật chuẩn hóa Database

   Học các công nghệ nâng cao trong Postgres

Hiểu biết sâu sắc về:

  • Kiến trúc Process và Memory.
    • Vacuum processing
    • Buffer management
    • Lock management
    • Physical storage và file layout
    • System catalog
  • Fine-grained tuning: Per-user, per-database settings
  • Storage parameters
  • Tối ưu Database
  • Các chủ đề SQL nâng cao:
    • PL/pgSQL, procedures and functions, triggers
    • Aggregate và window functions
    • Recursive CTE
Đọc thêm  Database Cluster trong PostgreSQL là gì
Đọc thêm  Quản lý database trong PostgreSQL

   Học về xử lý sự cố trên PostgreSQL

Bạn cần tìm hiểu các công cụ để thu thập thông tin và khoanh vùng vấn đề khi có sự cố xảy ra

  • Công cụ của hệ điều hành
    • top (htop, atop)
      sysstat
      iotop
  • Postgres system views
    pg_stat_activity
    pg_stat_statements
  • Postgres tools: pgcenter
  • Query analyzing:
    • EXPLAIN
    • Depesz online EXPLAIN visualization tool
    • PEV online EXPLAIN visualization tool
    • Tensor online EXPLAIN visualization tool
  • Log analyzing: pgBadger
  • Ad-hoc analyzing using grep, awk, sed, …
  • External tracing/profiling tools: gdb, strace, perf-tools, ebpf, core dumps
  • Phương thức xử lý sự cố: USE, RED, Golden signals
Đọc thêm  Một số lỗi thông thường khi khởi động PostgreSQL

   Index và cách sử dụng index

  • B-tree, Hash, GiST, SP-GiST, GIN, BRIN
  • SQL queries patterns và anti-patterns
  • SQL schema design patterns và anti-patterns

   Kỹ năng thiết kế tổng thể

Hiểu rõ về các use case dành cho PostgreSQL, biết được khi nào thì PostgreSQL là phù hợp

  • Postgres extensions: Greenplum, Timescaledb, Citus, Postgres-XL, etc.
  • Các ưu điểm và nhược điểm của RDBMS
  • Các khác biệt giữa Postgres và các RDBMS khác hay thậm chí các NoSQL database
  • Các kỹ thuật hacking trong PostgreSQL
  • Tham gia cộng đồng PostgreSQL, trở thành 1 thành viên năng nổ đóng góp và giúp đỡ người khác
  • Reviewing patches
  • Viết patches

Nguồn: https://dangxuanduy.com/

Hãy chia sẻ bài viết này nếu bạn thấy có ích nhé
5 1 vote
Article Rating
Subscribe
Notify of
guest
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
quanpt
quanpt
27 days ago

Bài viết hay quá. Cảm ơn bạn!