Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / İşletme

Referans

PostgreSQL rolleri ve ayarı

postgres-roles.sql içindeki iki veritabanı rolü, yedek çalıştırıcısının rol denetimi ve pg-tune.sh dosyasının yazdığı ayarlar.

Bir Cluster ERP dağıtımı her veritabanı sunucusunda iki PostgreSQL rolüne ihtiyaç duyar: uygulama rolü ve yedek rolü. Bu sayfa onları deploy/postgres-roles.sql dosyasının oluşturduğu biçimde, yedek çalıştırıcısının her dökümden önce yaptığı denetimi ve deploy/pg-tune.sh dosyasının bir düğüm için yazdığı ayarları açıklar. Parolalar hiçbir zaman bu sayfanın parçası değildir; betik operatörün değiştirdiği yer tutucular taşır.

Kapsam ve kaynak

  • Tanımlandığı yer: deploy/postgres-roles.sql, deploy/pg-tune.sh ve src/cluster_erp/server/backup_tenants.py (assert_dump_role_can_read_everything).
  • Sayı: iki CREATE ROLE ifadesinden sayılan iki rol; pg-tune.sh içindeki üretilen dosyanın satırlarından sayılan on dört ayar.

Roller

Rol Nitelikler Kullanan Kaynak
uygulama rolü LOGIN, CREATEDB, NOSUPERUSER, NOBYPASSRLS Kontrol düzlemi ve kiracı veritabanlarını kendisi oluşturan sunucu. deploy/postgres-roles.sql:13-27
yedek rolü LOGIN, BYPASSRLS, NOSUPERUSER, NOCREATEDB, pg_read_all_data üyesi Yalnız yedek çalıştırıcısı. deploy/postgres-roles.sql:29-42

Betikte yazılı kurallar:

  • Her veritabanı sunucusunda, her veri ikameti bölgesi dahil çalıştırın (deploy/postgres-roles.sql:2-3).
  • Çalıştırmadan önce iki parolayı da değiştirin. DDL ifadelerini günlüğe yazan bir sunucuda parolaları bunun yerine sonradan \password ile ayarlayın (deploy/postgres-roles.sql:5-8).
  • Yeniden çalıştırmak güvenlidir: var olan bir rol parolasını korur ve yalnız nitelikler yeniden uygulanır (deploy/postgres-roles.sql:10-11).
  • Uygulama rolüne hiçbir zaman BYPASSRLS verilmez; bu, özel tablolardaki satır korumasını kapatırdı (deploy/postgres-roles.sql:13-15).

CLUSTER_ERP_BACKUP_DB_USER ve CLUSTER_ERP_BACKUP_DB_PASSWORD (veya CLUSTER_ERP_BACKUP_DB_PASSWORD_FILE) ayarları çalıştırıcıyı yedek rolüne yönlendirir (src/cluster_erp/server/backup_tenants.py:67-80). Bkz. yapılandırma başvurusu.

Yedek rolü denetimi

Her dökümden önce assert_dump_role_can_read_everything, PostgreSQL'e döküm rolünün süper kullanıcı olup olmadığını veya BYPASSRLS niteliği taşıyıp taşımadığını ve süper kullanıcı ya da pg_read_all_data üyesi olup olmadığını sorar. Yanıtlardan biri hayır olduğunda çalıştırıcı rolü ve eksik niteliği adlandıran bir hatayla durur (src/cluster_erp/server/backup_tenants.py:105-144). postgres-roles.sql dosyasının son SELECT ifadesi iki rol için aynı nitelikleri gösterir (deploy/postgres-roles.sql:44-52).

Ayar değerleri

pg-tune.sh düğümün belleğini ve işlemci sayısını okur, PostgreSQL 16'nın conf.d klasörüne tek bir dosya yazar ve PostgreSQL'i yeniden başlatır (deploy/pg-tune.sh:23-25, deploy/pg-tune.sh:33-69).

Ayar Yazılan değer Kaynak
shared_buffers belleğin dörtte biri deploy/pg-tune.sh:37, deploy/pg-tune.sh:51
effective_cache_size belleğin yüzde 60'ı deploy/pg-tune.sh:38, deploy/pg-tune.sh:52
maintenance_work_mem bellek bölü 16, en çok 2048 MB deploy/pg-tune.sh:39, deploy/pg-tune.sh:53
work_mem (bellek eksi paylaşılan tamponlar) bölü 4 ve bölü 100, 8 ile 64 MB arası deploy/pg-tune.sh:40-42, deploy/pg-tune.sh:54
random_page_cost 1.1 deploy/pg-tune.sh:55
effective_io_concurrency 200 deploy/pg-tune.sh:56
wal_buffers 16MB deploy/pg-tune.sh:57
min_wal_size 1GB deploy/pg-tune.sh:58
max_wal_size belleğin dörtte biri, 1024 ile 8192 MB arası deploy/pg-tune.sh:43-45, deploy/pg-tune.sh:59
checkpoint_completion_target 0.9 deploy/pg-tune.sh:60
max_worker_processes işlemci sayısı deploy/pg-tune.sh:61
max_parallel_workers işlemci sayısı deploy/pg-tune.sh:62
max_parallel_workers_per_gather işlemci sayısının yarısı, en az 1 deploy/pg-tune.sh:46, deploy/pg-tune.sh:63
max_parallel_maintenance_workers işlemci sayısının yarısı, en az 1 deploy/pg-tune.sh:46, deploy/pg-tune.sh:64

Kısıtlar ve doğrulama

  • Betik yalnız root olarak, yalnız PostgreSQL 16 conf.d klasörü varsa ve yalnız postgresql.conf o klasörü içeriyorsa çalışır (deploy/pg-tune.sh:28-31).
  • 1 GB'tan az belleği olan bir düğümü reddeder (deploy/pg-tune.sh:35).
  • Yeniden başlatmadan sonra uygulanan ayarlardan yedisini yazar ve uygulamanın yeniden başlatılmasını ister (deploy/pg-tune.sh:70-72).
  • Sunucunun açılışı, işçi sayısı çarpı havuz artı taşma max_connections değerini aşınca uyarır (src/cluster_erp/server/app.py:610-631). pg-tune.sh, max_connections değerini değiştirmez.

Tutarsızlıklar

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
yedek rolü CLUSTER_ERP_BACKUP_DB_USER Tam döküm almak için satır korumasını aşarak okuyan, yalnız yedek çalıştırıcısının kullandığı veritabanı rolü. yedek rolü deploy/postgres-roles.sql:29-42
satır koruması FORCE ROW LEVEL SECURITY Özel tablolarda tablo sahibine de uygulanan satır düzeyi güvenlik. satır koruması src/cluster_erp/server/backup_tenants.py:105-113

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13