# Buenas prácticas para el mantenimiento de servidores On-Premise

**URL:** <https://bc.finneg.com/t/buenas-practicas-para-el-mantenimiento-de-servidores-on-premise/987>\
**Category:** Soporte técnico\
**Tags:** servidores-onpremise, mantenimiento, cómo-se-hace\
**Created:** [9 Agosto, 2022 12:27 UTC](https://bc.finneg.com/t/buenas-practicas-para-el-mantenimiento-de-servidores-on-premise/987 "2022-08-09T12:27:34Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![AcademiaFinnegans](https://bc.finneg.com/user_avatar/bc.finneg.com/academiafinnegans/32/23146_2.png) [@AcademiaFinnegans](https://bc.finneg.com/u/AcademiaFinnegans)\
**Post date:** [9 Agosto, 2022 12:27 UTC](https://bc.finneg.com/t/buenas-practicas-para-el-mantenimiento-de-servidores-on-premise/987/1 "2022-08-09T12:27:34Z")

</div>

**Consulta** :

¿Cuáles son las tareas a configurar en los servidores Teamplace/GO On-Premise?

* * *

**Respuesta:**

**Actualizaciones**  
Es necesario:

- mantener el servidor actualizado con actualizaciones críticas del sistema operativo. Lo ideal es automatizar el proceso para que se ejecute fuera del horario de trabajo.
- mantener actualizada la aplicación, tanto de los módulos estándar como de los particulares
  - Actualización de módulos estándar: [Cómo actualizar Finnegans en servidores propios](https://bc.finneg.com/t/como-actualizar-teamplace-en-servidores-propios/624)
  - Actualización de módulos particuares: [Cómo actualizar un módulo particular en servidor propio](https://bc.finneg.com/t/como-actualizar-un-modulo-particular-en-servidor-propio/625)

**Servidor de aplicaciones**  
Respaldar periódicamente la información importante:

- la información de la empresa que se encuentra en el directorio /FAFApps. Este se corresponde con el campo “Espacio de Trabajo” que el usuario ingresa para loguearse a la aplicación.

A modo de ejemplo, si se ingresa al espacio de trabajo “EMPRESA\_PRUEBA”, hay que respaldar el directorio (y todo su contenido) /FAFApps/EMPRESA\_PRUEBA

- los archivos de configuración de la aplicación:
  - /FAFApps/faf\*.xml

- librerías de Wildfly:
  - ../wildfly/standalone/deployment/ERP-WEB.war/WEB-INF/lib/\*

- archivos de configuración de Wildfly:
  - ../wildfly/standalone/configuration/standalone.xml
  - ../wildfly/bin/standalone.conf (linux)
  - ../wildfly/bin/standalone.conf.bat (windows)

**Servidor de base de datos**

- Realizar un backup diario de la base, que es del tipo FAF12\_NombreCliente
- Configurar tareas de mantenimiento en la base de datos ([Crear una tarea del Agente de SQL Server | Microsoft Learn](https://docs.microsoft.com/es-es/sql/ssms/agent/create-a-job?view=sql-server-ver16)). Para esto es necesario tener instalado el Agente SQL Server.
- Se puede utilizar este job personalizable corriendo esta sentencia en una query desde master. Modificando :

```auto
USE msdb;
GO

-- Crear el job
EXEC dbo.sp_add_job 
  @job_name = N'Mantenimiento Diario';
GO

-- Paso 1: Ejecutar sp_updatestats
EXEC sp_add_jobstep
  @job_name = N'Mantenimiento Diario',
  @step_name = N'Update Statistics',
  @subsystem = N'TSQL',
  @command = N'EXEC sp_updatestats;',
  @database_name = N'FAF12_NombreBaseDeDatos',
  @retry_attempts = 0,
  @retry_interval = 0,
  @on_success_action = 1, -- Ir al siguiente paso
  @on_fail_action = 3; -- Salir del job con error
GO

-- Paso 2: Truncar la tabla FAFArbolSeleccion
EXEC sp_add_jobstep
  @job_name = N'Mantenimiento Diario',
  @step_name = N'Truncate FAFArbolSeleccion',
  @subsystem = N'TSQL',
  @command = N'TRUNCATE TABLE FAFArbolSeleccion;',
  @database_name = N'FAF12_NombreBaseDeDatos',
  @retry_attempts = 0,
  @retry_interval = 0,
  @on_success_action = 1, -- Aunque es el último, se puede dejar como continuar
  @on_fail_action = 3; -- Salir del job con error
GO

-- Crear el horario diario a las 21:00
EXEC dbo.sp_add_schedule
  @schedule_name = N'Mantenimiento Diario',
  @freq_type = 4, -- Diario
  @freq_interval = 1, -- Cada 1 día
  @active_start_time = 210000; -- 21:00:00
GO

-- Asociar el horario al job
EXEC sp_attach_schedule
  @job_name = N'Mantenimiento Diario',
  @schedule_name = N'Mantenimiento Diario';
GO

-- Asociar el job al servidor SQL Server Agent actual
EXEC dbo.sp_add_jobserver 
  @job_name = N'Mantenimiento Diario';
GO

```

Ejecutar desde una query de master, cambiando donde dice @database\_namedatabase\_name = N’FAF12\_NombreBaseDeDatos’, Por el nombre de la base real

Se puede ajustar el horario a ejecutar, en este ejemplo se corre a las 21 hs  
diariamente. Pueden verificar si se ejecutó a la hora deseada desde SQLServerAgent - Jobs - click derecho - View History

- Se deben configurar dos pasos:
  - exec sp\_updatestats
  - truncate table FAFArbolSeleccion

- Recomendamos correr el trabajo todos los días, fuera del horario laboral y de backups

Verificar si se ejecuta la tarea de mantenimiento:

```auto
USE msdb;
GO

SELECT 
    j.name AS NombreTarea,
    h.step_name AS Paso,
    msdb.dbo.agent_datetime(h.run_date, h.run_time) AS UltimaEjecucion,
    CASE h.run_status 
        WHEN 0 THEN 'Falló'
        WHEN 1 THEN 'Exitoso (OK)'
        WHEN 2 THEN 'Reintento'
        WHEN 3 THEN 'Cancelado'
    END AS Estado,
    STUFF(STUFF(RIGHT('000000' + CAST(h.run_duration AS VARCHAR(6)), 6), 3, 0, ':'), 6, 0, ':') AS Duracion,
    h.message AS Mensaje
FROM sysjobs j
INNER JOIN sysjobhistory h ON j.job_id = h.job_id
WHERE j.name = 'Mantenimiento Diario'
  AND h.step_id = 0 -- Muestra el resumen global del Job (o usa step_id > 0 para ver cada paso)
ORDER BY h.run_date DESC, h.run_time DESC;

```

Sino revisar desde la columna de la izquierda dentro de SQL Server Agent-\>Jobs-\>Mantenimiento Diario-\>click derecho-\>View History.

Como tarea adicional, se puede aumentar el query-timeout a 300 en caso de ser necesario, el mismo se encuentra en: /opt/wildfly/standalone/configuration/standalone.xml o C:/wildfly/standalone/configuration/standalone.xml si es windows:

![image](https://bc.finneg.com/uploads/default/original/3X/b/d/bdbc12702cf06e850eb14df4ee8df97e82943731.png)

**Envío de backups a Finnegans**  
En caso de ser necesario enviar backups a Finnegans para resolver un caso, recomendamos seguir los siguientes pasos:

- Eliminar transacciones antiguas por fecha: [SQL Server - Cómo eliminar transacciones antiguas por fecha de una base de datos en servidores propios para enviar a Finnegans](https://bc.finneg.com/t/sql-server-como-eliminar-transacciones-antiguas-por-fecha-de-una-base-de-datos-en-servidores-propios-para-enviar-a-finnegans/685)
- Reducir el tamaño de la base: [SQL Server - Cómo reducir el tamaño de una base de datos en servidores propios para enviar a Finnegans](https://bc.finneg.com/t/sql-server-como-reducir-el-tamano-de-una-base-de-datos-en-servidores-propios-para-enviar-a-finnegans/675)
- Ofuscar datos sensibles: [SQL Server - Cómo ofuscar datos sensibles en servidores propios para enviar base de datos a Finnegans](https://bc.finneg.com/t/sql-server-como-ofuscar-datos-sensibles-en-servidores-propios-para-enviar-base-de-datos-a-finnegans/674)

* * *

\_\_
