powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Изменение файловой архитектуры базы
28 сообщений из 28, показаны все 2 страниц
Изменение файловой архитектуры базы
    #32945589
Подскажите, как меняется "файловая архитектура базы", т.е., допустим, есть БД на устройствах dat_1.dat log_1.dat места стало нехватать, ее растянули еще на dat_2.dat, потом еще и т.д. и теперь БД имеет вид:

Data on dat_1.dat ... dat_n.dat
Log on log_1.dat ... log_n.dat
Все разного размера.

Как перенести базу на один большой девайс для данных и один девайс для лога?

Если просто загрузить дамп на созданную новую базу, то данные и лог располагаются в том же порядке, как в старой, лог залазит на данные, данные на лог.

И еще вопрос. Если остались только файлы ОС девайсов, можно ли из них получить данные их БД?

------------------
ASE 12.0 EBF11541
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32945617
vooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как перенести базу на один большой девайс для данных и один девайс для лога?
Только полностью перемеcтить объекты со старой структуры на новую (можно испльзовать script создания + bcp для переноса данных или сторонние программы - например DBArtisan) Вообщем если данных много - операция трудоемкая.

Если просто загрузить дамп на созданную новую базу, то данные и лог располагаются в том же порядке, как в старой, лог залазит на данные, данные на лог.
Так не получится, все сегменты "перемешаются"......
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32945621
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитайте повнимательнее про табличку master..sysusages.
Насколько я знаю, привыделении девайса базе данных, а затем при перераспределении девайса по сегментам хранимые процедуры в SYBASE ASE отрабатывают не совсем корректно. В результате приходится в итоге все править в ручную. Возможны также непонятные (на первый взгляд) утечки дискового пространства. После распределения пространства приходится все дорабатывать напильником.... ((
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32945727
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Достаточно просто сделать новуб БД с размером, не меньшим чем у старой, и проднять туда дамп из старой БД.
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32945744
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, действительно, "сегменты могут перемешаться" после поднятия дампа.
На самом деле, это не "сегменты перемешаются", а фрагменты девайсов перемешаются, плохо то, что сегмент лога может начать использовать один и тот же девайс с сегментом данных.

Завтра скажу, как от этого избавиться (забыл :-)) )
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32945913
0rc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КривеняПодскажите, как меняется "файловая архитектура базы", т.е., допустим, есть БД на устройствах dat_1.dat log_1.dat места стало нехватать, ее растянули еще на dat_2.dat, потом еще и т.д. и теперь БД имеет вид:
...
Как перенести базу на один большой девайс для данных и один девайс для лога?
Если просто загрузить дамп на созданную новую базу, то данные и лог располагаются в том же порядке, как в старой, лог залазит на данные, данные на лог.


можно на новых девайсах повторить историю создания базы (то есть в том же порядке и тех же размеров выделять, но на новых девайсах)


И еще вопрос. Если остались только файлы ОС девайсов, можно ли из них получить данные их БД?


2.можно...
disk reinit
disk refit
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32947117
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДа, действительно, "сегменты могут перемешаться" после поднятия дампа.
На самом деле, это не "сегменты перемешаются", а фрагменты девайсов перемешаются, плохо то, что сегмент лога может начать использовать один и тот же девайс с сегментом данных.

Завтра скажу, как от этого избавиться (забыл :-)) )

Буду ооочень благодарен!... :)
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32949631
0rc
можно на новых девайсах повторить историю создания базы (то есть в том же порядке и тех же размеров выделять, но на новых девайсах)


Не помогло. После поднятия дампа данные и лог на новой базе расположились как и на старой.
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32949678
serg08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не напрягайся. Думаю ничего не получится.
Dump -это просто последовательная постраничная выгрузка данных.
А Load -это последовательная постраничная загрузка данных.
Поэтому , кстати, между серверами с разными страницами перегрузить данные
нельзя. А между разными версиями пожалуйста.
Т.е. как выгрузил(а выгрузишь только в том порядке в котором данные хранятся) так и прийдёться загружать.
Без выгрузки BCP можно будет обьединить только рядом стоящие однотиповые сегменты.
Конечно доступны все системные таблицы и наверное можно всё переместить
куда надо. Но если кто то это и пробовал делать , то Dump там не учавствует.
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32950410
MasterNoname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Завтра скажу, как от этого избавиться (забыл :-)) )

