Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MS SQL 2008 mirror и Linux.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
Подскажите, есть ли возможность из под Linux работать с базами MS SQL, которые зеркалируются?
Другими словами, поддерживает ли драйвер в линуксе такой функционал?
2 ноя 17, 19:09    [20922901]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
Какой-то конретный драйвер под Linux?
2 ноя 17, 19:16    [20922911]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
Гавриленко Сергей Алексеевич,

Стоит CentOS 7, не знаю, есть ли драйверы, которые поддерживают работы с зерклаированными базами.
Если есть и не один, просьба ткнуть носом.
2 ноя 17, 19:21    [20922920]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
С базой в мирроринге можно работать как с обычной, а логику выбора активной ноды можно реализовать руками.
2 ноя 17, 19:34    [20922946]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
AlexeyMish
Подскажите, есть ли возможность из под Linux работать с базами MS SQL, которые зеркалируются?
Другими словами, поддерживает ли драйвер в линуксе такой функционал?

Нет. Не поддерживает SQL на Linux "Database mirroring". Он вообще обрезанный, потому как работает в песочнице, с помощью библиотеки Drawbridge, которую пилят с 2011 года и так не допилят. Прикрутят SQL Azure к SQL на Linux - и этим дело ограничится, уверен на 100%.
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes
2 ноя 17, 19:40    [20922949]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
AlexeyMish,

Вы вопрос переформулируйте "работать с базами MS SQL, которые зеркалируются" - с базами, которые крутятся на Windows серверах, или у Вас есть на Linux и нужно реализовать зеркалирование и работать с ним?
2 ноя 17, 19:42    [20922951]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
AlexeyMish,
Далее. Когда настраиваете CentOS7 - делать по этой инструкции.
https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-RHEL-6-or-Centos-7
Не забудьте снести Unix ODBC.
Ну и Failover_Partner в connection string не поддерживается, так что явно указываете, на какой сервер цепляетесь в /etc/odbc.ini
2 ноя 17, 19:53    [20922965]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
AlexeyMish,

Ну и последнее. Вдруг Вы захотите использовать FreeTDS - мало ли. Настраиваете в /etc/freetds.conf, затем пишете в /etc/odbc.ini строку в строке драйвера "Driver = FreeTDS". Если не захотите SELinux отключать, а базы крутятся не на TCP 1433 и дефолтном инстансе, а на каком-то другом инстансе и динамическом порту - в /etc/freetds.conf прописываете этот самый порт "port=1x2x".
Но очень рекомендую работать с ODBC от Microsoft.
2 ноя 17, 20:06    [20922982]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
Andy_OLAP
AlexeyMish,

Вы вопрос переформулируйте "работать с базами MS SQL, которые зеркалируются" - с базами, которые крутятся на Windows серверах, или у Вас есть на Linux и нужно реализовать зеркалирование и работать с ним?

Первое.
Есть Windows сервер (точнее два), на котором крутится база в зеркале. Нужно работать с ними из клиента в линуксе.
Но ниже вы уже все разжевали, спасибо.
2 ноя 17, 20:18    [20923001]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
Andy_OLAP
AlexeyMish,
Далее. Когда настраиваете CentOS7 - делать по этой инструкции.
https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-RHEL-6-or-Centos-7
Не забудьте снести Unix ODBC.
Ну и Failover_Partner в connection string не поддерживается, так что явно указываете, на какой сервер цепляетесь в /etc/odbc.ini

Разбираться еще предстоит, пока даже не начинал, но эта фраза мне непонятна.
С Linux на глубокое "ВЫ", потому не понял, как можно указать на какой сервер цепляться, если в произвольный момент времени, primary может быть либо сервер1 либо сервер2?
2 ноя 17, 20:24    [20923018]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
AlexeyMish
С Linux на глубокое "ВЫ", потому не понял, как можно указать на какой сервер цепляться, если в произвольный момент времени, primary может быть либо сервер1 либо сервер2?
Начальник позвонил, дал команду переключаться, заменили коннекшен-стринг, профит.

Нету нормальных драйверов и не будет, и не только для линукса.
2 ноя 17, 20:34    [20923046]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
AlexeyMish,

Официальный гайд по подключению репозитория и установке здесь.
https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server
Проверьте, что прилетела последняя версия msodbcsql, которую собрали 18 сентября.

Вообще как они сделали - реализовали AlwaysOn AG листенер, который по имени перебирает все IP, используя DNS.
Можете так же попробовать - берете hosts и записываете в него оба IP для mirroring, а далее надеетесь, что драйвер ODBC Linux будет работать с базой как с базой в AG группе.
"The ODBC drivers on Linux and macOS iterate sequentially through all IP addresses associated with a DNS hostname if you are not connecting to an availability group listener, and multiple IP addresses are associated with the hostname.
If the DNS server's first returned IP address is not connectable, these iterations can be time consuming. When connecting to an availability group listener, the driver attempts to establish connections to all IP addresses in parallel."
+

Или идете в форум "Unix" и просите помочь с настройкой переключения между двумя IP адресами при обращении на третий IP револьверно, чтобы каждые 5 секунд действовало одно правило маршрутизации, каждые другие 5 секунд другое правило маршрутизации, ну или подумать, как это реализовать в нормальном виде.
Типа
sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -d IP_записанный_в_DSN_и_ODBC -p tcp --dport 1433 -j DNAT --to-destination IP1_MSSQL:1433
iptables -t nat -A POSTROUTING -d IP1_MSSQL -p tcp --dport 1433 -j SNAT --to-source IP_записанный_в_DSN_и_ODBC
и переключаем периодически на и обратно
iptables -t nat -A PREROUTING -d IP_записанный_в_DSN_и_ODBC -p tcp --dport 1433 -j DNAT --to-destination IP2_MSSQL:1433
iptables -t nat -A POSTROUTING -d IP2_MSSQL -p tcp --dport 1433 -j SNAT --to-source IP_записанный_в_DSN_и_ODBC
2 ноя 17, 22:16    [20923247]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2008 mirror и Linux.  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
AlexeyMish,

Совсем забыл, у Вас же 7-я версия CentOS, они заменили iptables на firewalld, хотя можно вернуть вручную как было.
В общем, или форвардингом подменяете на нужный IP, если знаете, как правильно проверить, какой из них primary, или в приложении пишете коннект к первому IP, обрабатывает ошибку коннектом ко второму IP. В любом случае ошибки придется обрабатывать :)
2 ноя 17, 22:33    [20923284]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить