Skip to main content

Guía de instalación de BriefCam

Replicar la base de datos PostgreSQLBriefCam

Última actualización: 9 minutos de lectura
Versión2025r1
IdiomaEspañol

Esta sección detalla cómo optimizar la replicación de la base de datos PostgreSQL.

Requisitos previos, notas y convenciones

Nota

Use Windows PowerShell y no el símbolo del sistema (cmd) mientras pega comandos de los ejemplos de este documento.

  1. Si el espacio del servidor primario es suficiente, realice una copia de seguridad completa de la base de datos (utilizando la herramienta pg_dump) antes de intentar crear la réplica.

  2. Anote la dirección IP del servidor primario. Más adelante en este documento se hará referencia a él como <primaryIP>.

  3. Anote la dirección IP del servidor secundario. Más adelante en este documento se hará referencia a él como <secondaryIP>.

  4. En el servidor PGSQL, los siguientes tres componentes de BriefCaminstalación deben establecerse en el nombre de host o la dirección IP. Asegúrese de que todos utilizan el mismo método (para garantizar la coherencia). Para ello, busque el PostgreSQL connectionStringen los siguientes archivos o ajustes:

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

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

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

      ODBC Driver Setup.png
  5. Se recomienda probar la funcionalidad completa de los sistemas antes de crear el servidor secundario. Asegúrese de tomar nota de todos los valores originales de los parámetros que cambie.

  6. En todos los servidores en los que se implementen los componentes de BriefCam Server, establezca el archivo hosts para que apunte al servidor de base de datos PostgreSQL primario; esto anulará el DNS.

  7. En la BriefCam Administrator Console, abra la sección Configuración de entorno y establezca los ajustesDB. LocalStorageAddress y VideoProductsPath para utilizar nombres de host y no direcciones IP.

  8. La velocidad de PostgreSQL base_backup varía significativamente dependiendo de la configuración del entorno (velocidad de SSD/HDD/NIC). Como regla general, en el almacenamiento ISCSI (matriz de discos duros de enlaces de 10 Gbps) y NIC de red de 1 Gbps (vmxnet3) en un entorno virtual, se tarda unos 40 minutos en realizar una copia de seguridad básica de la base de datos PostgreSQL que contiene 90 GB de BriefCamdatos .

    Considere la posibilidad de probar la velocidad en el entorno real para poder estimar cuánto tiempo tardará la copia de seguridad básica en poder establecer correctamente el intervalo de tiempo para el proceso de creación de réplicas.

  9. Utilice la ruta real del PostgreSQL_Datadirectorio . El valor BriefCampredeterminado es C:\PostgreSQL_Data. Sin embargo, esto puede variar en diferentes configuraciones (más adelante en este documento se utilizará la BriefCamruta predeterminada ).

  10. Utilice la pgsql.exeruta de real. El valor BriefCampredeterminado es C:\PostgreSQL\bin\psql.exe(más adelante en este tema, se utilizará la BriefCamruta de acceso predeterminada ).

Pasos en el servidor primario

  1. Conéctese a la consola SQL del servidor PostgreSQL primario y verifique la ubicación de los archivos config y hba ejecutando los siguientes comandos:

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

    Aquí hay un ejemplo de la salida esperada (basada en la ubicación de la PostgreSQL_Datacarpeta ):

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

  2. Haga una copia de seguridad de los hbaarchivos de y originales configejecutando los siguientes comandos en 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 que los archivos de copia de seguridad se crearon ejecutando el siguiente comando:

    dir C:/PostgreSQL_Data/*.conf.*

    La salida esperada es:

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

    Directorio: C:\PostgreSQL_Data

    Nombre de longitud de LastWriteTime de 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. Añadir parámetros al postgres.confarchivo de . Para ello, abra el archivo en un editor de texto y añada las siguientes líneas al final del archivo (justo debajo de la Customized Optionssección ):

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

  5. Cree un cometido/usuario para la replicación y establezca su contraseña (no utilice la contraseña especificada en los comandos de ejemplo).

    1. Conectarse a la consola de SQL del servidor PostgreSQL primario a través de la consola PowerShell mediante el comando:

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

    2. Ejecute el siguiente comando (en la consola de SQL abierta en el paso anterior):

      CREATE ROLE repl_user LOGIN REPLICATION PASSWORD 'replQwerty123';

  6. Añadir parámetros al pg_hba.confarchivo de . Para ello, abra el archivo en un editor de texto y añada las siguientes líneas al archivo (debajo de la #replication privilegelínea ):

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

  7. Reinicie el servicio BriefCamPostgreSQL en el servidor PostgreSQL principal abriendo PowerShell como administrador y ejecutando los siguientes comandos:

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

  8. Verifique que los archivos config contengan los cambios que hizo en el postgres.confarchivo de la siguiente manera:

    1. Conectarse a la consola de SQL del servidor PostgreSQL primario a través de la consola PowerShell mediante el comando:

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

    2. Imprima las configuraciones personalizadas añadidas al archivo conf de PostgreSQL utilizando los siguientes comandos a través de la consola de SQL:

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

    3. Verifique que ahora puede ver las líneas añadidas al postgresql.confarchivo de en la parte inferior de la salida.

      Replicating postgresql conf.png
  9. Verifique que los archivos config contengan los cambios que hizo en el pg_hba.confarchivo de la siguiente manera:

    1. Conectarse a la consola de SQL del servidor PostgreSQL primario ejecutando los siguientes comandos:

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

      \pset buscapersonas desactivado

      SELECCIONAR archivo_lectura_pg ('pg_hba.conf');

    2. Verifique que ahora puede ver las líneas añadidas al pg_hba.confarchivo de en la parte inferior de la salida.

      Replicating pg_hba conf.png

Pasos en el servidor secundario

  1. Instale BriefCamPostgreSQL.

  2. En el servidor PostgreSQL secundario, detenga el servicio BriefCamPostgreSQL ejecutando lo siguiente en PowerShell como administrador:

    net stop "BriefCamPostgreSQL - PostgreSQL Server 10"

  3. Limpie el directorio de datos de la siguiente manera:

    1. Cambie el nombre de la PostgreSQL_Datacarpeta .

    2. Cree una nueva carpeta llamada PostgreSQL_Datay, en la pestaña Permisos de la carpeta, añada Control total a Todos .

      Replicating PostgreSQL properties.png
  4. Realice una copia de seguridad de base PostgreSQL desde el servidor primario al secundario de la siguiente manera:

    1. Ejecute el siguiente comando en PowerShell como administrador:

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

    2. Se recomienda detener todos los BriefCamservicios de en todos los servidores durante la copia de seguridad de la base de datos potencialmente larga. Es posible realizar este paso sin detener todos los servicios, dependiendo del tamaño del conjunto de datos.

  5. En el servidor PostgreSQL secundario, inicie el servicio BriefCamPostgreSQL ejecutando los siguientes comandos en PowerShell como administrador:

    net start "BriefCamPostgreSQL - PostgreSQL Server 10"

Verificar la operación de replicación

  1. Conectarse a la consola de SQL del servidor PostgreSQL primario a través de la consola PowerShell mediante el comando:

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

  2. Compruebe el valor de retraso ejecutando el siguiente comando en la consola de SQL (el write_lagvalor de debe comenzar por 00:00:00):

    SELECT write_lag,client_addr FROM pg_stat_replication ;

    Este es un ejemplo de la salida esperada:

    postgres# SELECT write_lag, client_addr FROM pg_stat_replication ;

    write_lag | client_addr

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

    00:00:00.003972 | 10.30.30.30

    (1 fila)

    Postgres=#

Nota

Esta comprobación debe realizarse al menos una vez al día.

Activar el servidor secundario para que actúe como servidor primario

Esta sección describe el procedimiento de activación del servidor secundario como instancia primaria de la base de datos PostgreSQL, en los casos en los que el servidor primario tiene un fallo y es necesaria la recuperación/migración.

  1. Cambie el archivo de hosts en todos los servidores BC para reflejar el <secondaryIP> en lugar de <primaryIP>.

  2. Compruebe el estado y promueva el servidor secundario PGSQL para que se convierta en el servidor principal ejecutando los siguientes comandos en la consola de PowerShell (asegúrese de ejecutar PowerShell en Administrator y de editar las rutas de acceso al archivo pg_ctl.exe y a la carpeta PostgreSQL_Data en consecuencia):

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

    Salida de ejemplo:

    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”

    Salida de ejemplo:

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

Crear una copia de seguridad periódica en el servidor secundario

Secuencias PG_DUMP en el Programador de tareas de Windows
  1. Cree el %APPDATA%\postgresql\pgpass.confarchivo de que contenga las credenciales de la base de datos (es decir: *:5432:*:dbadmin:Qwerty123). Para obtener más detalles, consulte: https://www.postgresql.org/docs/10/libpq-pgpass. html y https://www.postgresql.org/docs/10/libpq-envars. html (enlaces externos).

    Si lo anterior no funciona, la contraseña de los scripts se puede especificar en la línea de ejecución:

    $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. Cree una carpeta para los archivos de copia de seguridad, por ejemplo: .E:\PostgresBackups\

  3. Cree una carpeta para los archivos de secuencia de comandos de copia de seguridad, por ejemplo: .E:\PostgresBackupScripts\

  4. Cree la secuencia de comandos de copia de seguridad en: E:\PostgresBackupScripts\backup.ps1con los tres comandos que se muestran a continuación:

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

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

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

    * El tercer comando anterior debe ajustarse de acuerdo con el período de retención de copia de seguridad requerido eliminando el signo "#" al comienzo de la línea y modificando el número 15, ya que representa el número de días hacia atrás. Por ejemplo, si desea configurar la secuencia de comandos para eliminar todos los archivos de más de 7 días, tendría que cambiar el número 15 a 7.

  5. Pruebe la creación de la copia de seguridad y la eliminación de los archivos antiguos estableciendo -gt en 0 y ejecute el siguiente comando en Windows cmd:

    powershell.exe e:\PostgresBackupScripts\backup.ps1

    Replicating PostgresBackupScripts.png

    Esto eliminará todos los archivos creados.

  6. Ajuste el periodo de retención de las copias de seguridad como se menciona en la parte inferior del paso 4 anterior.

  7. Añada la secuencia de comandos de copia de seguridad al programador de tareas de Windows de la siguiente manera:

    1. Establezca el campo Programa/script en la siguiente ruta:

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

    2. En el campo Añadir argumentos establezca lo siguiente: E:\PostgresBackupScripts\backup.ps1

      Replicating add arguments.png
  8. Ajuste los gatillos y la sincronización en consecuencia.

    Replicating set triggers.png
  9. Configure la tarea para que se ejecute independientemente de si el usuario ha iniciado sesión y guarde la contraseña.

    Replicating task scheduler.png
  10. En un servidor de prueba, compruebe si los archivos son restaurables. Esta prueba debe ser parte de su rutina diaria.

Aquí hay un ejemplo del comando de restauración:

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

El de parámetros -crealiza la eliminación y la creación. Para opciones adicionales, consulte:

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

Volver Al Servidor Primario Una Vez Reparado

Si estaba utilizando un servidor secundario porque había un problema con el servidor primario, esta sección describe cómo volver al servidor primario una vez que se soluciona el problema.

Nota

Los detalles del proceso a continuación pueden variar dependiendo del tipo de fallo que haya sufrido el servidor primario. Para considerar el caso más grave (un bloqueo absoluto del servidor primario), los siguientes pasos incluyen una instalación nueva.

  1. Instale el sistema operativo desde cero.

  2. Realice los pasos de la sección Pasos en el Servidor Primario en el servidor primario actual.

  3. Realice todas las acciones descritas en las siguientes secciones en los servidores, teniendo en cuenta que el servidor que se reinstaló es ahora técnicamente la instancia "secundaria":

  4. Detenga el servicio PostgreSQL en el servidor que se utilizó como servidor primario.

  5. Verifique que el BriefCamsistema de funciona correctamente.

  6. Realice los pasos para crear una réplica en el servidor que se utilizó como servidor primario.