уж несколько дней прошло - интересно было бы получить решение
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32950596
0rc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg08Не напрягайся. Думаю ничего не получится.
Dump -это просто последовательная постраничная выгрузка данных.

ну тут позволю себе не согласиться... потому что если я первоначально сделал базу типа
crate database qwe on dat1, dat2 log on log1
alter database qwe on dat3
при перенесении на другой сервер с другими девайсами я делал
crate database qwe on dat1, dat2 log on log1
alter database qwe on dat1
и проблемы с размещением сегментов не было...
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32950869
serg08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточню.
Под словом выгрузка данных я имел ввиду выгрузку данных(данных устройств лога и данных устройств данных) независимо от типа (лог или данные).
В приведенном выше примере последовательность чередования сегментов
та же и это не расходиться с моими утверждениями.
Сделай на другом сервере dat1 на несколько метров больше, чем в исходном и получишь перемешивание.
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32951005
0rc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg08Уточню.
Сделай на другом сервере dat1 на несколько метров больше, чем в исходном и получишь перемешивание.
но пример и приведен "из жизни"
перенос базы с сервера где девайсы файловые по 4 гига, на рав-девайсы другого сервера (девайсы 32 гига)
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32951268
Alexander Dubrovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterNoname Завтра скажу, как от этого избавиться (забыл :-)) )

уж несколько дней прошло - интересно было бы получить решение
Они действительно перемешиваются, но помоему достаточно создать достаточно большой дата сегмент, чтобы данные не полезли в девайс отведенный под лог - пусть логи туда тоже ложатся, не жалко.
При полном дампе логсегмент все равно пуст.
Потом можно просто с помощью
sp_dropsegment
удалить логсегмент из датадевайса, предварительно
удалив сегменты default и system из девайса отведенного под логи (тем же sp_dropsegment)
и сказав
dump transaction with no_log
Потом правда придется сделать полный дамп, если оно вам надо конечно.

В Sybase Central вообще есть в окошке свойств девайсов кнопка Move Log, которая, как я понимаю, как раз и дропает сегменты данных в одних девайсах и сегменты лога в других...
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32958470
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman MasterZivДа, действительно, "сегменты могут перемешаться" после поднятия дампа.
На самом деле, это не "сегменты перемешаются", а фрагменты девайсов перемешаются, плохо то, что сегмент лога может начать использовать один и тот же девайс с сегментом данных.

Завтра скажу, как от этого избавиться (забыл :-)) )

Буду ооочень благодарен!... :)


Эта, короче я тут балел.

