VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

работа модуля freetds с подключением к MS SQL

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
janetland
Сообщения: 43
Зарегистрирован: 24 авг 2016, 15:11

работа модуля freetds с подключением к MS SQL

Сообщение janetland »

Привет всем.
Сталкивался кто с работой модуля

Код: Выделить всё

pkg_info | grep freetds
freetds-0.64_9,1    Sybase/Microsoft TDS protocol library
и одновременной записью в базы mysql, mssql?

Нужна подсказка на тему, почему при включенных настройках в extconfig.conf

Код: Выделить всё

queue_log => mysql,general,queues
queue_log => odbc,mssql-asteriskcdrdb,queues
не происходит записи в таблицу asterisk.queues
Стоит закомментировать строку queue_log => odbc,mssql-asteriskcdrdb,queues все ок пишется. Подозрение на какой-то приоритет записи, что-то вида: если есть odbc пишу только туда? (пробовал менять порядок строк, строка записи в mysql стоит первой, все равно пишет только в MS SQL. Не умеет писать одновременно 2 потока? Странно, т.к. cdr и cel пишутся на оба сервера без проблем, да и в сети куча примеров с подобной конфигурацией. Может быть сталкивался кто?
janetland
Сообщения: 43
Зарегистрирован: 24 авг 2016, 15:11

Re: работа модуля freetds с подключением к MS SQL

Сообщение janetland »

хм похоже это https://www.asterisk-pbx.ru/wiki/asteri ... onfig.conf оно

Код: Выделить всё

Конфигурация вызывает заданное семейство реалтайм в формате: драйвер базы данных, имя категории из конфига драйвера res_<driver>, таблица БД, приоритет (если таблица не задана, будет использовано имя семейства (family)): family => Driver DB,category DB res_...conf[,Table][,prioritet]

Приоритет - необязательный параметр , применяется в случае ошибки получения данных. Если соединению с приоритетом 1 не удалось получить данные, будет произведена попытка получить данные через соединение с приоритетом 2. Приоритеты должны быть упорядочены: 1,2,3, но не 1,2,4
Получается, что одновременной записи в обе базы не будет, только в случае недоступности сервера - будем писать в другое место?
janetland
Сообщения: 43
Зарегистрирован: 24 авг 2016, 15:11

Re: работа модуля freetds с подключением к MS SQL

Сообщение janetland »

хм, поставил следующие приоритеты, пишет в обе базы нормально

Код: Выделить всё

queue_log => odbc,mssql-asteriskcdrdb,queues,1
queue_log => mysql,general,queues,2
Будем тестировать дальше...
janetland
Сообщения: 43
Зарегистрирован: 24 авг 2016, 15:11

Re: работа модуля freetds с подключением к MS SQL

Сообщение janetland »

Подводя итог:

- * нужно пересобирать с поддержкой freetds, чисто unixODBC см коннектом к mssql работает нестабильно (демон * падает в разных местах)
- необходимо обращать внимание на ms sql структуру базы, она отличается очередностью полей от аналогичной mysql как и типом данных, например, для корректной работы mssql 2008r2 в таблицу cdr необходимо добавить 3 поля и изменить тип данных. Не советую пользоваться "Microsoft SQL Server Migration Assistant for MySQL" лучше пробегитесь по структуре и найдите подобный тип данных.
- проверяем наличие загруженных модулей и консольный коннект к базе
- после каждого изменения таблиц mssql и odbc.ini рестартим *
- для лога 2х и более баз важна очередность в extconfig.conf, если не указать - писать будет в одну рендомно-любую базу

Код: Выделить всё

queue_log => odbc,mssql-asteriskcdrdb,queues,1
queue_log => mysql,general,queues,2
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH