Mục lục

1. Các tham số cấu hình là gì?

Rất nhiều các hoạt động, hay thành phần của PostgreSQL có thể điều chỉnh thông qua các tham số cấu hình.

Ví dụ:

  • Bạn có thể giới hạn số lượng session tối đa được phép kết nối đến database
  • Bạn có thể thay đổi port 5432 mặc định sang một port khác (như 25432 chẳng hạn)
  • Bạn có thể thay đổi đường dẫn lưu log, WAL  file…

Bạn có thể tham khảo thêm các bài viết sau:

Đọc thêm  Các tham số cấu hình Memory trong PostgreSQL
Đọc thêm  Cấu hình để kết nối với PostgreSQL từ bên ngoài
Đọc thêm  Cấu hình chức năng archive mode trong PostgreSQL

Bài viết này sẽ hướng dẫn bạn cách cấu hình các tham số đó.

 

2. Giải thích cấu trúc file postgresql.conf

Thông thường, khi cài đặt PostgreSQL, các tham số sẽ được cấu hình theo giá trị mặc định, và được lưu tại file postgresql.conf. File này thường nằm tại data directory hay gọi cách khác là thư mục lưu trữ database của bạn.

Đọc thêm  Ý nghĩa các thư mục trong PostgreSQL

Nếu bạn không tìm thấy nó ở đó, bạn hãy kết nối vào PostgreSQL bằng psql và gõ lệnh show config_file như sau:

$ psql
psql (13.2)
Type "help" for help.

postgres=# 
postgres=# show config_file;
              config_file               
----------------------------------------
 /var/lib/pgsql/13/data/postgresql.conf
(1 row)

File postgresql.conf có cấu trúc như sau:

# This is a comment
log_connections = yes
log_destination = 'syslog'
search_path = '"$user", public'
shared_buffers = 128MB

Như bạn thấy, trừ các dòng comment là các dòng có ký tự # ở đầu, các dòng còn lại là tên các tham số cùng giá trị tương ứng của nó.

Giả sử có tham số cấu hình mà có nhiều dòng gán nhiều giá trị xuất hiện trong file postgresql.conf thì giá trị xuất hiện cuối cùng sẽ được chấp nhận.

Khi cài đặt PostgreSQL, các tham số này sẽ được gán cho 1 giá trị mặc định.

Trên thực tế, việc để giá trị mặc định như vậy không thực sự tốt, bạn cần có sự hiểu biết về các tham số quan trọng để có thể nâng cao hiệu năng cơ sở dữ liệu. Phần lớn các tham số cấu hình này được phân loại theo các danh mục sau:

  • Các tham số  cấu hình kết nối (port, listener_addresses, max_connection…)
  • Các tham số cấú hình các thành phần trong PostgreSQL (wal_buffers, data_directory, shared_buffers, temp_buffers,…)
  • Các tham số cấu hình các tính năng trong PostgreSQL (archive_mode, autovacuum, row_security, hot_standby,…)
  • Các tham số cấu hình các vấn đề liên quan đến tối ưu (max_parallel_workers, synchronous_commit, checkpoint_timeout,…)

 

3. Cách xem giá trị của các tham số

1. Cách 1: Xem trực tiếp trong file postgresql.conf

Cách này có vẻ đơn giản nhất, bạn chỉ cần dùng 1 trình soạn thảo như vi, tìm đến thư mục lưu file postgresql.conf và mở nó lên xem thôi.

Đọc thêm  Bí kíp Linux #5: Tạo file bằng trình soạn thảo vi

Tuy nhiên, bạn có thể sẽ gặp khó khăn trong việc tìm kiếm 1 tham số bạn cần trong đó.

2. Cách 2: Xem ở view pg_settings

Bạn sử dụng câu lệnh sau để hiển thị hết các tham số đang có

 select name, setting from pg_settings ;

                  name                  |                    setting                    
----------------------------------------+-----------------------------------------------
 allow_system_table_mods                | off
 application_name                       | psql
 archive_cleanup_command                | 
 archive_command                        | pgbackrest --stanza=my_stanza archive-push %p
 archive_mode                           | on
 archive_timeout                        | 10
 array_nulls                            | on
 authentication_timeout                 | 60
 autovacuum                             | on
 autovacuum_analyze_scale_factor        | 0.1
 autovacuum_analyze_threshold           | 50
 autovacuum_freeze_max_age              | 200000000
 autovacuum_max_workers                 | 3
 autovacuum_multixact_freeze_max_age    | 400000000
 autovacuum_naptime                     | 60
 autovacuum_vacuum_cost_delay           | 2
 autovacuum_vacuum_cost_limit           | -1
 autovacuum_vacuum_insert_scale_factor  | 0.2
 autovacuum_vacuum_insert_threshold     | 1000
 autovacuum_vacuum_scale_factor         | 0.2
 autovacuum_vacuum_threshold            | 50
--More--

Bạn cũng có thể sử dụng mệnh đề where để chỉ xem giá trị của tham số mình muốn

postgres=# select name, setting from pg_settings where name = 'archive_mode';
     name     | setting 
--------------+---------
 archive_mode | on
(1 row)

Cách này nói chung cũng ổn, nhưng lại là cách tôi ít dùng nhất.

3. Cách 3: Sử dụng câu lệnh show

Cách này đơn giản và tiện nhất, bạn muốn xem tham số nào chỉ cần gõ lệnh show + tên tham số là được

postgres=# show archive_mode;
 archive_mode 
--------------
 on
(1 row)

Cái hay ở chỗ, trong trường hợp bạn ko nhớ chính xác tên tham số, bạn chỉ cần gõ 1 phần tên của tham số. VD: Tôi chỉ gõ chữ archive. Sau đó tôi ấn Tab 2 lần, PostgreSQL sẽ gợi ý cho tôi tất cả các tham số có chứa chuỗi archive ở đầu

postgres=# show archive_
archive_cleanup_command  archive_command          archive_mode             archive_timeout          
postgres=# show archive_

Để xem toàn bộ các tham số, bạn sử dụng lệnh show all;

postgres=# show all;

 

4. Cách thay đổi giá trị của tham số

Có 2 cách để thay đổi giá trị cho tham số:

1. Cách 1: Hướng dẫn cấu hình postgresql.conf

2. Cách 2: Hướng dẫn thay đổi bằng lệnh

Sử dụng lệnh ALTER SYSTEM SET tên_tham_số = <giá trị mới>

postgres=# alter system set logging_collector = false;
ALTER SYSTEM

Các tham số sau khi bị sửa bằng cách này sẽ được tại file postgresql.auto.conf cùng thư mục với postgresql.conf. Các bạn chú ý nhé.

Sau khi đã thay đổi các tham số này, bạn reload lại cấu hình bằng lệnh sau để giá trị mới có hiệu lực.

postgres=# select pg_reload_conf();
 pg_reload_conf 
----------------
 t

hoặc:

$ pg_ctl reload
server signaled
-

Tuy nhiên, cũng sẽ có các tham số yêu cầu bạn phải khởi động lại PostgreSQL instance thì mới có hiệu lực. Làm thế nào để biết tham số nào thay đổi thì cần phải restart, tham số nào không, tôi sẽ trình bày ở một bài khác.

 

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 2: ADMIN 1 + DATA GUARD

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é.

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x