Skip to main content

Ghid de instalare BriefCam

Reproducerea bazei de date BriefCam PostgreSQL

Last Updated: 8 minute read
Versiune2024r2
LimbăRomână

Această secțiune detaliază modul de eficientizare a replicării bazei de date PostgreSQL.

Cerințe preliminare, note și convenții

Notă

Utilizați Windows PowerShell și nu Command Prompt (cmd) în timpul lipirii comenzilor din eșantioanele din acest document.

  1. Dacă spațiul principal al serverului este suficient, efectuați o copie de rezervă completă a bazei de date (utilizând instrumentul pg_dump) înainte de a încerca să creați reproducerea.

  2. Notați adresa IP a serverului principal. Mai târziu, în acest document, va fi denumit <primaryIP>.

  3. Notați adresa IP a serverului secundar. Mai târziu, în acest document, va fi denumit <secondaryIP>.

  4. În serverul PGSQL, următoarele trei BriefCam componente de instalare trebuie să fie setate la numele gazdei sau la adresa IP. Asigurați-vă că toate utilizează aceeași metodă (pentru a asigura coerența). Puteți face acest lucru căutând PostgreSQL connectionString în următoarele fișiere sau setări:

    • Server VS: C:\Program Files\BriefCam\BriefCam Server\VSServer.exe.config

    • Servicii Web: C:\Program Files\BriefCam\WebServices\ProWebApi\Web.config

    • Qlik (RESEARCH): înregistrări ODBC pe 64 de biți (câmpul Server)

      ODBC Driver Setup.png
  5. Se recomandă testarea funcționalității complete a sistemelor înainte de crearea serverului secundar. Asigurați-vă că ați luat notă de toate valorile originale ale parametrilor pe care îi modificați.

  6. Pe toate serverele pe care sunt implementate componentele BriefCam Server, setați fișierul gazdă să indice către serverul bază de date PostgreSQL principal - acest lucru va înlocui DNS.

  7. În BriefCam Administrator Console, deschideți secțiunea Setări de mediu și setați setările DB.LocalStorageAddress și VideoProductsPath pentru a utiliza nume de gazdă și nu adrese IP.

  8. Viteza PostgreSQL base_backup variază semnificativ în funcție de configurația mediului (viteza SSD/HDD/NIC). Ca regulă generală, pe o stocare ISCSI (matrice HDD cu legături de 10 Gbps) și o placă de rețea de 1 Gbps (vmxnet3) într-un mediu virtual, durează aproximativ 40 de minute să efectuați o copie de rezervă de bază a bazei de date PostgreSQL care conține 90 GB de BriefCam date.

    Luați în considerare testarea vitezei pe mediul real pentru a putea estima cât timp va dura backupul de bază pentru a putea seta în mod corespunzător intervalul de timp pentru procesul de creare a replicilor.

  9. Utilizați calea reală a PostgreSQL_Data directorului. Valoarea BriefCam implicită este C:\PostgreSQL_Data. Totuși, această opțiune poate varia în funcție de configurație (ulterior, în acest document, BriefCam va fi utilizată calea implicită).

  10. Utilizați pgsql.exe calea reală. Valoarea BriefCam implicită este C:\PostgreSQL\bin\psql.exe (mai târziu în acest subiect, BriefCam va fi utilizată calea implicită).

