BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 09 май 2024, 21:00

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Работа с БД
СообщениеДобавлено: 10 май 2012, 18:25 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
Использование mysql в качестве БД для биллинга мягко говоря напрягает.
Хотя бы тем, что никто ни за что не отвечает и не гарантирует как эта СУБД будет работать.
Вот например имеем ситуацию, когда при innodb_file_per_table размер файла ibdata1 вырос за 3 месяца до 360Gb и занимает сейчас в 6 раз больше места чем сама база.
Гугление дало что это проблема давно известна http://bugs.mysql.com/bug.php?id=45173, http://bugs.mysql.com/bug.php?id=1341
И всем пофиг. А единственный вариант уменьшить размер файла - задампить БД, все поудалять и восстановить из дампа. Жесть!!!!

Нормальные механизмы бекапа отсутствуют. Варианты с снапшотами и локами БД на время их копирования нормальными назвать сложно.

В самом биллинге очень много кода, заточенного именно под mysql, а не какая-нибудь ORM библиотека. Т.е. безболезненно пересесть на другую БД невозможно.

Товарищи разработчики, как насчет задуматься о выносе БД-специфик кода из ядра и модулей в отдельную библиотеку/прослойку? Тогда ядро и модули будут БД-агностик и переход с одной БД на другую будет решаться в конфиге указанием нужной библиотеки.

Есть огромное желание уйти от mysql на oracle.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 10 май 2012, 18:32 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
afedorov писал(а):
Использование mysql в качестве БД для биллинга мягко говоря напрягает.
Хотя бы тем, что никто ни за что не отвечает и не гарантирует как эта СУБД будет работать.
Вот например имеем ситуацию, когда при innodb_file_per_table размер файла ibdata1 вырос за 3 месяца до 360Gb и занимает сейчас в 6 раз больше места чем сама база.

овер сикс манс полет нормальный
afedorov писал(а):
Гугление дало что это проблема давно известна http://bugs.mysql.com/bug.php?id=45173, http://bugs.mysql.com/bug.php?id=1341
И всем пофиг. А единственный вариант уменьшить размер файла - задампить БД, все поудалять и восстановить из дампа. Жесть!!!!

Нормальные механизмы бекапа отсутствуют. Варианты с снапшотами и локами БД на время их копирования нормальными назвать сложно.

эээ.....я делаю обычный майэскуэльдамп, и хрен его знает сколько раз восстанавливал уже из него, ниразу проблем небыло, что именно не сохраняется при такой дамповке?
[/quote]
afedorov писал(а):
Есть огромное желание уйти от mysql на oracle.

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

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 10 май 2012, 18:42 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Цитата:
Хотя бы тем, что никто ни за что не отвечает и не гарантирует как эта СУБД будет работать.

это как так? ну… купите платную MySQL, если богаты на оракл. будет вам и поддержка и отвечать будут.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 10 май 2012, 18:44 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
skyb писал(а):
эээ.....я делаю обычный майэскуэльдамп, и хрен его знает сколько раз восстанавливал уже из него, ниразу проблем небыло, что именно не сохраняется при такой дамповке?


Времени на дамп 60Гб БД и ее восстановление нужно очень много. Абонентам в это время не работать? Или работать но с потерей данных?

skyb писал(а):
да а че, и увеличить стоимость биллинга в разы, че нет то, давайте....есть биллинги работающие и на оракле, и стоящие соттветственно гораздо больших капиталовложений, посмотрите туда


Цена биллинга от этого не сильно изменится, а цена решения - да. Но зато будет выбор БД: непойми что забесплатно или нормальная БД за деньги. Каждый будет решать сам.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 10 май 2012, 18:47 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
dimOn писал(а):
Цитата:
Хотя бы тем, что никто ни за что не отвечает и не гарантирует как эта СУБД будет работать.

это как так? ну… купите платную MySQL, если богаты на оракл. будет вам и поддержка и отвечать будут.


И что толку от этой поддержки? Покажите мне тулзу за деньги, которая умеет делать ребилд ibdata файла для высвобождения места за вменяемое время. Нету таких. Официальная версия везде - эти файлы уменьшать нельзя, можно только пересоздавать заново.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 10 май 2012, 18:50 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
afedorov писал(а):
dimOn писал(а):
Цитата:
Хотя бы тем, что никто ни за что не отвечает и не гарантирует как эта СУБД будет работать.

это как так? ну… купите платную MySQL, если богаты на оракл. будет вам и поддержка и отвечать будут.


И что толку от этой поддержки? Покажите мне тулзу за деньги, которая умеет делать ребилд ibdata файла для высвобождения места за вменяемое время. Нету таких. Официальная версия везде - эти файлы уменьшать нельзя, можно только пересоздавать заново.

