Skip to main content

Vejledning til BriefCam-installation

Replikerer BriefCam PostgreSQL-databasen

Last Updated: 8 minute read
Version2025r1
SprogDansk

Dette afsnit beskriver, hvordan man strømliner replikeringen af PostgreSQL-databasen.

Forudsætninger, noter og konventioner

Bemærk

Brug Windows PowerShell og ikke kommandoprompt (cmd), når du indsætter kommandoer fra prøverne i dette dokument.

  1. Hvis der er tilstrækkelig plads på den primære server, skal du udføre en fuld sikkerhedskopiering af databasen (med værktøjet pg_dump), før du prøver at oprette replikaen.

  2. Noter den primære servers IP-adresse. Senere i dette dokument vil det blive refereret til som <primaryIP>.

  3. Noter den sekundære servers IP-adresse. Senere i dette dokument vil det blive kaldt <secondaryIP>.

  4. I PGSQL-serveren skal de følgende tre BriefCam installationskomponenter alle indstilles til enten værtsnavnet eller IP-adressen. Sørg for at de alle bruger den samme metode (for at sikre konsistens). Det gør du ved at lede efter PostgreSQL connectionString i følgende filer eller indstillinger:

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

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

    • Qlik (RESEARCH): ODBC 64-bit-poster (Server-felt)

      ODBC Driver Setup.png
  5. Det anbefales at teste systemernes fulde funktionalitet, før du opretter den sekundære server. Sørg for at være opmærksom på alle de oprindelige værdier for de parametre, du ændrer.

  6. På alle de servere, hvor BriefCam Server-komponenterne er installeret, skal du indstille værtsfilen til at pege på den primære PostgreSQL-databaseserver – dette vil tilsidesætte DNS.

  7. I sektionen BriefCam Administrator ConsoleÅbn Miljøindstillinger, og indstil DB.LocalStorageAddress- og VideoProductsPath-indstillingerne til at bruge værtsnavne og ikke IP-adresser.

  8. Hastigheden af PostgreSQL base_backup varierer betydeligt afhængigt af opsætningen af miljøet (SSD/HDD/NIC hastighed). Som en tommelfingerregel tager det på ISCSI-storage (10 Gbps links HDD array) og 1 Gbps netværkskort (vmxnet3) i et virtuelt miljø ca. 40 minutter at udføre en grundlæggende sikkerhedskopiering af PostgreSQL-databasen, der indeholder 90 GB BriefCam data.

    Overvej at teste hastigheden på det faktiske miljø for at kunne estimere, hvor lang tid basissikkerhedskopien vil tage for at kunne indstille tidsrummet for processen med at oprette replikaen korrekt.

  9. Brug den faktiske sti til PostgreSQL_Data mappen. Standard BriefCam er C:\PostgreSQL_Data. Dette kan imidlertid variere i forskellige opsætninger (senere i dette dokument vil standardstien BriefCam blive brugt).

  10. Brug den faktiske pgsql.exe sti. Standardstien BriefCam er C:\PostgreSQL\bin\psql.exe (senere i dette afsnit bruges standardstienBriefCam).

