Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Сжатие базы данных / 16 сообщений из 16, страница 1 из 1
31.08.2005, 10:12
    #33242623
lyalya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
Добрый день!
Почему при сжатии базы, не уменьшается размер файла cache.dat. Уменьшается только процент заполняемости.
Для уменьшения размера приходится создавать новую базу, и в нее закачивать все глобали из старой. Есть ли другой способ?
Если можно не посылайте меня больше ....
в техническую поддержку. :))
...
Рейтинг: 0 / 0
31.08.2005, 13:07
    #33243296
Maksim UM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
К сожалению, на данный момент, таких способов нет :(
Не помогает даже бэкап/рестор...
...
Рейтинг: 0 / 0
31.08.2005, 14:59
    #33243667
lyalya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
:((
...
Рейтинг: 0 / 0
31.08.2005, 16:44
    #33244012
zdi
zdi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
Есть.

http://www.escape.ru/resh/defrag.html
...
Рейтинг: 0 / 0
05.09.2005, 17:42
    #33252462
Сашок
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
Можно используя утилиту GBLOCKCOPY создать новую БД, размер которой будет равен актуальному объему данных в исходной базе данных. После копирования данных в новую базу можно подменить старую базу на новую. При этом следует помнить, что новая база по завершении копирования будет смонтирована (ни в каких Cache' Control Panel/Configuration Manager ее видно не будет), поэтому ее надо отмонтировать программно, например, используя метод Dismount в классе %SYSTEM.Database.
Подробней об утилите GBLOCKCOPY в документации.
http://127.0.0.1:1972/csp/docbook/DocBook.UI.Page.cls?KEY=AGBC_Gblockcopy
Естественно, ни о какой конкурентной работе пользователей в это время речи нет.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
07.12.2006, 17:32
    #34184171
GD2
GD2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
имеется такая же проблема. что-нибудь изменилось?
...
Рейтинг: 0 / 0
07.12.2006, 17:35
    #34184182
GD2
GD2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
я так понимаю, это происходит из-за того, что данные физически не удаляются.
...
Рейтинг: 0 / 0
07.12.2006, 18:04
    #34184292
Rus000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
а чего вы хотели? можете назвать пример database где сжатие происходит на в том же файле?

Имхо все правильно, данные могут располагаться в cache.dat "метастазами" и как вы собираетесь сжимать такой файл? Правильно - путем содания нового и переписыванием содержимого старого
...
Рейтинг: 0 / 0
07.12.2006, 18:14
    #34184322
db2
db2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
ну проблема то в том, что данные удаленные, остаются там лежать(в файле бд).
как их удалить?
...
Рейтинг: 0 / 0
07.12.2006, 19:48
    #34184509
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
Если я ничего не путаю.
Сжатие баз из панели управление больше походить на дефрагментацию - то есть сжимаются блоки одного глобала ранее размазанные по БД.

Физическое уменьшение размера - только через перенос глаблов - вручную или через GBLOCKCOPY, как и говорилось.


PS: Кстати интересный вопрос - в 5.2 появилось шифрование БД - явно "фильтр" в демоне записи блоков, когда же ISC сделают фильтр для сжатия блоков БД по тому же GZIP ?
...
Рейтинг: 0 / 0
08.12.2006, 11:15
    #34185512
GD2
GD2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
так а как удалить данные физически из бд? там не в фрагментации дело ИМХО
...
Рейтинг: 0 / 0
08.12.2006, 20:14
    #34187360
Rus000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
KILL ^GLOBAL
...
Рейтинг: 0 / 0
09.12.2006, 10:21
    #34187641
Sergei Obrastsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
Rus000KILL ^GLOBAL
И что это даст? Логически ^GLOBAL уничтожается, физически данные остаются в освобожденных блоках и легко обнаруживаются просмотром файла cache.dat
...
Рейтинг: 0 / 0
18.12.2006, 12:11
    #34206904
-Serg-
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
Sergei Obrastsov Rus000KILL ^GLOBAL
И что это даст? Логически ^GLOBAL уничтожается, физически данные остаются в освобожденных блоках и легко обнаруживаются просмотром файла cache.dat

Что, даже после сжатия базы ?
...
Рейтинг: 0 / 0
18.12.2006, 13:02
    #34207123
SergeyMi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
Есть утилита от Квирикадзе В.Р.(с)
которая сжимат бд полуавтоматом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
DBCompact ;;Утилита сжатия баз данных Cache' 4.x и 5.x | вер.1.0.1 бета | Квирикадзе В.Р.(с) | 7 Января 2005
 ;
 new i,db,mgr,x,list,f,msg,replace
 goto interfaceFOOL
 quit
 ;
 ;d %swset^|"%SYS"|SWSET(10,1) ; запрет активности
 ;
 ;d %swset^|"%SYS"|SWSET(10,0) ; разрешение
 ;
 ;
 ; Основная рабочая точка входа
 ;__$$compact^%ZDBCompact(dataset,[inplace],[show])
 ;   где:
 ;      dataset = ^^путь\к\базе\данных\
 ;      inplace = 1 - сжать и заменить существующую (опасно! осторожно!)
 ;                0 - создать сжатую копию (безопасно)
 ;      show    = 1 - показывать индикатор (точки)          
 ;                0 - не показывать индикатор
 ;   возврат: меньше или = 0 - Завершено более-менее нормально (особенно когда 0 или -2)
 ;            больше 0 - Ошибка
 ;   расшифровка ошибки = $t(errs+(errnum+2)^%ZDBCompact) где errnum = код ошибки         
compact(ds,inplace,showdots)
 new i,dir,dt,mgr,dsd,globref,grs,grd,status,f,dtgtd,dsbak,dsstat,dtstat,err,dirn
 if $$cmver<4 quit 25
 set inplace=$g(inplace)
 if inplace'= 1  set inplace= 0  
 set showdots=$g(showdots)
 if showdots'=1 set showdots=0 
 set ds=$g(ds)
 if $e(ds,1,2)'="^^" quit  3 
 if ds="" quit  5 
 if $e(ds,$l(ds))'=$$fschr set ds=ds_$$fschr
 set dsd=$p(ds,"^",3)
 if dsd="" quit 2
 set dtgt=ds_"~COMPRESSED~"_$$fschr
 if $e(dtgt,1,2)'="^^" quit  3 
 if $e(dtgt,$l(dtgt))'=$$fschr set dtgt=dtgt_$$fschr
 set dtgtd=$p(dtgt,"^",3)
 if dtgtd="" quit 2
 set mgr="^^"_$zu(12)
 if '$d(^|mgr|SYS("UCI",dsd)) quit  6 
 set dir=dtgtd
 set dirn=$e(dir, 1 ,$l(dir)- 1 )
 if $zu( 140 , 4 ,dirn)= 0  do
 . for i= 1 : 1 : 20  set status=$zu( 3 ,dir) quit:status> 0   hang  1 
 . if $$Delete^%Wsdb(dir)
 . if $zu( 140 , 5 ,dir_"CACHE.DAT")
 . quit
 ;
 ;path1=source
 ;path2=destination
 ;
 ;ds = ^^[path1]\
 ;dtgt = ^^[path2]\
 ;dsd = [path1]\
 ;dtgtd = [path2]\
 ;dir = [path2]\
 ;dt = ^^[path2]\
 ;
 if $zu( 140 , 4 ,dirn)'=0 if $zu(140,9,dir)<0 quit 13
 set $zt="errdel"
 set status=$$Delete^%Wsdb(dir)
 set $zt=""
 if $zu(140,1,dir_"CACHE.DAT")'< 0  quit  1 
 if $zu( 140 , 1 ,dir_"cache.dat")'<0 quit 1
 if $zu(140,1,dir_"Cache.DAT")'< 0  quit  1 
 if $zu( 140 , 1 ,dir_"Cache.dat")'<0 quit 1
 if $zu(140,1,dir_"cache.DAT")'< 0  quit  1 
 if $zu( 140 , 1 ,dir_"CACHE.dat")'<0 quit 1
 set $zt="errcreate"
 if $$cmver=4 set status=$$Create^%Wsdb(dir,1,8192)
 if $$cmver=5 set status=$$Create^%Wsdb(dir,1,8192,5)
 set $zt=""
 if +status=0 quit 2
 set dt="^^"_dir
 set globref=""
 for  set globref=$o(^$|ds|GLOBAL(globref)) quit:globref=""  do
  . set grs="^|"""_ds_"""|"_$p(globref,"^",2)
  . set grd="^|"""_dt_"""|"_$p(globref,"^",2)
  . merge @grd=@grs
  . if showdots write "."
  . quit
 for i=1:1:20 set status=$zu(3,dir) quit:status>0  hang 1
 hang 1
 set dtstat=status
 set status=$zu(36,dir,0,0,dsd)  ;__Изменяем метку базы!
 do clearUCI(dir)
 if 'inplace quit - 2 
 if dtstat'>0 quit 14
 ;__Проверим соответствуют ли наименования существующих файлов (это скорее для Юникса)
 if $zu(140,1,dir_"CACHE.DAT")<0 quit 16
 if $zu(140,1,dsd_"CACHE.DAT")<0 quit 17
 set dsbak=dsd_"CACHE."_$p($h,",",1)_"."_$p($h,",",2)_".BAK"
 hang 1
 ;__Теперь надо аккуратно подменить базу!
 ; для этого:
 ; отмонтировать dsd (database source dir)
 ; если удачно: скопировать старую базу в ВАК
 ;              скопировать новую на место старой
 ;              попытаться смонтировать старую базу (уже новую)
 ;              если удалось:
 ;                            удалить компрессированую target базу
 ;                            все
 ;              если не удалось:
 ;                            вернуть ВАК на место
 ;                            попытаться смонтировать старую базу
 ;                            если не вышло: Все! "пришел полярный лис"!
 ;                            если вышло: Говорим что не смогли... хай ищут сжатую базу и руцями...
 ; если не удачно:  Говорим что не смогли... хай ищут сжатую базу и руцями...
 ; 
 ;
 ;
 ;__пытаемся отмонтировать старую базу
 for i=1:1:20 set status=$zu(3,dsd) quit:status>0  hang 1
 hang 1
 set dsstat=status
 if dsstat'> 0  quit  15    ;__если не удалось (крепко держится!)
 set status=$zu( 140 , 11 ,dsd_"CACHE.DAT",dsbak)
 if status'=0 quit $s($$mountold:18,1:19)
 set status=$zu(140,11,dir_"CACHE.DAT",dsd_"CACHE.DAT")
 if status'= 0  quit $s($$mountold: 20 , 1 : 21 )
 set status=$$mountold
 if 'status set err=22 do  quit err
  . set status=$zu(140,11,dsbak,dsd_"CACHE.DAT")
  . if status'= 0  set err= 23  quit
  . set status=$$mountold
  . if 'status set err=24
  . quit
 if '$$delcompressed quit - 1 
 quit  0 
 ;
clearUCI(dirname)
 if $g(dirname)="" quit
 if $d(^SYS("UCI",dirname)) if $zu( 49 ,dirname, 0 )< 0  kill ^SYS("UCI",dirname)
 quit
 ;
mountold()
 new i,status
 for i= 1 : 1 : 20  set status=$zu( 17 ,dsd, 0 , 0 ) quit:status> 0   hang  1 
 hang  1 
 quit $s(status> 0 : 1 , 1 : 0 )
 ;
delcompressed()
 new status,lst
 kill lst
 set status=+$$Delete^%Wsdb(dir)
 set status='status
 if $zu(140,4,dir_"CACHE.DAT")=0 set status=$zu(140,5,dir_"CACHE.DAT")
 if status'= 0  quit  0 
 set status=$$ListDir(dir_"*","lst")
 if '$d(lst) quit $s($zu(140,10,dir)=0:1,1:0)
 quit 1
 ;
errcreate set $zt="" quit 2
errdel set $zt="" quit 7
 ;
 ;
ListDir(spec,ref) 
 new path,fatr,n,atr,fn,char
 set char=$$fschr
 kill @ref
 set path=$tr(spec,"/\",$tr($j("",2)," ",char))
 if $$FindFirst for  if '$$FindNext quit
 quit  0 
FindFirst() 
 set n=$zsearch(path)
 if n'="" do GetFileAttr
 quit n'=""
FindNext() 
 set n=$zsearch("")
 if n'="" do GetFileAttr
 quit n'=""
GetFileAttr
 set fn=$p(n,char,$l(n,char))
 if $tr(fn,".")="" quit
 set @ref@(fn)=""
 quit
 ;
fschr() if $$isUNIX quit "/"
 quit "\"
 ;
isUNIX() quit $zv["UNIX"
 ;
cmver() if $zv[" 4." quit  4 
 if $zv[" 5." quit  5 
 quit  3 
 ;
cachedir()
 quit $p($zu( 86 ),$$fschr, 1 ,$l($zu( 86 ),$$fschr)- 1 )
 ;
 ;
 ;
 ;
 ;
errs ;;- 2 ;Successful! Compressed DB placed in ;Успешно! Сжатая БД находится в 
 ;;- 1 ;Successful, but can't remove Temporary DB;Успешно, но не удалось удалить временную БД
 ;;0;Successful, all done;Успешно, все готово
 ;;1;Temporary DB already exists;Временная БД уже существует
 ;;2;Can't create temporary DB;Не удалось создать временную БД
 ;; 3 ;Only be local DB (^^path);Только для локальных БД (^^путь)
 ;; 4 ;Can't compact SYSMGR DB;Не могу сжимать БД SYSMGR
 ;;5;DB not specified for compaction;Не указана ДБ для сжатия
 ;;6;DB not exists;БД не существует
 ;;7;Can't delete temporary DB;Не могу удалить временную БД
 ;; 8 ;;
 ;; 9 ;;
 ;; 10 ;;
 ;; 11 ;;
 ;; 12 ;;
 ;; 13 ;Can't create directory for temporary DB;Не могу создать директорию для временной БД
 ;;14;Can't dismount temporary DB after compaction;Не удалось размонтировать временную БД после сжатия
 ;; 15 ;Can't dismount source DB after compaction;Не удалось размонтировать исходную БД после сжатия
 ;;16;Can't find file appropriate to temporary DB;Не могу найти файл соответствующий временной БД (CACHE.DAT)
 ;; 17 ;Can't find file appropriate to source DB;Не могу найти файл соответствующий исходной БД (CACHE.DAT)
 ;;18;Can't create backup copy of source DB;Не удалось сделать резервную копию исходной БД
 ;; 19 ;FATAL! Can't mount source DB! Can't create backup copy;FATAL! Не могу смонтировать исходную БД! Не удалось сделать резервную копию
 ;; 20 ;Can't copy temporary DB to source DB;Не могу скопировать временную БД в исходную БД
 ;;21;FATAL! Can't mount source DB on copying temporary DB to source DB;FATAL! Не могу смонтировать исходную БД при копиров. временной БД в исходную
 ;; 22 ;Can't mount compressed DB, returned to previous state;Не удалось смонтировать сжатую БД, возвращено в исходное состояние
 ;;23;FATAL! Can't restore of source DB from backup copy!;FATAL! Не удалось восстановить исходную БД из резервной копии!
 ;; 24 ;FATAL! Can't mount source DB after restoration from backup copy!;FATAL! Не удалось смонтировать исходную БД восстановленную резервной копии!
 ;;25;FATAL! Cache version not supported by this utility!;FATAL! Версия Cache' не поддерживается данной утилитой!
 ;; 26 
 ;;
 ;
 ;
 ;
createDBlist
 kill db
 kill list
 if $$cmver= 4  goto createDBlist4
 for i= 0 : 1  set db=$zu( 49 ,i, 3 ) quit:db< 0   if $e(db, 1 )= 0  set db=$p(db,"^", 2 ) set db(i)=db
 quit
createDBlist4
 new mgr
 set mgr="^^"_$zu( 12 )
 set db=""
 for i= 0 : 1  set db=$o(^|mgr|SYS("UCI",db)) quit:db=""  do
  . if $p($zu( 49 ,db, 0 ),",", 1 )< 1  quit
  . if $p($zu( 49 ,db, 0 ),",", 1 )> 254  quit
  . set db(i)=db
 quit
 ;
interfaceFOOL
 set mgr=$zu( 12 )
 do createDBlist
 do BasesView
readadd write !,"Add to compress list: " read x write !
 if x="" goto readdel
 set x=+x
 if '$d(db(x)) write "No such number!",! goto readadd
 if $d(list(db(x))) write "Database "_db(x)_" currently is in list",! goto readadd
 set list(db(x))=""
 do BasesView
 goto readadd
readdel if '$d(list) goto foolnext
 write !,"Delete from compress list: " read x write !
 if x="" goto foolnext
 set x=+x
 if '$d(db(x)) write "No such number!",! goto readdel
 if '$d(list(db(x))) write "Database "_db(x)_" is not in list",! goto readdel
 kill list(db(x))
 do BasesView
 goto readdel
BasesView write #
 write " Database Compression Utility for Cache' 4.x & 5.x",!
 write "---------------------------------------------------",!
 write "Select Databases for compression:",!
 set i=""
 for  set i=$o(db(i)) quit:i=""  do
  . if db(i)'="",$d(list(db(i))) write $j(i,2)_". * "_db(i),!
  . else  write $j(i,2)_".   "_db(i),!
  . quit
 quit
foolnext if '$d(list) goto foolend       
 write "Replace LIVE Dataset [y\n] "
 read x write !
 set x=$e($zcvt(x,"L"))
 if x="y" set x="yes"
 if x'="yes" set replace=0
 else  set replace=1
 if replace do  if 'x goto foolnext
  . write !!!!!
  . write "WARNING! This procedure may be unsafely! Dataset replacement may",!
  . write "CORRUPT YOUR DATA! We strongly recommend don't do it on production",!
  . write "Dataset! You may continue this procedure on your own risk...",!!
  . write "Continue compression with Dataset replacement? [y\n] "
  . read x write !
  . set x=$e($zcvt(x,"L"))
  . if x="y" set x="yes"
  . set x=$s(x'="yes":0,1:1)
  . quit
 set i=""
 set f=0
 for  set i=$o(list(i)) quit:i=""  set f=$$onecompress("^^"_i,replace,$G(lang,"en")) if f quit
 if f write "FATAL errors occured! Compression STOPPED!",!,"Notify Database Administrator please!!!",!
foolend write !!!," *** Finished ***",!
 quit
 ;
onecompress(ds,live,lang)
 new stat,result,fatal
 set lang=$g(lang)
 if lang'="ru",lang'="en" set lang="en"
 write !
 write $s(lang="en":"Compacting dataset ",1:"Сжатие базы ")_ds,!
 d %swset^|"%SYS"|SWSET(10,1) ; запрет активности
 set stat=$$compact(ds,live,1)
 d %swset^|"%SYS"|SWSET(10,0) ; запрет активности
 write !
 set result=$p($t(errs+(stat+2)),";",$s(lang="ru":5,1:4))
 if result["FATAL" set fatal=1
 else  set fatal=0
 if fatal write $s(lang="en":"FATAL ERROR:",1:"ФАТАЛЬНАЯ ОШИБКА:"),!,result,!,$s(lang="en":"DATASET NOT MOUNTED AGAIN!",1:"БАЗА ДАННЫХ НЕ СМОНТИРОВАНА НА СВОЕ МЕСТО"),!,$s(lang="en":"NEED FOR DATABASE ADMINISTRATOR HELP",1:"НЕОБХОДИМО ВМЕШАТЕЛЬСТВО АДМИНИСТРАТОРА"),!
 if 'fatal,stat> 0  write $s(lang="en":"ERROR Compression dataset ", 1 :"ОШИБКА Сжатия набора данных")_ds,!,result,!
 if 'fatal,stat'> 0  write $s(lang="en":"Dataset "_ds_" compressed", 1 :"База "_ds_" сжата"),!,result,$s(stat=- 2 :$e(ds, 3 ,$l(ds))_"~compressed~", 1 :""),!
 write !
 quit fatal
 ;
...
Рейтинг: 0 / 0
18.12.2006, 13:10
    #34207165
Sergei Obrastsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сжатие базы данных
-Serg- Sergei Obrastsov Rus000KILL ^GLOBAL
И что это даст? Логически ^GLOBAL уничтожается, физически данные остаются в освобожденных блоках и легко обнаруживаются просмотром файла cache.dat

Что, даже после сжатия базы ?
Какое сжатие может быть на удаленном глобале? :) А так - есть вероятность, что часть блоков попадет под перемещенные записи, но вряд ли. Скорее освободится еще больше блоков.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Сжатие базы данных / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]