alibek Posted July 1, 2019 · Report post Кто-нибудь использовал FreeRADIUS с БД Oracle? Не поделитесь конфигурацией (схемой и SQL-запросами)? А то в исходном состоянии он совершенно неработоспособен. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted July 1, 2019 · Report post Исходное - это https://wiki.freeradius.org/config/Oracle DDL script ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted July 1, 2019 · Report post Исходное кривоватое и для Oracle не самое оптимальное. Насчет «совершенно неработоспособен» я погорячился, но когда логи просматриваешь, просто руки чешутся в порядок привести. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted July 1, 2019 · Report post Ну, для начала я бы убрал нафиг триггеры и sequence (вы ведь не занимаетесь некрофилией с 11 версией?) и заменил все колонки ID в CREATE TABLE на что-то вроде: id INT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) (да, в 12 версии Oracle набралась мужества скопировать IDENTITY, которое у MSSQL было еще в 2000). PRIMARY KEY для ID указывать в таком случае не надо - автоматом им станет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted July 1, 2019 · Report post У меня Oracle 10g, но я вообще не об этом. Я про то, что для числовых столбцов FreeRADIUS подставляет '0' вместо 0. Или использует TO_TIMESTAMP('%S','YYYY-MM-DDHH24:MI:SS') — хотя между DD и HH24 нужен пробел, а в конце нужен и часовой пояс. Или что вообще используется to_date/to_timestamp вместо литералов (например DATE'2019-07-01'). Или страшные индексы. Или странные типы данных (varchar вместо varchar2 или int вместо number). Или нестыкующиеся размерности полей (в одной таблице у username длина 64 символа, в другой таблице 30 символов, в третьей 32 символа). На этом фоне sequence и триггеры это мелочь. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted July 1, 2019 · Report post 2 минуты назад, alibek сказал: У меня Oracle 10g, но я вообще не об этом. Ну это печально, EOS с 2010 года. Там из актуальных ништяков только онлайн-реиндексация, и то работала плёхо (надо было после нее ручками зачищать отходы жизнедеятельности). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted July 1, 2019 · Report post Так мне и не нужны особо новые фичи. То что я перечислил — это не какой-то особо сложный тюнинг, а просто неаккуратность и неряшливость. Причем неаккуратность универсальная, '0' вместо 0 вообще с диалектом БД не связан, это везде косяк. Или такой фрагмент: AcctSessionTime = round((TO_DATE('%S','yyyy-mm-dd hh24:mi:ss') - \ TO_DATE(TO_CHAR(acctstarttime, 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss'))*86400) Его даже на слабое знание особенностей Oracle не спишешь, оно на логическом уровне ущербное, иначе не понять, зачем дату нужно перегонять в строку, а затем снова в дату. 41 минуту назад, jffulcrum сказал: в 12 версии Oracle набралась мужества скопировать IDENTITY, которое у MSSQL было еще в 2000 Если уж холиварить, то sequence гораздо универсальнее и удобнее, чем identity. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jffulcrum Posted July 1, 2019 · Report post Вы не поверите, но sequence в итоге и создастся для указанного формата INDENTITY как скрытый объект БД, просто его больше не надо руками создавать. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted July 1, 2019 · Report post Может быть, я Oracle других версий не пользовался. Но это к теме не относится, как раз sequence в исходной схеме мне не мешают и к ним у меня претензий нет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
EDA_SPB Posted July 7, 2019 · Report post Я правильно понимаю, что у вас биллинг на оракл? Не гидра, случайно? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted July 7, 2019 · Report post Нет, Гидра меня разочаровала. У нас Билл-Мастер. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NewUse Posted July 8, 2019 · Report post А зачем Вам тогда freeradius?, если не секрет? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted July 8, 2019 · Report post Поэкспериментировать. Может быть использовать как аварийный байпас-радиус в случае остановки или поломки биллинга, чтобы абоненты все равно получали сервисы. Или для каких-нибудь других сервисов, где нужен RADIUS (хотспот, igmp auth и т.д.). Но первопричиной было то, что хотим перейти с Ericsson SE100 на СКАТ (в качестве BRAS). СКАТ не умеет управлять адресным пространством (выделять IP-адреса из пула), полагаясь в этом на биллинг, а в биллинге у нас это не реализовано (это дополнительная лицензируемая фича в составе OSS, поэтому мы просто отдаем имя пула адресов, а SE100 сам распределяет адреса из этого пула). Малой кровью этот вопрос можно решить, используя прокладку-прокси (она будет добавлять в ответ Framed-IP-Address), а доступ к БД нужен, чтобы не городить костыли с синхронизацией конфигурации и некоторых параметров, назначенных абоненту в биллинге. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NewUse Posted July 8, 2019 · Report post 26 минут назад, alibek сказал: Может быть использовать как аварийный байпас-радиус в случае остановки или поломки биллинга, чтобы абоненты все равно получали сервисы. Такой функционал у Билл-Мастер есть :) 27 минут назад, alibek сказал: хотим перейти с Ericsson SE100 на СКАТ (в качестве BRAS). Напрасно..... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted July 8, 2019 · Report post 7 минут назад, NewUse сказал: Такой функционал у Билл-Мастер есть Ну он там не автоматический, в такой режим его переключать нужно вручную. К тому же он в аварийном режиме всем клиентам дает один и тот же сервис, вообще никак не взаимодействуя с БД. А на самодельном можно использовать данные из БД (тарифы, выделенные IP-адреса и т.д.). 7 минут назад, NewUse сказал: Напрасно..... Уж очень заманчиво выглядит, к тому же позволяет использовать существующий биллинг. В любом случае все необходимое для теста есть и проверить будет интересно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NewUse Posted July 8, 2019 · Report post 3 минуты назад, alibek сказал: Ну он там не автоматический, в такой режим его переключать нужно вручную. К тому же он в аварийном режиме всем клиентам дает один и тот же сервис, вообще никак не взаимодействуя с БД. А на самодельном можно использовать данные из БД (тарифы, выделенные IP-адреса и т.д.). Этот режим специально для случая, если БД полетела, именно по этому он с ней и не взаимодействует :) Ну и по скольку БД летит не часто, делать переход в него автоматическим, по меньшей мере странно, хотя, возможно, это реализовано, надо спрашивать разрабов.... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alibek Posted July 8, 2019 · Report post Всякое бывает, например БД работает нормально, а проблема именно с сервером, на котором работает АСР. Или нужно перегрузить сервер с АСР, в этом случае байпас поможет это сделать малозаметно для пользователей. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NewUse Posted July 8, 2019 · Report post 15 часов назад, alibek сказал: Или нужно перегрузить сервер с АСР не используйте эту порочную практику, Linux, это не винда перезагрузок не требует, почти. аптайм по 10 лет это хорошая практика... 15 часов назад, alibek сказал: Или нужно перегрузить сервер с АСР, в этом случае байпас поможет это сделать малозаметно для пользователей. Ну перезагрузка и так проходит малозаметно, ибо не идёт только авторизация, ну пусть 10 минут, но работающие пользователи продолжают работать.... С тестами -- удачи, поделитесь, потом результатами, научился ли фриирадиус нормально с пулами работать.... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...