Skip to main content

Guia de instalação do BriefCam

Replicando o banco de dados PostgreSQLBriefCam

Última atualização: 9 minutos de leitura
Versão2024r2
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 componentes de BriefCaminstalaçã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 connectionStringnos 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 BriefCamdados.

    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_Datadiretório. O BriefCampadrão é C:\PostgreSQL_Data. No entanto, isso pode variar em diferentes configurações (mais tarde neste documento, o BriefCamcaminho padrão será usado).

  10. Use o pgsql.execaminho atual. O BriefCampadrão é C:\PostgreSQL\bin\psql.exe(mais adiante neste tópico, o BriefCamcaminho padrão 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_Datapasta):

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

  2. Faça backup dos hbaarquivos originais confige 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.confarquivo. Para fazer isso, abra o arquivo em um editor de texto e adicione as seguintes linhas ao final do arquivo (logo abaixo da Customized Optionsseçã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.confarquivo. Para fazer isso, abra o arquivo em um editor de texto e adicione as seguintes linhas ao arquivo (abaixo da #replication privilegelinha):

    # 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.confarquivo 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.confarquivo 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.confarquivo 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.confarquivo 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_Datapasta.

    2. Crie uma nova pasta com o nome PostgreSQL_Datae, 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 BriefCamserviç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 write_lagvalor 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.confarquivo 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.ps1com 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 -cexecuta 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 BriefCamsistema funciona corretamente.

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