LINUX.ORG.RU

MSSQL и полный абзац


0

0

Может кто поможет?

Ситуация: есть сервак HP NetServer LH3000, даже два... так вот мысль в том чтоб установить на второй сабж без абзацев (на первом уже стоит MSSQL2000) и распределить между ними нагрузку по запросам.

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

Путём прикидывания х$@%#я к носу и чесания репы было придумано следующее... заводится линух к нему подключаются две машины с злобной поделием MSSQL2000 в которых крутятся базы ещё более злобного поделия под названием Самотур с одной стороны висит народ с клиентской частью, а с другой два MSSQL, все глиенты ломятся на линух, который в свою очередь коннекты через раз бросает, то на один, то на другой.... может кто-то сталкивался с этим или как-то по другому обходили это без покупки следующего поколения сервака... т.к. мне эти серваки придётся раз в полгода менять с такими тенденциями однако................

спасибо всем кто нас слущал, а теперь рекламная пауза..... до понедельника.....


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

bool flag;

while (1){ req = get_request (); flag ^= 1; if (flag) send_request_to_db1 (req); else send_request_to_db2 (req); }

Программно это всё легко реализуется.

anonymous
()
Ответ на: комментарий от anonymous

пажалуста выпустите эту замечательную программу под GPL! астальной код к мсскл я сам допишу!

anonymous
()

Смотри IP virtual servers, IMHO

no-dashi ★★★★★
()

Проще всего сделать DNS Round Robin. Делаешь в DNS записи на оба SQL-сервера с одним именем. И клиенты будут подключаться к какому-то из них.

Например, посмотри на host google.com.

Deleted
()
Ответ на: комментарий от anonymous

>Я не сталкивался с твоей проблемой, но по программной части я те могу >сказать как распределить нагрузку по жесткой схеме 50/50. Тебе нужен >обычный триггер работающий по следующему алгоритму: > >bool flag; > >while (1){ req = get_request (); flag ^= 1; if (flag) >send_request_to_db1 (req); else send_request_to_db2 (req); } > >Программно это всё легко реализуется.

а где этот триггер предпологается ставить?

G_Luck
() автор топика
Ответ на: комментарий от anonymous

>bool flag; > >while (1){ > req = get_request (); > flag ^= 1; > if (flag) > send_request_to_db1 (req); > else > send_request_to_db2 (req); >} >

send_request_to_db1 send_request_to_db2

вот это-то самое интересное вкупе с синхронизацией двух баз с инсёртами и апдейтами... и селектами с нужно инфой...

G_Luck
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.