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

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

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

Модератор: april22

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

Сообщение janetland » 09 ноя 2017, 16:50

Привет всем.
Сталкивался кто с работой модуля
Код: выделить все
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
 
Сообщений: 26
Зарегистрирован: 24 авг 2016, 16:11

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

Сообщение janetland » 09 ноя 2017, 17:39

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

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

Приоритет - необязательный параметр , применяется в случае ошибки получения данных. Если соединению с приоритетом 1 не удалось получить данные, будет произведена попытка получить данные через соединение с приоритетом 2. Приоритеты должны быть упорядочены: 1,2,3, но не 1,2,4


Получается, что одновременной записи в обе базы не будет, только в случае недоступности сервера - будем писать в другое место?
janetland
 
Сообщений: 26
Зарегистрирован: 24 авг 2016, 16:11

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

Сообщение janetland » 09 ноя 2017, 18:37

хм, поставил следующие приоритеты, пишет в обе базы нормально
Код: выделить все
queue_log => odbc,mssql-asteriskcdrdb,queues,1
queue_log => mysql,general,queues,2

Будем тестировать дальше...
janetland
 
Сообщений: 26
Зарегистрирован: 24 авг 2016, 16:11

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

Сообщение janetland » 20 ноя 2017, 17:31

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

- * нужно пересобирать с поддержкой 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
janetland
 
Сообщений: 26
Зарегистрирован: 24 авг 2016, 16:11


Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot], Google Adsense [Bot] и гости: 14

© 2008 — 2017 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH