Skip to main content

Guia de instalação do BriefCam

Replicando o banco de dados BriefCam PostgreSQL

Last Updated: 9 minute read
Versão2025r1
IdiomaPortuguês

Esta seção detalha como otimizar a replicação do banco de dados PostgreSQL.

Pré-requisitos, Observações e Convenções

Nota

Use o Windows PowerShell e não o Prompt de Comando (cmd) ao colar comandos das amostras neste documento.

  1. Se o espaço do servidor primário for suficiente, faça um backup completo do banco de dados (usando a ferramenta pg_dump) antes de tentar criar a réplica.

  2. Anote o endereço IP do servidor primário. Mais tarde neste documento, ele será chamado de <primaryIP>.

  3. Anote o endereço IP do servidor secundário. Mais tarde neste documento, ele será chamado de <secondaryIP>.

  4. No servidor PGSQL, os três BriefCam componentes de instalação a seguir precisam ser definidos para o nome do host ou o endereço IP. Certifique-se de que todos estejam usando o mesmo método (para garantir consistência). Para fazer isso, procure o PostgreSQL connectionString nos seguintes arquivos ou configurações:

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

    • Serviços da Web: C:\Program Files\BriefCam\WebServices\ProWebApi\Web.config

    • Qlik (RESEARCH): entradas ODBC de 64 bits (campo Servidor)

      ODBC Driver Setup.png
  5. Recomenda-se testar a funcionalidade completa dos sistemas antes de criar o servidor secundário. Certifique-se de anotar todos os valores originais dos parâmetros que você alterar.

  6. Em todos os servidores onde os componentes do BriefCam Server estão implantados, defina o arquivo hosts para apontar para o servidor de banco de dados PostgreSQL primário - isso substituirá o DNS.

  7. Em BriefCam Administrator Console, abra a seção Configurações do ambiente e defina as configurações DB.LocalStorageAddress e VideoProductsPath para usar nomes de host e não endereços IP.

  8. A velocidade do PostgreSQL base_backup varia significativamente dependendo da configuração do ambiente (velocidade SSD/HDD/NIC). Como regra geral, no armazenamento ISCSI (array de HDD de links de 10 Gbps) e NIC de rede de 1 Gbps (vmxnet3) em um ambiente virtual, leva cerca de 40 minutos para executar um backup básico do banco de dados PostgreSQL que contém 90 GB de BriefCam dados.

    Considere testar a velocidade no ambiente real para poder estimar quanto tempo o backup básico levará para poder definir corretamente o intervalo de tempo para o processo de criação da réplica.

  9. Use o caminho real do PostgreSQL_Data diretório. O padrão BriefCam é C:\PostgreSQL_Data. No entanto, isso pode variar em diferentes configurações (mais tarde neste documento, o caminho padrão BriefCam será usado).

  10. Use o caminho pgsql.exe atual. O BriefCam padrão é C:\PostgreSQL\bin\psql.exe (mais adiante neste tópico, o caminho padrão BriefCam será usado).

Etapas no servidor primário

  1. Conecte-se à shell sql do servidor PostgreSQL primário e verifique a localização dos arquivos de configuração e hba executando os seguintes comandos:

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

    Aqui está um exemplo da saída esperada (com base na localização da PostgreSQL_Data pasta):

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

  2. Faça backup dos config arquivos originais e hba de segurança executando os seguintes comandos no 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. Verifique se os arquivos de backup foram criados executando o seguinte comando:

    dir C:/PostgreSQL_Data/*.conf.*

    A saída esperada é:

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

    Diretório: C:\PostgreSQL_Data

    Nome do Comprimento do Último Tempo de Gravação do Modo

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

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

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

  4. Adicionar parâmetros ao postgres.conf arquivo. Para fazer isso, abra o arquivo em um editor de texto e adicione as seguintes linhas ao final do arquivo (logo abaixo da Customized Options seção):

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

  5. Crie uma função/usuário para replicação e defina sua senha (não use a senha especificada nos comandos de exemplo).

    1. Conecte-se à shell do SQL do servidor PostgreSQL primário por meio do console do PowerShell usando o comando:

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

    2. Execute o seguinte comando (na shell do SQL aberta na etapa anterior):

      CREATE ROLE repl_user LOGIN REPLICATION PASSWORD 'replQwerty123';

  6. Adicionar parâmetros ao pg_hba.conf arquivo. Para fazer isso, abra o arquivo em um editor de texto e adicione as seguintes linhas ao arquivo (abaixo da #replication privilege linha):

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

  7. Reinicie o serviço BriefCamPostgreSQL no servidor PostgreSQL primário abrindo o PowerShell como administrador e executando os seguintes comandos:

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

  8. Verifique se os arquivos de configuração contêm as alterações que você fez no postgres.conf arquivo da seguinte forma:

    1. Conecte-se à shell do SQL do servidor PostgreSQL primário por meio do console do PowerShell usando o comando:

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

    2. Imprima as configurações personalizadas adicionadas ao arquivo de configuração do PostgreSQL usando os comandos abaixo via SQL shell:

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

    3. Verifique se agora você pode ver as linhas adicionadas ao postgresql.conf arquivo na parte inferior da saída.

      Replicating postgresql conf.png
  9. Verifique se os arquivos de configuração contêm as alterações que você fez no pg_hba.conf arquivo da seguinte forma:

    1. Conecte-se ao SQL Shell do servidor PostgreSQL primário executando os seguintes comandos:

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

      \pset pager off

      SELECIONE pg_read_file('pg_hba.conf');

    2. Verifique se agora você pode ver as linhas adicionadas ao pg_hba.conf arquivo na parte inferior da saída.

      Replicating pg_hba conf.png

Etapas no servidor secundário

  1. Instalar o BriefCamPostgreSQL.

  2. No servidor PostgreSQL secundário, interrompa o serviço BriefCamPostgreSQL executando o seguinte no PowerShell como administrador:

    net stop "BriefCamPostgreSQL - PostgreSQL Server 10"

  3. Limpe o diretório de dados da seguinte forma:

    1. Renomeie a PostgreSQL_Data pasta.

    2. Crie uma nova pasta com o nome PostgreSQL_Data e, na guia Permissões da pasta, adicione Controle Máximo a Todos.

      Replicating PostgreSQL properties.png
  4. Execute um backup básico do PostgreSQL do servidor primário para o secundário da seguinte forma:

    1. Execute o seguinte comando no PowerShell como administrador:

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

    2. Recomenda-se interromper todos os BriefCam serviços em todos os servidores durante o backup de banco de dados potencialmente longo. É possível realizar essa etapa sem interromper todos os serviços, dependendo do tamanho do conjunto de dados.

  5. No servidor PostgreSQL secundário, inicie o serviço BriefCamPostgreSQL executando os seguintes comandos no PowerShell como administrador:

    net start "BriefCamPostgreSQL - PostgreSQL Server 10"

Verificar a operação de replicação

  1. Conecte-se à shell do SQL do servidor PostgreSQL primário por meio do console do PowerShell usando o comando:

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

  2. Verifique o valor de defasagem executando o seguinte comando no shell do SQL (o valor write_lag deve começar com 00:00:00):

    SELECT write_lag,client_addr FROM pg_stat_replication ;

    Este é um exemplo da saída esperada:

    postgres=# SELECT write_lag, client_addr FROM pg_stat_replication ;

    write_lag | client_addr

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

    00:00:00.003972 | 10.30.30.30

    (1 linha)

    postgres=#

Nota

Essa verificação precisa ser realizada pelo menos uma vez por dia.

Ativar o servidor secundário para agir como servidor primário

Esta seção descreve o procedimento de ativação do servidor secundário como a instância primária do banco de dados PostgreSQL, nos casos em que o servidor primário está com defeito e a recuperação/migração é necessária.

  1. Altere o arquivo hosts em todos os servidores BC para refletir o <secondaryIP> em vez de <primaryIP>.

  2. Verifique o status e promova o servidor secundário PGSQL para se tornar o servidor primário executando os seguintes comandos no console do PowerShell (certifique-se de executar o PowerShell no administrador e editar os caminhos para o arquivo pg_ctl.exe e a pasta PostgreSQL_Data adequadamente):

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

    Exemplo de saída:

    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”

    Exemplo de saída:

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

Criar backup periódico no servidor secundário

PG_DUMP Scripts no Windows Task Scheduler
  1. Crie o %APPDATA%\postgresql\pgpass.conf arquivo contendo as credenciais do banco de dados (ou seja: *:5432:*:dbadmin:Qwerty123). Para obter detalhes, consulte: https://www.postgresql.org/docs/10/libpq-pgpass.html e https://www.postgresql.org/docs/10/libpq-envars.html (links externos).

    Se o acima não funcionar, a senha dos scripts pode ser especificada na linha de execução:

    $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. Crie uma pasta para arquivos de backup, por exemplo: E:\PostgresBackups\.

  3. Crie uma pasta para os arquivos de script de backup, por exemplo: E:\PostgresBackupScripts\.

  4. Crie o script de backup em: E:\PostgresBackupScripts\backup.ps1 com os três comandos conforme mostrado abaixo:

    • 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("yyyyMMddTHHmmssZ").tar

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

    *O 3º comando acima deve ser ajustado de acordo com o período de retenção de backup exigido, removendo o sinal "#" no início da linha e modificando o número 15, pois ele representa o número de dias para trás. Por exemplo, se você deseja configurar o script para excluir todos os arquivos com mais de 7 dias, você teria que alterar o número de 15 para 7.

  5. Teste a criação do backup e a remoção dos arquivos antigos definindo -gt como 0 e execute o seguinte comando no Windows cmd:

    powershell.exe e:\PostgresBackupScripts\backup.ps1

    Replicating PostgresBackupScripts.png

    Isso removerá todos os arquivos criados.

  6. Ajuste o período de retenção dos backups, conforme mencionado na parte inferior da etapa 4 acima.

  7. Adicione o script de backup ao agendador de tarefas do Windows da seguinte forma:

    1. Defina o campo Programa/script para o seguinte caminho:

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

    2. No campo Adicionar argumentos, defina o seguinte: E:\PostgresBackupScripts\backup.ps1

      Replicating add arguments.png
  8. Defina os disparos e o tempo de acordo.

    Replicating set triggers.png
  9. Defina a tarefa para ser executada independentemente se o usuário está conectado e salve a senha.

    Replicating task scheduler.png
  10. Em um servidor de teste, verifique se os arquivos são restauráveis. Esse teste deve fazer parte da sua rotina contínua.

Aqui está um exemplo do comando de restauração:

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

O parâmetro -c executa a remoção e criação. Para obter opções adicionais, consulte:

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

Reverter para O Servidor Primário Depois Que Ele For Corrigido

Se você estava usando um servidor secundário porque houve um problema com o servidor primário, esta seção descreve como reverter para o servidor primário assim que o problema for corrigido.

Nota

Os detalhes do processo abaixo podem variar dependendo do tipo de falha que o servidor primário sofreu. Para considerar o caso mais grave (uma falha absoluta do servidor primário), as etapas abaixo incluem uma nova instalação.

  1. Instale o sistema operacional do zero.

  2. Execute as etapas da seção Etapas no servidor primário no servidor primário atual.

  3. Execute todas as ações descritas nas seções abaixo nos servidores, considerando que o servidor que foi reinstalado agora é tecnicamente a instância “secundária”:

  4. Interrompa o serviço PostgreSQL no servidor que foi usado como o servidor primário.

  5. Verifique se o sistema BriefCam funciona corretamente.

  6. Execute as etapas para criar uma réplica no servidor que foi usado como o servidor primário.