Changes between Version 2 and Version 3 of Phase1_Scaling_Replication


Ignore:
Timestamp:
03/01/26 01:12:13 (3 weeks ago)
Author:
226052
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Phase1_Scaling_Replication

    v2 v3  
    2626    image: postgres:18
    2727    container_name: postgres-primary
     28    networks:
     29      - anb_pgnet
    2830    restart: always
    2931    environment:
     
    4345      -c max_wal_senders=10
    4446      -c max_replication_slots=10
     47      -c hot_standby=on
    4548      -c listen_addresses='*'
    4649      -c hba_file=/etc/postgresql/pg_hba.conf
     
    4851volumes:
    4952  pg_primary_data:
     53
     54networks:
     55  anb_pgnet:
     56    driver: bridge
     57    ipam:
     58      config:
     59        - subnet: 172.19.0.0/16
    5060 }}}
    5161
     
    5868* hba_file - дефинира custom pg_hba.conf конфигурација за контролирање на пристапот.
    5969
     70За да се обезбеди детерминистичко IP адресирање, дефинирана е фиксна Docker bridge мрежа со subnet 172.19.0.0/16.
     71
    6072== Конфигурација на pg_hba.conf (hba_file)
    6173
    6274За да може standby серверот да се поврзе кон примарниот сервер и да прима WAL записи, потребно е да се дозволи replication конекција во pg_hba.conf:
    6375
    64 {{{
     76{{{ 
    6577# TYPE  DATABASE        USER            ADDRESS                 METHOD
    66 host    replication     replicator      192.168.1.103/32        scram-sha-256
    67 }}}
     78host    replication     replicator      172.19.0.1/32       scram-sha-256
     79local   all   all   trust
     80}}}
     81
    6882
    6983* host - правилото се однесува на TCP/IP конекции.
    7084* replication - правилото важи за replication конекции, а не за нормален пристап до база.
    7185* replicator - корисникот кој има REPLICATION привилегија.
    72 * 192.168.1.103/32 - IP адресата на standby серверот /32 значи дека е дозволена само таа конкретна машина.
    73 * scram-sha-256 - означува дека конекцијата се автентицира со лозинка користејќи SCRAM (Salted Challenge Response Authentication Mechanism) базиран на SHA-256 алгоритам. Лозинката не се испраќа во чист текст, туку се користи криптографски challenge–response механизам.
     86* 172.19.0.1/32 - ја претставува Docker gateway адресата преку која пристигнува replication конекцијата. Маската /32 означува дека е дозволена точно една IP адреса.
     87* scram-sha-256 - означува дека конекцијата се автентицира со лозинка користејќи SCRAM (Salted Challenge Response Authentication Mechanism) базиран на SHA-256 алгоритам.
     88
     89Бидејќи примарниот сервер работи во Docker контејнер, standby серверот не се појавува со својата реална LAN IP адреса (192.168.1.103). Docker користи bridge networking и NAT механизам, при што конекцијата кон контејнерот се појавува од Docker gateway адресата 172.19.0.1.
     90
     91Поради тоа, replication пристапот е ограничен исклучиво на gateway адресата (172.19.0.1/32), со што се обезбедува минимален и контролиран пристап до replication функционалноста.
     92
     93Дополнително, за локални Unix socket конекции во контејнерот потребно е:
     94
     95{{{ local   all   all   trust }}}
    7496
    7597