Ну прочитал. Короче - никак. Только пересозданием БД и заливкой данных в нее BCP.
Хотя есть еще варианты ...
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32958647
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
печально....((
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32958770
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче так.
Самая главная там проблема крутится вокруг логических номеров страниц.
Они не должны меняться после LOAD DB (иначе сами понимаете- все ссылки на страницы внутри БД - по этим номерам). Номера страниц идут сплошняком по всем девайсам.

Но можно последовательно идущие девайсы одного и того же типа (данных или лога) объединять в один.
Например :
исходное выделение :
20M data, 20M data, 20M data, 20M log, 20M log, 40M data, 80M data

можно заменить на выделение :
3*20M data, 2*20M log, 40+80M+ data

но сделать :
3*20+40+80 M data, 2*20M log
нельзя (сервер автоматом переделает обратно), потому как у страниц лога данные на более младших страницах.
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32959066
serg08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тоже раньше думал как MasterZiv
А ORC (которому я склонен верить) написал:
-------------------------------------------------------------
ну тут позволю себе не согласиться... потому что если я первоначально сделал базу типа
crate database qwe on dat1, dat2 log on log1
alter database qwe on dat3
при перенесении на другой сервер с другими девайсами я делал
crate database qwe on dat1, dat2 log on log1
alter database qwe on dat1
и проблемы с размещением сегментов не было...

но пример и приведен "из жизни"
перенос базы с сервера где девайсы файловые по 4 гига, на рав-девайсы другого сервера (девайсы 32 гига)
--------------------------------------------------------------
Смешались вместе кони , люди и .........
Как то может при переносе на raw по особенному ????
MasterZiv?????
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32959178
0rc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg08
ну тут позволю себе не согласиться... потому что если я первоначально сделал базу типа
crate database qwe on dat1, dat2 log on log1
alter database qwe on dat3
при перенесении на другой сервер с другими девайсами я делал
crate database qwe on dat1, dat2 log on log1
alter database qwe on dat1
и проблемы с размещением сегментов не было...
но пример и приведен "из жизни"
перенос базы с сервера где девайсы файловые по 4 гига, на рав-девайсы другого сервера (девайсы 32 гига)

да там вобщем-то то же что MasterZiv написал, только "простыми словами"...
то есть не нарушая логики расположения страниц,я сменил только расположение на девайсах... неважно на каких...

исходное выделение :
20M data, 20M data, 20M data, 20M log, 20M log, 40M data, 80M data
можно заменить на выделение :
3*20M data, 2*20M log, 40+80M+ data

можно переписать как
исходное выделение :
20M data on dev1, 20M data on dev2, 20M data on dev3, 20M log on logdev1, 20M log on logdev2, 40M data on dev4, 80M data on dev5
можно заменить на выделение :
3*20M data on dev1, 2*20M log on devlog1, 40+80M+ data on dev1
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32960059
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serg08
и проблемы с размещением сегментов не было...

А "проблемы" и не будет. БД будет нормально работать, так же, как и ранее.
Только возможно на одном девайсе будут фрагменты и лога и данных.

Я честно говоря ничего не понял. Чего я не так сказал ?

serg08
Как то может при переносе на raw по особенному ?

Нет. Raw от обычного ничем не отличается, кроме способов взаимодействия с
операционной системой для осуществления ввода-вывода.
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32960998
12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
12
Гость
Вот решенеие вашей проблемы http://www.5nt.ru/tech/sy-recovery.html
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32961075
serg08
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Виноват!
Я ж говорю смешались вместе кони , люди и залпы тысячи орудий....
Только ща понял що же я не понимал.
Вообще ФАЙЛОВУЮ структуру получается можно изменить.
Тут как то слово файловая все сразу забыли.
При этом порядок выделений пространства прийдётся оставить неизменным.
Например :
исходное выделение :
20M data, 20M data, 20M data, 20M log, 20M log, 40M data, 80M data
Если это всё на 7 файлах, то можно переместить на два файла.
data=20+20+20+40+80 =180m
log=20+20=40m
Тогда на целевом для загрузки делаем
disk init name='datadev' ,physname='c:\data\data.dat',size="180m"
disk init name='logdev' ,physname='c:\data\log.dat',size="40m"
Create database My_base on datadev="20m"
alter database My_base on datadev="20m"
alter database My_base on datadev="20m"
alter database My_base log on logdev="20m"
alter database My_base log on logdev="20m"
alter database My_base on datadev="40m"
alter database My_base on datadev="80m"

Или
Create database My_base on datadev="60m" log on logdev="40m"
alter database My_base on datadev="120m"
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #32962337
Litus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Совершенно верно!

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Изменение файловой архитектуры базы
    #36466698
yastcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если в базе были несколько сегментов с логами и еще в нескольких были и данные и логи?
Принцип тот же самый?
Создаем/повторяем структуру, меняем тип сегмента с чисто данных на данные+логи и пытаемся загрузить?
Сработает такое?
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #36466703
yastcher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
то есть:
исходное выделение :
20M data+log, 20M data+log, 20M data, 20M log, 20M log, 40M data+log, 80M data+log

Создаем
3*20M data, 2*20M log, 40+80M data

меняем тип сегментов на:
3*20M data+log, 2*20M log, 40+80M data+log

И загружаем. Такое сработает? или есть способ оптимальнее?
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #36500402
Викторрр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
12,

>>Вот решенеие вашей проблемы http://www.5nt.ru/tech/sy-recovery.html

Ссылка не открывается. Что там за рецепт? Осталась ли у вас сохраненная страничка?
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #36501245
blzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
надеюсь автор simm не будет против публикации его скрипта для этой процедуры =)

Задача

Нередко приходится создавать сервер, который должен быть точной копией некоторого исходного сервера. Одной из задач при этом является создание на новом сервере баз данных, которые по своей структуре должны быть идентичны базам исходного сервера (имеется в виду размеры баз и расположение их сегментов по девайсам). Решение обозначенной задачи вызывает затруднение в том случае, когда базы на исходном сервере расширялись после создания, либо имена девайсов не связаны с именами баз (например, база db01 расположена на девайсах dev12, device06_dat и my_device_log). Такие скрипты приходится писать вручную, чего не позволяет админская лень :).