Pași pe serverul principal

  1. Conectați-vă la serverul SQL PostgreSQL shell principal și verificați locația fișierelor config și HBA executând următoarele comenzi:

    C:\PostgreSQL\bin\psql.exe -U dbadmin postgres SHOW config_file; SHOW hba_file;

    Iată un exemplu de ieșire așteptată (pe baza locației PostgreSQL_Data folderului):

    C:/PostgreSQL_Data/postgresql.conf C:/PostgreSQL_Data/pg_hba.conf

  2. Efectuați copii de rezervă ale config fișierelor și hba fișierelor originale executând următoarele comenzi în PowerShell:

    copy C:/PostgreSQL_Data/postgresql.conf C:/PostgreSQL_Data/postgresql.conf.$(((get-date).ToUniversalTime()).ToString("yyyyMMddTHHmmssZ"))

    copy C:/PostgreSQL_Data/pg_hba.conf C:/PostgreSQL_Data/pg_hba.conf.$(((get-date).ToUniversalTime()).ToString("yyyyMMddTHHmmssZ"))

  3. Verificați dacă fișierele de backup au fost create prin executarea următoarei comenzi:

    dir C:/PostgreSQL_Data/*.conf.*

    Ieșirea așteptată este:

    PS C:\Users\Administrator> dir C:/PostgreSQL_Data/*.conf.*

    Director: C:\PostgreSQL_Data

    Nume lungime mod LastWriteTime

    ---- ------------- ------ ----

    -a---- 11/10/2021 11:22 AM 4374 pg_hba.conf.20211117T100109Z

    -a---- 11/10/2021 11:25 AM 23798 postgresql.conf.20211117T100344Z

  4. Adăugați parametri la postgres.conf fișier. Puteți face acest lucru deschizând fișierul într-un editor de text și adăugând următoarele rânduri la sfârșitul fișierului (chiar sub Customized Options secțiune):

    wal_level = replica hot_standby = on hot_standby_feedback = on full_page_writes = on max_wal_senders = 6 max_replication_slots = 6

  5. Creați un rol/utilizator pentru reproducere și setați-i parola (nu utilizați parola specificată în comenzile eșantion).

    1. Conectați-vă la shell-ul SQL al serverului PostgreSQL principal prin consola PowerShell utilizând comanda:

      C:\PostgreSQL\bin\psql.exe -U dbadmin postgres

    2. Executați următoarea comandă (în shell-ul SQL deschis în pasul precedent):

      CREATE ROLE repl_user LOGIN REPLICATION PASSWORD 'replQwerty123';

  6. Adăugați parametri la pg_hba.conf fișier. Puteți face acest lucru deschizând fișierul într-un editor de text și adăugând următoarele rânduri la fișier (sub #replication privilege linie):

    # replication privilege. host replication repl_user <secondaryIP>/32 md5

  7. Reporniți serviciul BriefCamPostgreSQL pe serverul PostgreSQL principal, deschizând PowerShell ca administrator și rulând următoarele comenzi:

    net stop "BriefCamPostgreSQL - PostgreSQL Server 10" net start "BriefCamPostgreSQL - PostgreSQL Server 10"

  8. Verificați dacă fișierele de configurare conțin modificările pe care le-ați efectuat în postgres.conf fișier, după cum urmează:

    1. Conectați-vă la shell-ul SQL al serverului PostgreSQL principal prin consola PowerShell utilizând comanda:

      C:\PostgreSQL\bin\psql.exe -U dbadmin postgres

    2. Imprimați configurațiile personalizate adăugate la fișierul de conf PostgreSQL utilizând comenzile de mai jos prin SQL shell:

      \pset pager off SELECT pg_read_file('postgresql.conf');

    3. Verificați dacă puteți acum să vedeți liniile adăugate la postgresql.conf fișier în partea de jos a ieșirii.

      Replicating postgresql conf.png
  9. Verificați dacă fișierele de configurare conțin modificările pe care le-ați efectuat în pg_hba.conf fișier, după cum urmează:

    1. Conectați-vă la SQL Shell-ul serverului PostgreSQL principal executând următoarele comenzi:

      C:\PostgreSQL\bin\psql.exe -U badmin postere

      \presetare pagină oprită

      SELECTAȚI pg_read_file('pg_hba.conf');

    2. Verificați dacă puteți acum să vedeți liniile adăugate la pg_hba.conf fișier în partea de jos a ieșirii.

      Replicating pg_hba conf.png

Pași pe serverul secundar

  1. Instalați BriefCamPostgreSQL.

  2. Pe serverul PostgreSQL secundar, opriți serviciul BriefCamPostgreSQL rulând următoarele în PowerShell ca administrator:

    net stop "BriefCamPostgreSQL - PostgreSQL Server 10"

  3. Curățați directorul de date după cum urmează:

    1. Redenumiți PostgreSQL_Data folderul.

    2. Creați un folder nou PostgreSQL_Data numit și, în fila Permisiuni a folderului, adăugați control complet la Oricine.

      Replicating PostgreSQL properties.png
  4. Efectuați o copie de rezervă de bază PostgreSQL de la serverul principal la cel secundar, după cum urmează:

    1. Executați următoarea comandă în PowerShell ca administrator:

      c:\PostgreSQL\bin\pg_basebackup -h <primaryIP> -U repl_user --checkpoint=fast -D C:\PostgreSQL_Data -R TBD #--slot=standby1

    2. Se recomandă oprirea tuturor BriefCam serviciilor de pe toate serverele în timpul backupului potențial lung al bazei de date. Este posibil să efectuați acest pas fără a opri toate serviciile, în funcție de dimensiunea setului de date.

  5. Pe serverul PostgreSQL secundar, porniți serviciul BriefCamPostgreSQL executând următoarele comenzi în PowerShell ca administrator:

    net start "BriefCamPostgreSQL - PostgreSQL Server 10"

Verificați operațiunea de reproducere

  1. Conectați-vă la shell-ul SQL al serverului PostgreSQL principal prin consola PowerShell utilizând comanda:

    C:\PostgreSQL\bin\psql.exe -U dbadmin postgres

  2. Verificați valoarea de lag rulând următoarea comandă în SQL Shell (write_lagvaloarea trebuie să înceapă cu 00:00:00):

    SELECT write_lag,client_addr FROM pg_stat_replication ;

    Acesta este un exemplu al ieșirii așteptate:

    posters=# SELECTAȚI write_lag, client_addr DIN pg_stat_replication ;

    write_lag | client_addr

    -----------------+-------------

    00:00:00.003972 | 10.30.30.30

    (1 rând)

    Postere=#

Notă

Această verificare trebuie efectuată cel puțin o dată pe zi.

Activați serverul secundar pentru a acționa ca server principal

Această secțiune descrie procedura de activare a serverului secundar ca instanță principală a bazei de date PostgreSQL, în cazurile în care serverul principal este defect și este necesară recuperarea/migrarea.

  1. Schimbați fișierul hosts din toate serverele BC pentru a reflecta <secondaryIP> în loc de <primaryIP>.

  2. Verificați starea și promovați serverul secundar PGSQL pentru a deveni serverul principal, rulând următoarele comenzi în consola PowerShell (asigurați-vă că rulați PowerShell în administrator și editați căile în fișierul pg_ctl.exe și folderul PostgreSQL_Data în consecință):

    • c:\PostgreSQL\bin\pg_ctl.exe status -D ”C:\PostgreSQL_Data”

    Ieșire eșantion:

    pg_ctl: server is running (PID: 5672) C:\PostgreSQL\bin\postgres.exe "-D" "C:\PostgreSQL_Data"

    • c:\PostgreSQL\bin\pg_ctl.exe promote -D ”C:\PostgreSQL_Data”

    Ieșire eșantion:

    waiting for server to promote.... done server promoted

Creați o copie de rezervă periodică pe serverul secundar

Scripturi PG_DUMP în Windows Task Scheduler
  1. Creați %APPDATA%\postgresql\pgpass.conf fișierul care conține datele de autentificare (adică: *:5432:*:dbadmin:Qwerty123). Pentru detalii, consultați: https://www.postgresql.org/docs/10/libpq-pgpass.html și https://www.postgresql.org/docs/10/libpq-envars.html (linkuri externe).

    Dacă cele de mai sus nu funcționează, parola scripturilor poate fi specificată pe linia de execuție:

    $env:PGPASSWORD='Qwerty123' ;& c:\PostgreSQL\bin\pg_dump.exe -F t -U dbadmin -d briefcam -f e:\PostgresBackups\db_briefcam-$(((get-date).ToUniversalTime()).ToString("yyyyMMddTHHmmssZ")).tar

  2. Creați un folder pentru fișierele de backup, de exemplu: E:\PostgresBackups\.

  3. Crearea unui folder pentru fișierele script de backup, de exemplu: E:\PostgresBackupScripts\.

  4. Creați scriptul de backup la: E:\PostgresBackupScripts\backup.ps1 cu cele trei comenzi așa cum este prezentat mai jos:

    • c:\PostgreSQL\bin\pg_dump.exe -F t -U dbadmin -d postgres -f e:\PostgresBackups\db_postgres-$(((get-date).ToUniversalTime()).ToString("yyyyddTHHmssZ")).tar

    • c:\PostgreSQL\bin\pg_dump.exe -Ft -U dbadmin -d briefcam -f e:\PostgresBackups\db_briefcam-$(((get-date).ToUniversalTime()).ToString("yyyyddTHHmssZ")).tar

    • #ls -file E:\PostgresBackups\db*.tar | unde {(get-date) - $_.creationtime -gt 15.} | Remove-Item –Verbose

    *A 3-a comandă de mai sus trebuie ajustată în funcție de perioada de retenție de rezervă necesară prin eliminarea semnului "#" de la începutul liniei și modificarea numărului 15, deoarece reprezintă numărul de zile înapoi. De exemplu, dacă doriți să configurați scriptul pentru a șterge toate fișierele mai vechi de 7 zile, va trebui să schimbați numărul 15 la 7.

  5. Testați crearea copiilor de siguranță și eliminarea fișierelor vechi prin setarea -gt la 0 și rularea următoarei comenzi în Windows cmd:

    powershell.exe e:\PostgresBackupScripts\backup.ps1

    Replicating PostgresBackupScripts.png

    Se vor elimina toate fișierele create.

  6. Ajustați perioada de păstrare a backupurilor, așa cum este menționat în partea de jos a pasului 4 de mai sus.

  7. Adăugați scriptul de backup la programatorul de activități Windows după cum urmează:

    1. Setați câmpul Program/script la următoarea cale:

      C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

    2. În câmpul Adăugați argumente, setați următoarele: E:\PostgresBackupScripts\backup.ps1

      Replicating add arguments.png
  8. Setați declanșatoarele și sincronizarea în consecință.

    Replicating set triggers.png
  9. Setați ca activitatea să ruleze indiferent dacă utilizatorul este conectat și salvați parola.

    Replicating task scheduler.png
  10. Pe un server de testare, verificați dacă fișierele pot fi restaurate. Acest test ar trebui să facă parte din rutina dvs. continuă.

Iată un exemplu de comandă de restaurare:

C:\PostgreSQL\bin\pg_restore.exe -c -v -U dbadmin -d briefcam -F t e:\PostgresBackups\db_briefcam-20211122T122052Z.tar

Parametrul -c efectuează fixarea și crearea. Pentru opțiuni suplimentare, consultați:

“C:\PostgreSQL\bin\pg_restore.exe --help” 

Revenire La Serverul Principal După Ce Acesta Este Fix

Dacă ați utilizat un server secundar deoarece a existat o problemă cu serverul principal, această secțiune descrie cum să reveniți la serverul principal odată ce problema este remediată.

Notă

Detaliile procesului de mai jos pot varia în funcție de tipul de eroare suferit de serverul principal. Pentru a lua în considerare cel mai sever caz (o avarie absolută a serverului principal), pașii de mai jos includ o instalație nouă.

  1. Instalați sistemul de operare de la zero.

  2. Efectuați pașii din secțiunea Pași de pe serverul principal de pe serverul principal curent.

  3. Efectuați toate acțiunile descrise în secțiunile de mai jos pe servere, având în vedere că serverul care a fost reinstalat este acum instanța "secundară" din punct de vedere tehnic:

  4. Opriți serviciul PostgreSQL de pe serverul care a fost utilizat ca server principal.

  5. Verificați dacă BriefCam sistemul funcționează corect.

  6. Efectuați pașii pentru crearea unei reproduceri pe server care a fost utilizată ca server principal.