А под оракл компактные базы типа?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 10 май 2012, 18:52 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Вообще, то что вы предлагаете — это сложно. Разговоры об этом тут были много раз, и обсуждения тоже, гляньте постарее темы.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 10 май 2012, 18:59 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
В оракле практически все можно решить не грохая базу, стандартными средствами. На предыдущей работе была оракловая БД порядка 600Гб. За 5 лет ни разу никаких проблем не возникло.
И с бекапами все гораздо проще. Настроил один раз скрипты полного и инкрементального бекапов с нужной периодичностью для RMAN, поставил в крон и забыл - все бекапится и складывается куда надо без всяких перерывов в работе. Про HA решения типа RAC я и не говорю даже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 10 май 2012, 19:07 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Цитата:
Вот например имеем ситуацию, когда при innodb_file_per_table размер файла ibdata1 вырос за 3 месяца до 360Gb и занимает сейчас в 6 раз больше места чем сама база.

Такая ситуация могла бы наблюдаться без innodb_file_per_table
Возможно ранее у вас не было такой настройки в my.cnf, а потом вы ее поставили. до этого этот файл содержал индексы всех таблиц. и он естественно уже не отдает это место :)

А лицензии оракла не все могут себе позволить
Цитата:
Стоимость одной Processor license - 17500$


Бекапы делаются у всех кто тут при помощи репликации базы. Думаю slave базу вы можете себе позволить остановить :)

Хотя лично я ничего против Oracle не имею. Но для данного биллинга он слишком громоздкий как здесь уже обсуждалось. Здесь СУБД используется тупо как хранилище, вся логика работы вынесена в сам биллинг

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 10 май 2012, 19:19 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
dimOn писал(а):
Вообще, то что вы предлагаете — это сложно. Разговоры об этом тут были много раз, и обсуждения тоже, гляньте постарее темы.


Да, непросто. Но есть к чему стремиться. Вот на вскидку то, что лежит на поверхности:
1. DDL. Синтаксис может быть разным. Например при создании новых месячных таблиц.
Но имея на входе имя таблицы, набор полей с их именами и абстрактными типами и тип БД получить нужный DDL не проблема.
2. Встроенные функции. Например NOW() в mysql и SYSDATE в oracle. Тут уже сложнее. Нужно будет пересмотреть их использование и там где без них не обойтись использовать например функции обертки.
3. Автоинкрементные поля и получение последнего id. Вполне можно решить, формализовав работу через API.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 10 май 2012, 19:27 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
По-хорошему надо работать вообще через ORM, хотя бы тонкий. Остальное — от лукового и для больших проектов выливается в колхоз. То что сейчас — механизм "драйверов" JDBC — уж слишком тонкий и как вы верно заметили, на уровне SQL имеет проблемы совместимости, которые опять же почти все решаемы и в рамках того же JDBC, но просто у нас не так и с этим требуется смириться. Чтобы было всё универсально — было бы круто, но почти нереально по определённым причинамъ.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 10 май 2012, 19:35 
Не в сети

Зарегистрирован: 16 ноя 2011, 18:30
Сообщения: 115
Карма: 0
Phricker писал(а):
Такая ситуация могла бы наблюдаться без innodb_file_per_table
Возможно ранее у вас не было такой настройки в my.cnf, а потом вы ее поставили. до этого этот файл содержал индексы всех таблиц. и он естественно уже не отдает это место :)


Да это возможно и без innodb_file_per_table, но с innodb_file_per_table сразу заметно что-то не так. Т.к. база ставилась с нуля и все таблицы изначально создавались как innodb, а не делался их ALTER из myiasm. Файл изначально был размером 10Мб и он растет.

Phricker писал(а):
А лицензии оракла не все могут себе позволить
Цитата:
Стоимость одной Processor license - 17500$


А у вас на все железо честно куплены Right to use лицензии, если лицензия это лишь бумажка и железо работает без нее? ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 11 май 2012, 11:41 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Ну, с таким подходом проще сразу самый дорогой биллинг поставить без бумажек и не париться.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 11 май 2012, 11:46 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
dimOn писал(а):
Ну, с таким подходом проще сразу самый дорогой биллинг поставить без бумажек и не париться. Изображение

fixed

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 12 май 2012, 14:28 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
afedorov писал(а):
dimOn писал(а):
Вообще, то что вы предлагаете — это сложно. Разговоры об этом тут были много раз, и обсуждения тоже, гляньте постарее темы.


Да, непросто. Но есть к чему стремиться. Вот на вскидку то, что лежит на поверхности:
1. DDL. Синтаксис может быть разным. Например при создании новых месячных таблиц.
Но имея на входе имя таблицы, набор полей с их именами и абстрактными типами и тип БД получить нужный DDL не проблема.
2. Встроенные функции. Например NOW() в mysql и SYSDATE в oracle. Тут уже сложнее. Нужно будет пересмотреть их использование и там где без них не обойтись использовать например функции обертки.
3. Автоинкрементные поля и получение последнего id. Вполне можно решить, формализовав работу через API.


Там вроде как еще проблема с limit-ом . Его нет в oracle.
И почему именно oraсle ? Тут на форуме еще активно postgresql проталкивали, называли его "промышленной субд".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Работа с БД
СообщениеДобавлено: 12 май 2012, 23:08 
Не в сети

Зарегистрирован: 10 мар 2011, 13:10
Сообщения: 122
Откуда: Одинцово
Карма: 0
Вот только не надо Oracle! Всё у него возможно и прекрасно, но вот цена! это ужас. А уж их саппорт это отдельная тема...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.060s | 50 Queries | GZIP : On ]