Решением данной задачи есть описанный ниже способ, который состоит в создании процедуры в базе данных и вызова её с необходимыми параметрами.

Процедура

Для решения поставленной задачи была написана процедура getScriptCreateDatabase, которая сгенерирует скрипт на создание базы данных со всеми необходимыми alter-ами.

Процедура принимает 3 параметра - имя базы и 2 флага:

@for_load - если "1", сгенерируется скрипт для создания баз for load.
@is_debug - если "1", будет выводиться информация для отладки. Итак, чтобы создать на исходном сервере описанную процедуру, необходимо выполнить следующее:

Перейти в какую-нибудь пользовательскую базу:
Код: plaintext
1.
2.
use userbase
go


Выполнить скрипт на создание процедуры:

Код: 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.
create procedure getScriptCreateDatabase @dbname varchar( 20 ), @for_load char( 1 ), @is_debug char( 1 )
as
begin
select
        dbname=d.name,
        datalog=case
                when u.segmap =  8  then 'd'
                when u.segmap =  7  then 'd'
                when u.segmap =  4  then 'l'
                when u.segmap =  3  then 'd'
                when u.segmap =  2  then 'd'
                when u.segmap =  1  then 'd'
                when u.segmap =  0  then 'l'
        end,
        devname=v.name,
        size=convert(varchar,((u.size)*(@@maxpagesize/ 1024 )/ 1024 ), 10 )+'M'
into tmpTable
  from master..sysusages u, master..sysdatabases d, master..sysdevices v
  where u.dbid=d.dbid and
        u.vstart >= v.low and
        u.vstart <= v.high and
        v.name not like 'tapedump%' and
        d.name=@dbname
  order by u.dbid,u.lstart
if @is_debug='1'
        select * from tmpTable
set rowcount  1 
declare @vdatalog char( 1 )
declare @vdevname_dat varchar( 20 )
declare @vdevname_log varchar( 20 )
declare @vsize_dat varchar( 10 )
declare @vsize_log varchar( 10 )
declare @create char( 1 )
select @create='1'
declare @prefix_dat varchar( 10 )
declare @prefix_log varchar( 30 )
declare @postfix varchar( 15 )
if @for_load='0'
        select @postfix=''
else
        select @postfix=' for load'
