Bir videoyu veritabanından silmek için şu adımları izleyin:
1. nns sunucu hizmetini durdurun (Yol: Denetim Masası \ Yönetimsel Araçlar \ Hizmetler) ,
2. Yönetici olarak bir komut istemi açın,
3. Sunucunuz varsayılan dizine yüklenmişse, PostgreSQL komutunu kullanarak komutu başlatın.
"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. Komutu kullanarak PostgreSQL'e bağlanın :
"C:\Program Files\KickidlerNode\pgsql\bin\psql.exe" -h 127.0.0.1 -p 5439 -U kickidler_node
5. Sorguyu kullanarak video hacimlerini tarihe göre kontrol edin:
select pos::date, pg_size_pretty(sum(octet_length(data))) from video_frame group by pos::date;
6. Aşağıdaki yöntemlerden birini kullanarak videoyu silin:
a) Tüm videoyu silin
Veritabanındaki tüm videoyu silmek için, aşağıdaki komutları sırayla çalıştırın
truncate video_frame; truncate video_sequence;
Eğer komutu çalıştırdıktan sonra bir hata oluşursa , sorguyu sonunda cascade kelimesiyle tekrarlayın .
b) Videonun tamamını belirli bir süre için silme
Belirli bir günün verilerini silmek için aşağıdaki komutları çalıştırın:
Veritabanında video bulunan tarihleri görüntüleyin:
select pos::date from video_frame group by pos::date;
Bir videoyu belirli bir gün için silme:
delete from video_frame WHERE pos::date = '20160523'; delete from video_sequence WHERE first_frame_pos::date = '20160523';
Birkaç farklı gün boyunca videonun silinmesi :
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';
Videodan bir periyodu sil:
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';
burada 20160523, videoyu silmek istediğiniz günün YYYYAAGG biçimindeki tarihidir
c) Belirli bir kullanıcı için tüm videoyu silme
Belirli bir kullanıcının verilerini silmek için aşağıdaki komutları çalıştırın:
Bilgisayar adının kullanıcı-etki alanı-adını ve onlar için video boyutunu listeleyin
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;
Videoyu kullanıcıya göre sil
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 );
Burada s.user_name kullanıcı adı, s.computer_name bilgisayarın adı, s.user_domain ise videoyu silmek istediğiniz etki alanının adıdır. Bazı parametreler eksikse, istekte boş bırakın. Sınırlama olarak da çıkarsanan işlemleri (olup Sınır = 100), gerektiğinde değiştirilebilir.
7. Sil komutlarından sonra, boş alan açmak için komutu yürütün
vacuum full;