Execute as seguintes operações, para liberar espaço no Servidor.
1. Pare o serviço nns (Windows\Painel de controle\Ferramentas Administrativas\Serviços).
2. Abra o prompt de comando como Administrador.
3. Use o comando PostgreSQL abaixo:
"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. Conecte no PostgreSQL usando o comando abaixo:
"C:\Program Files\KickidlerNode\pgsql\bin\psql.exe" -h 127.0.0.1 -p 5439 -U kickidler_node
5. Verifique a quantidade de videos usando o comando:
select pos::date, pg_size_pretty(sum(octet_length(data))) from video_frame group by pos::date;
6. Retire o vídeo com um dos seguintes métodos
a) Apagando todos os videos
Execute os seguintes comandos para excluir TODOS os videos:
truncate video_frame; truncate video_sequence;
Se apareceren erros depois de executar o comando anterior, repita o comando inserindo a palavra cascata no final.
b) Apagando todos os vídeos de um certo período.
Execute os seguintes comandos para excluir os videos de um certo periodo:
Mostrar as datas, para aqueles que tem videos no Banco de dados:
select pos::date from video_frame group by pos::date;
Excluir vídeo de uma data especifica:
delete from video_frame WHERE pos::date = '20160523'; delete from video_sequence WHERE first_frame_pos::date = '20160523';
Remoção de vídeo durante vários dias 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';
Remoção de vídeo o 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';
onde '20160523' é a data do dia para o qual quer retirar o vídeo, no formato de AAAA-MM-DD
c) Apagando os vídeos de um certo usuário.
Execute os seguintes comandos para excluir os videos de um usuário especifico:
Mostrando da lista de nomes do domínio do computador, nome do usuario e a volume de vídeo neles
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;
Apagando vídeos do funcionário
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 );
Aqui s.user_name - nome do usuário, s.computer_name – nome de computador, s.user_domain – nome de domínio, no qual é necessário retirar o vídeo.
Se algum dos parâmetros não existir, então deixe ele vazio no comando anterior. O limite de operações (Limit=100), é mostrado e pode ser modificado se necessário.
7. Execute o comando de limpeza rapida de espaço depois da exclusão ter sido completada.
vacuum full;