Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Sybase ASA, ASE, IQ |
![]() ![]() |
Discount88 Member Откуда: Сообщений: 40 |
Доброго всем вечера. В наследство достался один сервер, с базой пропусков. Сервер на Win 2003 База на sybase sql anywhere 5.0 Очень старая машина :) До недавнего времени боялся даже заглядывать туда. Работает - ну и ладно. Не так давно база начала притормаживать, т.е. открытие списков пользователей, подключение и т.п. - начало тормозить. Перезагрузка не помогает. Списался со старым админом. Ответил: (цитирую) "очистить архив, сбросить инкриментные счётчики ключей таблиц" Начинаю расспрашивать что это и с чем едят. "речь-то изначально о БД была, да таблицы чистить надо. Инкриментные счётчики - автоинкримент + генерируемые значения в отдельной таблице. с очисткой и без очистки таблиц. учётки и ID пользователей оставить нужно" Спрашиваю как это сделать - Он уже не помнит, было 5-7 лет назад ![]() Т.к. я не знаком с SQL запросами. Может кто подсказать как все эти действия выполнить? Буду очень благодарен. |
16 сен 15, 17:32 [18157478] Ответить | Цитировать Сообщить модератору |
Sergey Orlov Member Откуда: СПб Сообщений: 4302 |
Discount88, Бекап то делаете? Если делаете то с обрезанием или не знаете... |
16 сен 15, 18:20 [18157688] Ответить | Цитировать Сообщить модератору |
MasterZiv Member Откуда: Питер Сообщений: 34408 |
Discount88, скорее всего что админ тебе говорит - полная лажа. счетчики например |
17 сен 15, 07:07 [18158870] Ответить | Цитировать Сообщить модератору |
Discount88 Member Откуда: Сообщений: 40 |
Sergey Orlov, Бэкап делается каждый день. С обрезанием или нет, я не в курсе. Если честно, я даже не знаю каким образом он делается, как я понимаю там не всё так просто, в отличие от того же MS SQL Server 2005/2008/2012 Я даже скопировал сервер на виртуалку, чтобы поэкспериментировать. |
17 сен 15, 08:35 [18158995] Ответить | Цитировать Сообщить модератору |
Sergey Orlov Member Откуда: СПб Сообщений: 4302 |
Если размер лога большой, то тормозит однозначно.... Банальная проверка старт самого asa, если очень долго, то он очень большой... Вы для начала все-таки разберитесь, делается ли бэкап утилитами самого asa... |
||
17 сен 15, 09:16 [18159089] Ответить | Цитировать Сообщить модератору |
Discount88 Member Откуда: Сообщений: 40 |
Бэкап делается с помощью батника, запускающегося планировщиком заданий. Вот сам код батника @echo off setlocal set f_name_db=D:\xxx\xxx.DB set f_name_dblog=D:\xxx\xxx.LOG set f_name_bakuprar=D:\Backup_xxx\%date:~6,4%%date:~3,2%%date:~0,2%.rar set f_log_std=D:\Backup_xxx\log\Backup.log echo %date% >> %f_log_std% net stop "SQLANYs_xxx" 1>>%f_log_std% echo "Archiving %f_name_dblog% ....">>%f_log_std% "C:\Program Files\WinRAR\Rar.exe" a %f_name_bakuprar% %f_name_dblog% 1>>%f_log_std% echo "Copy %f_name_db% ....">>%f_log_std% "C:\Program Files\WinRAR\Rar.exe" a %f_name_bakuprar% %f_name_db% 1>>%f_log_std% net start "SQLANYs_xxx" 1>>%f_log_std% endloca Размер самой базы - 70 мб, Размер логов - 72 мб Размер Бэкапа 20мб. |
||||
17 сен 15, 09:44 [18159166] Ответить | Цитировать Сообщить модератору |
Sergey Orlov Member Откуда: СПб Сообщений: 4302 |
Ну это не бэкап базы, а ее простое копирование и сжатие а архив. Надеюсь, 5-ка поставлена в полном обьеме и там есть утилита dbbackup, так что, берите документацию и читайте как сделать бэкап базы с усечением лога... |
||
17 сен 15, 12:28 [18160155] Ответить | Цитировать Сообщить модератору |
Dim2000 Member Откуда: Москва Сообщений: 5309 |
17.09.2015 7:07, MasterZiv пишет: > скорее всего что админ тебе говорит - полная лажа. > > счетчики например Сделать всё, что он пишет, можно (если знаешь структуру базы), но нужно ли :)? Posted via ActualForum NNTP Server 1.5 |
17 сен 15, 12:29 [18160164] Ответить | Цитировать Сообщить модератору |
Dim2000 Member Откуда: Москва Сообщений: 5309 |
17.09.2015 9:44, Discount88 пишет: > Бэкап делается с помощью батника, запускающегося планировщиком заданий. > Вот сам код батника Это ламеризм в 146-процентной концентрации. Если не понимаешь, почему, - не трогай сервер. > Размер самой базы - 70 мб, Размер логов - 72 мб > Размер Бэкапа 20мб. Ржунимагу упалпаццтол ![]() мегабайт должны быть гигабайты? Posted via ActualForum NNTP Server 1.5 |
17 сен 15, 12:35 [18160209] Ответить | Цитировать Сообщить модератору |
Discount88 Member Откуда: Сообщений: 40 |
Не не, база реально мелкая) в ней храниться лишь данные о посетителях. Может кто подскажет как почистить хотя бы логи? |
||
17 сен 15, 13:08 [18160468] Ответить | Цитировать Сообщить модератору |
old_joy Member Откуда: Сообщений: 158 |
Discount88, Ищите в ProgrammFiles папку с sql5. Найдете там файл dbstop, dbstart, dbeng. Можете остановить сервис SQLANYs_xxx любыми способами. Потом переименуйте log. А затем наберите команду из строки dbeng -f D:\xxx\xxx.DB Ключ -f говорит о том, что нужно создать новый лог. База немного покрутиться и остановиться. Увидите, что создан новый лог. Запускайте SQLANYs_xxx |
17 сен 15, 14:42 [18161122] Ответить | Цитировать Сообщить модератору |
Dim2000 Member Откуда: Москва Сообщений: 5309 |
17.09.2015 13:08, Discount88 пишет: > Не не, база реально мелкая) в ней храниться лишь данные о посетителях. > Может кто подскажет как почистить хотя бы логи? Не нужно ничего "чистить", не те объёмы. Да, совет от old_joy - тупой ламеризм от человека, так и не открывшего dbbackup.exe ;). Posted via ActualForum NNTP Server 1.5 |
17 сен 15, 15:04 [18161322] Ответить | Цитировать Сообщить модератору |
Discount88 Member Откуда: Сообщений: 40 |
С чего вы взяли что я не открыл dbbackup? Просто я не трогал то, чего и так уже настроено и не лез к этому серверу без необходимости. |
||
17 сен 15, 16:29 [18161930] Ответить | Цитировать Сообщить модератору |
antand Member Откуда: Москва Сообщений: 590 |
Обычно база с такими объемами может тормозить только если 1) или там что-то на уровне системы криво(очень старый комп, барахлит аппаратура, диск забит, сеть и т.п.) 2) или там ну очень кривая структура, логика, запросы(без индексов и т.п.). Н-р, может там только таблица сотрудников, пропусков и + 70М лог входа/выхода сотрудников за 5-7 лет. И по этому логу гоняются неинд запросы:) Встречал такое. Из-за логов сервера, учитывая такие объемы, вряд ли будет заметное торможение. Мне кажется для автора будет проще для начала приподнять на виртуалке копию(вместо этого сервера) с более менее нормальной производительностью. Опыт у него есть, это к тому же избавит от необходимости ставить заново ASA5 И посмотреть на рабочую ситуацию в новых условиях. Если что можно будет подкрутить опции запуска и настройки админские сервера и базы, для этого знания SQL не сильно нужны. Естественно старый сервер оставить, если что можно будет просто файл с логом перекинуть обратно. Ну а если это не поможет, тогда уже надо внутрь базы и приложения смотреть. "Почистить архив" и почистить "логи" это может также относиться к внутренней логике приложения(т.е. чистка определенных таблиц), к логам базы и сервера это может не относиться. |
17 сен 15, 17:45 [18162407] Ответить | Цитировать Сообщить модератору |
Discount88 Member Откуда: Сообщений: 40 |
Спасибо. Попробую это сделать. Кстати вот ещё вопрос, Вы упомянули "чистка определённых таблиц", Как посмотреть какие вообще есть таблицы в базе? И как их чистить. Как я понимаю, там должна быть таблица с посетителями, которые сотрудники бюро пропусков заполняют ручками....вот эта таблица по идее за 5-10 лет накопилась, и её необходимо почистить. Но я даже не знаю каким образом можно залезть в структуру базы. |
||
18 сен 15, 08:47 [18163905] Ответить | Цитировать Сообщить модератору |
Sergey Orlov Member Откуда: СПб Сообщений: 4302 |
У вас там на сервере должен быть виндовый Sybase Central, аналог enterprise manager для mssql, его запускаете и подключаетесь к вашему серверу... И начните с dbbackup, у вас база 70 метров, лог 70 метров, при бекапе через dbbackup база будет иметь размер примерно метров 70-80, а лог примерно 1 килобайт, т.е. будет операция типа shrink из mssql... |
18 сен 15, 09:11 [18163988] Ответить | Цитировать Сообщить модератору |
d7i Member Откуда: Сообщений: 392 |
Discount88 1. Надо обязательно сделать backup и перезппустить сервер SQL. log-файл (журнал) сразу усечется. 2. Для устранения ошибок в индексах БД, сжатия пустых страниц и т.п. надо пересобрать базу. Для этого нужно сделать выгрузку базы в текстовые файлы утилитой unload, переместить базу в иное место (страховка), а затем сделать создание/загрузку утилитами dbinit и isql. Пример команд: Бекап ------- C:\sqlany50\win32\DBBACKUP.EXE -d -x -y -c "eng=ИмяБД;uid=пользователь;pwd=пароль" backup Здесь: ИмяБД - имя БД; uid - пользователь (по умолчанию dba); pwd - пароль (по умолчанию sql) backup - подпапка для бекапа (там будет копия БД) Выгрузка БД ------------- C:\SQLAny50\win32\dbunload -o unload.log -y -u -c "uid=dba;pwd=sql;dbf=файлБД.db;start=dbeng50 /c 120M" unload Здесь: unload - подпапка для текстовых файлов БД; unload.log - файл лога выгрузки Создание и загрузка БД ------------------------- c:\SQLAny50\win32\dbinit -p 4096 -z 1251a.col файлБД.db c:\SQLAny50\win32\isql -c "uid=dba;pwd=sql;dbf=файлБД.db;dbs=-q;start=c:\SQLAny50\win32\dbeng50 -b /c 120M" read reload.sql Файл reload.sql будет создан утилитой unload Файл 1251a.col - это таблица символов кириллицы (если таковые есть в БД). Могу прислать если нужно. Подробности о ключах можно прочитать в документации. P.S. Работаю с SyBase SQL Anywhere 5.5 более 15 лет, немного её знаю. |
18 сен 15, 23:12 [18168763] Ответить | Цитировать Сообщить модератору |
Sergey Orlov Member Откуда: СПб Сообщений: 4302 |
d7i, у него в базе кодировка может быть cp866 |
19 сен 15, 11:33 [18169366] Ответить | Цитировать Сообщить модератору |
d7i Member Откуда: Сообщений: 392 |
Sergey Orlov, ну, вопрос по кодировке - это отдельная тема.... а бэкап и пересборку базы сделать надо... |
20 сен 15, 12:18 [18171950] Ответить | Цитировать Сообщить модератору |
Sergey Orlov Member Откуда: СПб Сообщений: 4302 |
d7i, Про бэкап соглашусь полностью, а вот про перезагрузку базы из старой в новую... Знать бы какие запросы засылает приложение, посмотреть бы их планы, иногда добавление индекса решает все проблемы... Да вот в свое время у меня всплыла проблема, при переносе одной базы с w2k на w2k3, при выполнении одного запроса все вставало колом, поскольку приложение было старое и исходники утрачены, то теперь у меня есть w2k в виртуалке... |
20 сен 15, 20:36 [18172927] Ответить | Цитировать Сообщить модератору |
Dim2000 Member Откуда: Москва Сообщений: 5309 |
Очень хочется увидеть, с какими параметрами запускается сервер. |
30 сен 15, 03:00 [18212581] Ответить | Цитировать Сообщить модератору |
Все форумы / Sybase ASA, ASE, IQ | ![]() |