Para eliminar un video de la base de datos, siga estos pasos:
1. Detenga el servicio del servidor nns (Ruta: Panel de control \ Herramientas administrativas \ Servicios),
2. Abra una línea de comando como administrador,
3. Si su servidor está instalado en el directorio predeterminado, inicie PostgreSQL con el comando
"C:\Program Files\KickidlerNode\pgsql\bin\pg_ctl.exe" start -D "C:/Program Files/KickidlerNode/pgsql/data" -w -o "--logging-collector=on --log-destination=stderr --log-directory=pg_log --log-filename=ipg-%a.log --log-truncate-on-rotation=on --log-rotation-age=1d --log-line-prefix=\"%m \" --log-timezone=\"Europe/Moscow\" --log-statement=ddl --log-connections=on --log-disconnections=on --listen-addresses=127.0.0.1 --port=5439 --max-connections=100 --shared-buffers=262144kB --wal-buffers=5242kB --effective-cache-size=734317kB --work-mem=7811kB --maintenance-work-mem=39059kB --checkpoint-segments=64 --checkpoint-completion-target=0.9"
4. Conéctese a PostgreSQL usando el comando:
"C:\Program Files\KickidlerNode\pgsql\bin\psql.exe" -h 127.0.0.1 -p 5439 -U kickidler_node
5. Verifique la cantidad de video por fechas usando la consulta:
select pos::date, pg_size_pretty(sum(octet_length(data))) from video_frame group by pos::date;
6. Elimine el video usando uno de los siguientes métodos:
a) Eliminar todo el video
Para eliminar todo el video de la Base de Datos, ejecute la secuencia de los siguientes comandos
truncate video_frame; truncate video_sequence;
Si se producen errores después de ejecutar el comando, repita la consulta con la palabra cascade al fina.
b) Eliminar todos los videos en un período específico
Para eliminar datos de un día específico, ejecute los siguientes comandos:
Visualización de fechas para las cuales existen videos en la Base de Datos:
select pos::date from video_frame group by pos::date;
Eliminar un video para un día específico:
delete from video_frame WHERE pos::date = '20160523'; delete from video_sequence WHERE first_frame_pos::date = '20160523';
Eliminar un video en días diferentes:
delete from video_frame WHERE pos::date = '20160523' OR pos::date = '20160524' OR pos::date = '20160525'; delete from video_sequence WHERE first_frame_pos::date = '20160523' OR first_frame_pos::date = '20160524' OR first_frame_pos::date = '20160525';
Eliminar un video por un período:
delete from video_frame WHERE pos::date >= '20160523' AND pos::date <= '20160525'; delete from video_sequence WHERE first_frame_pos::date >= '20160523' AND first_frame_pos::date <= '20160525';
где 20160523 - дата дня, за который вы хотите удалить видео, в формате YYYYMMDD
c) Eliminar todo el video para un usuario específico
Para eliminar datos de un usuario específico, ejecute los siguientes comandos:
Enumere el nombre del usuario, nombre de dominio y el nombre de la computadora, así como la cantidad de video para ellos
SELECT online_session.user_name, online_session.user_domain, online_session.computer_name, pg_size_pretty(sum(octet_length(data))) FROM video_frame JOIN video_sequence ON (video_sequence.id=video_frame.sequence_id) JOIN online_session ON (video_sequence.online_session_id=online_session.id) GROUP BY online_session.user_name, online_session.user_domain, online_session.computer_name ORDER BY sum(octet_length(data)) DESC;
Eliminar video por usuario
DELETE FROM video_sequence WHERE id IN( SELECT vs.id FROM video_sequence AS vs JOIN online_session AS s ON(vs.online_session_id=s.id) WHERE s.user_name='Эдуард' AND s.computer_name='win10x64' AND s.user_domain='workgroup' LIMIT 100 );
Aquí s.user_name es el nombre de usuario, s.computer_name es el nombre de la computadora, s.user_domain es el nombre del dominio por el que desea eliminar el video. Si falta alguno de los parámetros, déjelos vacíos en la solicitud. También se muestra una restricción de operaciones (Límite = 100), que se puede cambiar si es necesario.
7. Después de los comandos de eliminación, ejecute el comando para liberar espacio
vacuum full;