Eğer kişisel bilgisayarımızda bir sanal makina oluşturarak postgres kurulumu yapmak istiyorsak en kısa yol vagrant iledir. Vagrant kurulumu
create user your_username;
CREATE DATABASE mydatabase
WITH OWNER = your_username
ENCODING = 'UTF8'
LC_COLLATE = 'tr-TR-x-icu' -- ICU destekli Türkçe collation
LC_CTYPE = 'tr-TR-x-icu' -- ICU destekli Türkçe karakter türü
TEMPLATE = template0;
pg sürüm 15 için ve debian 11 için https://www.postgresql.org/download/linux/debian/ adresine gidin
Eğer cluster'ı başlatırken özel ayarlar yapmak istiyorsanız buraya başvurun. Özel initdb ayarları Yoksa aşağıdaki gibi devam edin.
Debian sistemlerde pg kümesi otomatik varsayılan dizinlerde oluşturulur.
'psql' komut satırından çalışan ve sunucu kurulumuyla birlikte gelen gelişmiş bir istemcidir. psql'in parametrelerini görmek için
psql --help
psql tanıtımı psql periodic table
Postgres çalışan servisi ve onun veri dizini birlikte cluster
denmektedir.
Postgres servisinin paket yerleri, dağıtıma göre değişir. Bir makine üzerine tercih edilmemekle birlikte birden çok cluster kurulabilir.
- Tek servis ve port
- Tek veri dizini
- Tek ayar dosyası/dosya grubu
- Dağıtık cluster değildir.
- Veritabanı sunucusu'da denir.
Binaries: /usr/lib/postgresql/${version}/bin
Data: /var/lib/postgresql/${version}/${kume_adi}
Cluster
yönetimi
- pg_ctl utility
- init.d scripts / systemd services
- pg_createcluster/pg_ctlcluster/pg_conftool vb.
Binaries: /usr/pgsql-${version}/bin
Data: /var/lib/pgsql/${version}/data
Postgresql ayar dosyaları: En Önemli 2 ayar dosyası var.
-
postgresql.conf * varsayılan yeri
/var/lib/postgresql/${version}/${cluster_adı}
. Cluster'ın çalışması gereken tüm ayarları içerir. İçinde bir çok parametre vardır. postgresql.conf a alternatif olarak postgresql.auto.conf dosyası da özel ayarların yazılması için kullanılabilir. -
pg_hba.conf İstemci erişimi denetimi bu dosyayla sağlanır.
-
------ diğer ayarlar
-
replication: postgresql.conf içinde.
-
initdbde bazı parametreler var.
-
her bir objede set edilen/edilebilen. (fillfactor)
-
geliştirici parametreleri
-
compile-time parametreleri
# postgres yöntemi
pg_ctl -D /var/lib/postgresql/${version}/${küme_adı}/ ${action}
# systemd yöntemi
systemctl ${action} postgresql.service
## cluster oluşturmak için
pg_createcluster
Usage: /usr/bin/pg_createcluster [options] <version> <cluster name> [-- <initdb options>]
Options:
-u <uid> cluster owner and superuser (default: 'postgres')
-g <gid> group for data files (default: primary group of owner)
-d <dir> data directory (default:
/var/lib/postgresql/<version>/<cluster name>)
-s <dir> socket directory (default: /var/run/postgresql for clusters
owned by 'postgres', /tmp for other clusters)
-l <dir> path to desired log file (default:
/var/log/postgresql/postgresql-<version>-<cluster>.log)
--locale <encoding>
set cluster locale (default: inherit from environment)
--lc-collate/ctype/messages/monetary/numeric/time <locale>
like --locale, but only set for a particular category
-e <encoding> Default encoding (default: derived from locale)
-p <port> port number (default: next free port starting from 5432)
--start start the cluster after creating it
--start-conf auto|manual|disabled
Set automatic startup behaviour in start.conf (default: 'auto')
--createclusterconf=file alternative createcluster.conf to use
--environment=file alternative environment file to use
<initdb options> other options to pass to initdb
# kurulu clusterları görüntülemek için
pg_lscluster
Usage: /usr/bin/pg_lsclusters [-hjs]
Options:
-h --no-header Omit column headers in output
-j --json JSON output
-s --start-conf Include start.conf information in status column
--help Print help
# clusterla etkileşim kurmak için
pg_ctlcluster
Error: Usage: /usr/bin/pg_ctlcluster <version> <cluster> <action> [-- <pg_ctl options>]