Trin på den primære server

  1. Opret forbindelse til den primære PostgreSQL server sql shell og kontroller placeringen af konfigurations- og hba-filer ved at udføre følgende kommandoer:

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

    Her er et eksempel på det forventede output (baseret på placeringen af PostgreSQL_Data mappen):

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

  2. Sikkerhedskopier de oprindelige config filer og hba filerne ved at udføre følgende kommandoer i 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. Kontroller, at sikkerhedskopifilerne blev oprettet ved at udføre følgende kommando:

    dir C:/PostgreSQL_Data/*.conf.*

    Det forventede output er:

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

    Mappe: C:\PostgreSQL_Data

    Navn på LastWriteTime-længde for tilstand

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

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

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

  4. Føj parametre til postgres.conf filen. Det gør du ved at åbne filen i et tekstredigeringsprogram og tilføje følgende linjer i slutningen af filen (lige under Customized Options sektionen):

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

  5. Opret en rolle/bruger til replikering og indstil dens adgangskode (brug ikke adgangskoden, der er angivet i eksempelkommandoerne).

    1. Opret forbindelse til den primære PostgreSQL-servers SQL shell via PowerShell-konsollen ved hjælp af kommandoen:

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

    2. Udfør følgende kommando (i den SQL-shell, der blev åbnet i det forrige trin):

      CREATE ROLE repl_user LOGIN REPLICATION PASSWORD 'replQwerty123';

  6. Føj parametre til pg_hba.conf filen. Det gør du ved at åbne filen i et tekstredigeringsprogram og føje følgende linjer til filen (under #replication privilege linjen):

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

  7. Genstart BriefCamPostgreSQL-tjenesten på den primære PostgreSQL-server ved at åbne PowerShell som administrator og køre følgende kommandoer:

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

  8. Kontroller, at konfigurationsfilerne indeholder de ændringer, du foretog i postgres.conf filen, på følgende måde:

    1. Opret forbindelse til den primære PostgreSQL-servers SQL shell via PowerShell-konsollen ved hjælp af kommandoen:

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

    2. Udskriv de brugerdefinerede konfigurationer, der er føjet til PostgreSQL conf-filen ved hjælp af kommandoerne nedenfor via SQL shell:

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

    3. Kontroller, at du nu kan se de linjer, der er føjet til postgresql.conf filen nederst i outputtet.

      Replicating postgresql conf.png
  9. Kontroller, at konfigurationsfilerne indeholder de ændringer, du foretog i pg_hba.conf filen, på følgende måde:

    1. Opret forbindelse til den primære PostgreSQL-servers SQL Shell ved at udføre følgende kommandoer:

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

      \pset personsøger fra

      VÆLG pg_read_file('pg_hba.conf');

    2. Kontroller, at du nu kan se de linjer, der er føjet til pg_hba.conf filen nederst i outputtet.

      Replicating pg_hba conf.png

Trin på den sekundære server

  1. Installer BriefCamPostgreSQL.

  2. På den sekundære PostgreSQL-server skal du stoppe BriefCamPostgreSQL-tjenesten ved at køre følgende i PowerShell som administrator:

    net stop "BriefCamPostgreSQL - PostgreSQL Server 10"

  3. Rens datamappen på følgende måde:

    1. Omdøb PostgreSQL_Data mappen.

    2. Opret en ny mappe med navnet PostgreSQL_Data og tilføj Fuld kontrol til Alle på fanen Tilladelser.

      Replicating PostgreSQL properties.png
  4. Udfør en PostgreSQL-basissikkerhedskopi fra den primære til den sekundære server på følgende måde:

    1. Udfør følgende kommando i PowerShell som administrator:

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

    2. Det anbefales at stoppe alle BriefCam tjenester på alle serverne under den potentielt lange sikkerhedskopiering af databasen. Det er muligt at udføre dette trin uden at stoppe alle tjenester, afhængigt af datasættets størrelse.

  5. På den sekundære PostgreSQL-server skal du starte BriefCamPostgreSQL-tjenesten ved at udføre følgende kommandoer i PowerShell som administrator:

    net start "BriefCamPostgreSQL - PostgreSQL Server 10"

Bekræft replikeringshandlingen

  1. Opret forbindelse til den primære PostgreSQL-servers SQL shell via PowerShell-konsollen ved hjælp af kommandoen:

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

  2. Kontroller lag-værdien ved at køre følgende kommando i SQL shell (write_lagværdien skal begynde med 00:00:00):

    SELECT write_lag,client_addr FROM pg_stat_replication ;

    Dette er et eksempel på det forventede output:

    postgres=# VÆLG write_lag,client_addr FRA pg_stat_replication ;

    write_lag | client_addr

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

    00:00:00.003972 | 10.30.30.30

    (1 række)

    postgres=#

Bemærk

Denne kontrol skal udføres mindst en gang om dagen.

Aktiver den sekundære server for at fungere som primær server

Dette afsnit beskriver proceduren for aktivering af den sekundære server som den primære instans af PostgreSQL-databasen i tilfælde, hvor den primære er defekt og gendannelse/migrering er nødvendig.

  1. Skift værtsfilen i alle BC-servere, så den afspejler <secondaryIP> i stedet for <primaryIP>.

  2. Kontroller status og forfremme den sekundære server PGSQL til at blive den primære server ved at køre følgende kommandoer i PowerShell-konsollen (sørg for at køre PowerShell i administrator, og at redigere stierne til pg_ctl.exe-filen og mappen PostgreSQL_Data i overensstemmelse hermed):

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

    Eksempeloutput:

    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”

    Eksempeloutput:

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

Opret periodisk sikkerhedskopi på den sekundære server

PG_DUMP-scripts i Windows Opgavestyring
  1. Opret %APPDATA%\postgresql\pgpass.conf filen, der indeholder legitimationsoplysningerne til databasekontrollen (dvs.: *:5432:*:dbadmin:Qwerty123). For flere oplysninger, se: https://www.postgresql.org/docs/10/libpq-pgpass.html og https://www.postgresql.org/docs/10/libpq-envars.html (eksterne links).

    Hvis ovenstående ikke virker, kan scriptenes adgangskode angives på eksekveringslinjen:

    $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. Opret en mappe til sikkerhedskopifiler, for eksempel: E:\PostgresBackups\.

  3. Opret en mappe til scriptfilerne til sikkerhedskopiering, for eksempel: E:\PostgresBackupScripts\.

  4. Opret sikkerhedskopi-scriptet på: E:\PostgresBackupScripts\backup.ps1 med de tre kommandoer, som vist nedenfor:

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

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

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

    *Den 3. kommando herover skal justeres i henhold til den krævede opbevaringsperiode for sikkerhedskopiering ved at fjerne "#"-tegnet i starten af linjen og ændre tallet 15, da det repræsenterer antallet af dage bagud. Eksempel: Hvis du ønsker at konfigurere scriptet til at slette alle filer, der er ældre end 7 dage, skal du ændre tallet 15 til 7.

  5. Test oprettelsen af sikkerhedskopien og fjernelsen af de gamle filer ved at indstille -gt til 0 og kør følgende kommando i Windows cmd:

    powershell.exe e:\PostgresBackupScripts\backup.ps1

    Replicating PostgresBackupScripts.png

    Dette vil fjerne alle de oprettede filer.

  6. Tilpas opbevaringstiden for sikkerhedskopieringerne som nævnt nederst i trin 4 ovenfor.

  7. Føj sikkerhedskopieringsscriptet til Windows Opgavestyring på følgende måde:

    1. Indstil feltet Program/script til følgende sti:

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

    2. I feltet Tilføj argumenter skal du indstille følgende: E:\PostgresBackupScripts\backup.ps1

      Replicating add arguments.png
  8. Indstil udløserne og timingen derefter.

    Replicating set triggers.png
  9. Indstil opgaven til at køre, uanset om brugeren er logget på og gem adgangskoden.

    Replicating task scheduler.png
  10. På en testserver skal du kontrollere, om filerne kan gendannes. Denne test bør være en del af din igangværende rutine.

Her er et eksempel på gendannelseskommandoen:

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

Parameteren -c udfører slip og opret. For yderligere indstillinger, se:

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

Gendan Den Primære Server, Når Den Er Fast

Hvis du brugte en sekundær server, fordi der var et problem med den primære server, beskriver dette afsnit, hvordan du vender tilbage til den primære server, når problemet er løst.

Bemærk

Detaljerne om processen herunder kan variere afhængigt af, hvilken type fejl den primære server har været udsat for. For at tage højde for det alvorligste tilfælde (et absolut nedbrud på den primære server), inkluderer trinnene nedenfor en ny installation.

  1. Installer operativsystemet fra bunden.

  2. Udfør trinene fra Trin på den primære server-sektionen på den aktuelle primære server.

  3. Udfør alle de handlinger, der er beskrevet i afsnittene nedenfor, på serverne i betragtning af, at serveren, der blev geninstalleret, nu teknisk set er den "sekundære" instans:

  4. Stop PostgreSQL-tjenesten på den server, der blev brugt som den primære server.

  5. Kontroller, at BriefCam systemet fungerer korrekt.

  6. Udfør trin til oprettelse af en replika på den server, der blev brugt som den primære server.