while (select count(*) from tmpTable) <>  0 
        begin
        select @vdevname_dat=devname, @vsize_dat=size from tmpTable where datalog='d'
        select @vdevname_log=devname, @vsize_log=size from tmpTable where datalog='l'
        if @create='1'
                begin
                select @prefix_dat='create'
                select @prefix_log=''
                end
        else
                begin
                select @prefix_dat='alter'
                select @prefix_log='alter database ' + @dbname
                end
        if isnull(@vdevname_dat, '0') <> '0' and isnull(@vdevname_log, '0') <> '0' and @create='1'
                begin
                if @is_debug='1'
                        select 'BOTH'
                select @prefix_dat + ' database ' + @dbname + ' on ' + @vdevname_dat + '=''' + @vsize_dat + '''' +
                        @prefix_log + ' log on ' + @vdevname_log + '=''' + @vsize_log  +'''' + @postfix + char( 10 ) + 'go'
                delete from tmpTable where devname=@vdevname_dat and size=@vsize_dat and datalog='d'
                select @vdevname_dat=NULL
                delete from tmpTable where devname=@vdevname_log and size=@vsize_log and datalog='l'
                select @vdevname_log=NULL
                end
        else
                begin
                if isnull(@vdevname_dat, '0') <> '0'
                        begin
                        if @is_debug='1'
                                select 'DAT'
                        select @prefix_dat + ' database ' + @dbname + ' on ' + @vdevname_dat + '=''' + @vsize_dat + ''''  + @postfix + char( 10 ) + 'go'
                        delete from tmpTable where devname=@vdevname_dat and size=@vsize_dat and datalog='d'
                        select @vdevname_dat=NULL
                        end
                if isnull(@vdevname_log, '0') <> '0'
                        begin
                        if @is_debug='1'
                                select 'LOG'
                        select @prefix_log + ' log on ' + @vdevname_log + '=''' + @vsize_log + ''''  + @postfix + char( 10 ) + 'go'
                        delete from tmpTable where devname=@vdevname_log and size=@vsize_log and datalog='l'
                        select @vdevname_log=NULL
                        end
                end
        if @create='1'
                select @create='0'
        end
set rowcount  0 
drop table tmpTable
end

Использование

Для того, чтобы получить скрипт на создание базы данных с помощью описанной процедуры, необходимо вызвать её с тремя параметрами, а именно:

1. Имя базы, которую необходимо создать.
2. Флаг, если '1' - создавать скрипт для создания баз for load.
3. Флаг , если '1' - выводить отладочную информацию.

Чтобы получить скрипт на получание скрипта для создания баз, можно выполнить

select 'getScriptCreateDatabase ' + name + ', ''0'', ''0''' + char(10) + 'go'
from master..sysdatabases

После получения необходимых скриптов, не забываем удалить созданную процедуру:

drop procedure getScriptCreateDatabase

Пример

getScriptCreateDatabase simm2, '0', '0'
go

Результатом чего будет скрипт следующего вида:

Код: plaintext
1.
2.
3.
4.
5.
6.
create database simm2 on master='4M'  log on simm2_log='1M'
go
alter database simm2 on simm2_data='2M'
go
alter database simm2 log on simm2_log='2M'
go

Замеченные баги

- при реальном размере сегмента '1M', в скрипте может появиться размер '0M'. Править вручную.

Замечание

Понятно, что перед использованием данной процедуры на создаваемом сервере необходимо проинициализиовать девайсы, которые должны в точности совпадать с девайсами исходного сервера. Процедура в боевых условиях ещё как следует не тестировалась, применять на свой страх и риск.

-----------

в вашем задаче, объединить логсегменты на один девайс, дата - на другой: вручную изменить имена девайсов в скрипте, который сгенерится:
Код: plaintext
1.
2.
3.
4.
5.
6.
create database simm2 on my_new_big_data_dev='4M'  log on my_new_big_log_dev='1M'
go
alter database simm2 on my_new_big_data_dev='2M'
go
alter database simm2 log on my_new_big_log_dev='2M'
go
...
Рейтинг: 0 / 0
Изменение файловой архитектуры базы
    #36501495
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Викторрр12,

>>Вот решенеие вашей проблемы http://www.5nt.ru/tech/sy-recovery.html

Ссылка не открывается. Что там за рецепт? Осталась ли у вас сохраненная страничка?

есть такая вещь как WEB ARCHIVE
если страничка больше недоступна, то её можно попытаться отыскать в архиве интернета
тынц
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Изменение файловой архитектуры базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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