Объявление

Collapse
No announcement yet.

Cluster + MS SQL2k

Collapse
X
 
  • Filter
  • Время
  • Show
Clear All
new posts

  • Cluster + MS SQL2k

    Не уверен, что по теме (хотя про работу ). Возникла проблема:
    - есть два SQL server'а, один является зеркалом другого (на случай ядерной войны) и находится вообще в другом здании.
    - на данный момент для синхронизации баз используется log-shipping механизм, который у меня вызывает тоску и тревожные сны
    - суть такая -- как что-то происходит, приложения останавливаются, конфигурация меняается (чтобы использовать 2й сервер) и все стартует наново

    Возникла идея кластера, который содержит наши базы. Вопрос, можно ли это провернуть с:
    - Windows XP или Advanced Server
    - MS SQL2k
    - минимум двумя машинами, которые в общем-то физически далековато расположены
    ?

    Справка -- понятие кластер знаю только теоретически, никогда администрированием не занимался, сам программер.
    Bye.
    Sincerely yours, Michael.

  • #2
    Re: Cluster + MS SQL2k

    Сообщение от Crusader Mike
    Возникла идея кластера, который содержит наши базы. Вопрос, можно ли это провернуть с:
    - Windows XP или Advanced Server
    - MS SQL2k
    - минимум двумя машинами, которые в общем-то физически далековато расположены
    ?
    Не получится. На машинах должно стоять минимум Вында 2000 Адвансед, либо 2003 Ентерпрайз. Ну и Сиквел сервер 2000 должен быть Ентерпрайз, либо 2005 Стандарт.
    Чемпионами становятся в плейофф (с) В.Алекно

    Comment


    • #3
      Re: Cluster + MS SQL2k

      Сообщение от Host
      Не получится. На машинах должно стоять минимум Вында 2000 Адвансед, либо 2003 Ентерпрайз. Ну и Сиквел сервер 2000 должен быть Ентерпрайз, либо 2005 Стандарт.
      ага, а поподробней? Win2k Advanced там стоит... SQL2k вроде Enterprise.
      Что делать и в чем идея?
      Bye.
      Sincerely yours, Michael.

      Comment


      • #4
        Re: Cluster + MS SQL2k

        Сообщение от Crusader Mike
        ага, а поподробней? Win2k Advanced там стоит... SQL2k вроде Enterprise.
        Что делать и в чем идея?
        Адвансед должен стоять на обоих серверах. Между ним образуется кластер. Эти сервера будут работать с одним накопителем, например SCSI диск на отдельной шине. После того как кластер установлен, можно ставить Сиквел сервер на кластер. Я пока сам в процессе изучения, так что сам всего не знаю точно. Но Сиквел 2005 Стандард у меня заработал на 2003 сервере ентерпрайз. Правда я с нуля ставил базы, а не мигрировал уже существуюшие.
        Чемпионами становятся в плейофф (с) В.Алекно

        Comment


        • #5
          вам нужен sql2005 Ent Edition, он позволяет database mirroring: как раз для случая когда два сервера далеко друг от друга. если добавить ещё один сервер (watcher) ваши клиенты автоматом будут перенаправленны на второй сервер если первый недоступен.
          Кластер хорош, когда всё в одном месте, для вас это не сработает.
          Disclamer: Клиенту нужен MS SQL поэтому возможности Oracle, Informix и иже с ними не рассматриваются
          And the man in the rain picked up his bag of secrets,
          And journeyed up the mountainside, far above the clouds,
          And nothing was ever heard from him again,
          Except for the sound of TU-BU-LAR BELLS

          Comment


          • #6
            Чистое решение на кластере хорошо если нужно иметь второй сервер на случа выхода из строя одного их них. Данные при этом находятся в одном месте и должны использоваться обоими серверами. Кстати они не обязательно должны быть в одном месте, можно использовать Fibre Channel, если они в одном здании, или iSCSI.

            Comment


            • #7
              Re: Cluster + MS SQL2k

              Сообщение от Host
              Адвансед должен стоять на обоих серверах. Между ним образуется кластер. Эти сервера будут работать с одним накопителем, например SCSI диск на отдельной шине. После того как кластер установлен, можно ставить Сиквел сервер на кластер.
              Ясно... идея с кластером отпадает -- сервера в разных зданиях, потенциально очень далеко друг от друга....


              Сообщение от Anton Sokolovski
              вам нужен sql2005 Ent Edition, он позволяет database mirroring: как раз для случая когда два сервера далеко друг от друга. если добавить ещё один сервер (watcher) ваши клиенты автоматом будут перенаправленны на второй сервер если первый недоступен.
              Кластер хорош, когда всё в одном месте, для вас это не сработает.
              Disclamer: Клиенту нужен MS SQL поэтому возможности Oracle, Informix и иже с ними не рассматриваются
              Все гораздо хуже -- я сам эти базы переносил с SQL6.5 на SQL2k, и не люблю MS с этих пор еще больше, но опций перехода на Oracle или SQL2005 не предвидится...

              То, что ты описал как Database mirroring -- то чо нужно, остается вопрос насколько хорошо он работает? То бишь:
              - появилась запись X
              - сервер упал
              - клиенты редиректятся на второй сервер
              Дает ли MS гарантию, что клиенты увидят эту запись X? Она ведь:
              - может быть "в пути" ко второму серверу
              - потерятся из-за того, что первый сервре не успел отправить ее до своей смерти
              Текущая схема, используемая тут, страдает именно этими недостатками...
              Bye.
              Sincerely yours, Michael.

              Comment


              • #8
                Сообщение от Sporty
                Чистое решение на кластере хорошо если нужно иметь второй сервер на случа выхода из строя одного их них. Данные при этом находятся в одном месте и должны использоваться обоими серверами. Кстати они не обязательно должны быть в одном месте, можно использовать Fibre Channel, если они в одном здании, или iSCSI.
                Хотелось бы именно так -- если один сервер сдох, чтобы это было незаметно совсем. Беда в том, что они в разных зданиях, ибо народ подразумевает, что сдохнуть сервер может и от бомбы, которая снесет все здание, а система работать должна все равно.
                Bye.
                Sincerely yours, Michael.

                Comment


                • #9
                  Re: Cluster + MS SQL2k

                  Сообщение от Crusader Mike
                  опций перехода на Oracle или SQL2005 не предвидится...
                  Увы, с SQL2k вам остаётся либо transaction log-shipping либо distributed transaction. И клиентов перенаправлять на второй сервер надо ручками

                  Сообщение от Crusader Mike
                  То, что ты описал как Database mirroring -- то чо нужно, остается вопрос насколько хорошо он работает? То бишь:
                  - появилась запись X
                  - сервер упал
                  - клиенты редиректятся на второй сервер
                  Дает ли MS гарантию, что клиенты увидят эту запись X? Она ведь:
                  - может быть "в пути" ко второму серверу
                  - потерятся из-за того, что первый сервре не успел отправить ее до своей смерти
                  Текущая схема, используемая тут, страдает именно этими недостатками...
                  Зависит как настроишь: если канал между двумя серверами быстрый можно использовать синхронный режим, когда транзакция считается завершённой после записи на HDD на обоих серверах. А асинхронный режим это улучшенный log-shipping, с меньшими задержками.
                  Главный вопрос, а сколько для бизнеса стоит потеря записи X и имеет ли это вообще значение если в ваш head-office попадёт бомба?
                  And the man in the rain picked up his bag of secrets,
                  And journeyed up the mountainside, far above the clouds,
                  And nothing was ever heard from him again,
                  Except for the sound of TU-BU-LAR BELLS

                  Comment


                  • #10
                    Re: Cluster + MS SQL2k

                    Сообщение от Anton Sokolovski
                    Зависит как настроишь: если канал между двумя серверами быстрый можно использовать синхронный режим, когда транзакция считается завершённой после записи на HDD на обоих серверах. А асинхронный режим это улучшенный log-shipping, с меньшими задержками.
                    Главный вопрос, а сколько для бизнеса стоит потеря записи X и имеет ли это вообще значение если в ваш head-office попадёт бомба?
                    Угу, спасибо за наводку... Все, что хотел нашел на
                    http://www.microsoft.com/technet/pro.../dbmirror.mspx

                    А мне пофиг, в общем-то сколько стоит для бизнеса эта потерянная транзакция -- мне важно, сколько из-за этого у меня будет геморроя. Ибо система кривая как неизвестно что, и если что-то происходит начинается ручной разбор этой лапши в судорожных попытках "что произошло" и "что мешало этим идиотам сделать все по-человечески?"
                    А если в head-office рванет бомба -- нам тоже пофиг... Он пока в другом здании

                    P.S. Спасибо еще раз за наводк -- все что нужно прочел, во всем разобрался. Пару вещей остались непонятными:
                    - зачем ждать пока mirror запишет данные на диск? по логике достаточно пролучить подтверждение, что mirror получил данные. Как всегда, Майкрософт оставляет шанс другим компаниям их обогнать... Это мне напомнило гениальное решение компилировать код SQL2k с опцией асинхронной модели С++ исключений. для надежности :-\
                    - мой софт использует C DBLib для доступа к базе, я вот думаю -- поддерживает ли SQL2005 ее? произойдет ли Automatic Failover? (по-моему нет и еще раз нет).
                    Bye.
                    Sincerely yours, Michael.

                    Comment


                    • #11
                      Re: Cluster + MS SQL2k

                      Сообщение от Crusader Mike
                      А мне пофиг, в общем-то сколько стоит для бизнеса эта потерянная транзакция -- мне важно, сколько из-за этого у меня будет геморроя. Ибо система кривая как неизвестно что, и если что-то происходит начинается ручной разбор этой лапши в судорожных попытках "что произошло" и "что мешало этим идиотам сделать все по-человечески?"
                      А если в head-office рванет бомба -- нам тоже пофиг... Он пока в другом здании

                      P.S. Спасибо еще раз за наводк -- все что нужно прочел, во всем разобрался. Пару вещей остались непонятными:
                      - зачем ждать пока mirror запишет данные на диск? по логике достаточно пролучить подтверждение, что mirror получил данные. Как всегда, Майкрософт оставляет шанс другим компаниям их обогнать... Это мне напомнило гениальное решение компилировать код SQL2k с опцией асинхронной модели С++ исключений. для надежности :-\
                      - мой софт использует C DBLib для доступа к базе, я вот думаю -- поддерживает ли SQL2005 ее? произойдет ли Automatic Failover? (по-моему нет и еще раз нет).
                      Так если "А мне пофиг, в общем-то сколько стоит для бизнеса эта потерянная транзакция" то тогда конечно "зачем ждать пока mirror запишет данные на диск?" И наоборот. В зависимости от ответа на первый вопрос и выбирается соответсутствующая модель mirroring.

                      Насчет DBLib - http://msdn2.microsoft.com/en-us/library/ms143729(SQL.90).aspx

                      Although the SQL Server 2005 Database Engine still supports connections from existing applications using the DB-Library and Embedded SQL APIs, it does not include the files or documentation needed to do programming work on applications that use these APIs. A future version of the SQL Server Database Engine will drop support for connections from DB-Library or Embedded SQL applications. Do not use DB-Library or Embedded SQL to develop new applications. Remove any dependencies on either DB-Library or Embedded SQL when modifying existing applications. Instead of these APIs, use the SQLClient namespace or an API such as OLE DB or ODBC. SQL Server 2005 does not include the DB-Library DLL required to run these applications. To run DB-Library or Embedded SQL applications you must have available the DB-Library DLL from SQL Server version 6.5, SQL Server 7.0, or SQL Server 2000.
                      Следователь был опытный и сразу расколол Буратино.

                      Comment


                      • #12
                        Re: Cluster + MS SQL2k

                        Сообщение от Ralf
                        Так если "А мне пофиг, в общем-то сколько стоит для бизнеса эта потерянная транзакция" то тогда конечно "зачем ждать пока mirror запишет данные на диск?" И наоборот. В зависимости от ответа на первый вопрос и выбирается соответсутствующая модель mirroring.
                        Во-первых: не передергивай, ибо в виду имелось немного другое. Надежности я хочу не потому, что это что-то стоит бизнесу (за спасенную транзакцию мне бонус не дадут), а для того, чтобы у меня в таких ситуациях было меньше проблем.
                        Во-вторых: Неверно. Подумай еще раз -- зачем principal'у ждать пока mirror запишет данные на диск? Достаточно, получить подтверждение, что mirror данные получил (это вообще на уровне TCP/IP). Если он не запишет -- он просто сменит свой статус на "помер" и вся схема будет продолжать работу в режиме "все хорошо, только зеркало надо подымать", после лечения зеркало "догоняет" principal и переключается в штатный режим. Боле того -- это позволит избежать отката юзерской транзакции из-за того, что зеркало умерло именно в этот момент.
                        Единственный 'минус' этой схемы -- время переключения на зеркало увеличится на мизерную величину равную времени записи на диск последних полученных, но еще не записанных изменений.


                        Забей на все зеленое сверху, оно справедливое, но дает потерю данных если взорвали principal и вырубили питание зеркалу до того, как оно затолкало данные на диск. В общем в моей ситуации лучше всего подходит:
                        Asynchronous transfer mechanism + Witness server + Automatic failover. А именно это, судя по докам, не поддерживается.


                        Насчет DBLib - http://msdn2.microsoft.com/en-us/library/ms143729(SQL.90).aspx
                        Спасибо, но уже сам нашел
                        Bye.
                        Sincerely yours, Michael.

                        Comment


                        • #13
                          Re: Cluster + MS SQL2k

                          рекоммендую Double-Take.
                          http://www.nsisoftware.com/
                          Мы пользуем для exchange. Как раз для такого случая "ядерной войны". Но он для всего подойдёт. Он копириет на самом низком уровне так что ему по барабану кто там наверху SQL или чего ещё. Его можно закастомизировать до безобразия. Даже выделить ему часть трубы если через неё там ещё какой траффик ползает. Чтоб другим делам не мешать. Или заниматься копированием в определёпнное время (ночью). Нам очень помогает. Такое вот safety-net решение проблемы.
                          Там, где раньше волки ср#ли, мы проложим магистрали (c)

                          Comment


                          • #14
                            Сообщение от Crusader Mike
                            Хотелось бы именно так -- если один сервер сдох, чтобы это было незаметно совсем. Беда в том, что они в разных зданиях, ибо народ подразумевает, что сдохнуть сервер может и от бомбы, которая снесет все здание, а система работать должна все равно.
                            кластер тебе не подойдёт. У него shared disk array должен в одном шкафу стоять (для двоих серверов). Так что под случай ядерной войны он не попадает. Можно два SANa сделать (в каждом билдинге по одному) и потом по отдельной сети ему mirror делать на уровне file system.
                            Там, где раньше волки ср#ли, мы проложим магистрали (c)

                            Comment


                            • #15
                              Re: Cluster + MS SQL2k

                              Сообщение от Crusader Mike
                              Ясно... идея с кластером отпадает -- сервера в разных зданиях, потенциально очень далеко друг от друга....
                              - Не совсем так, хотя по причине стоимости может и отпасть. Есть решение, которое позволяет на аппаратном уровне зеркалировать все что угодно, включая общий (кворумный) для кластера диск. Так и называется зеркалирование сториджа. Для ОС и сиквела это будет обычный кластер, практически все крутится на аппаратном уровне, кроме резервных линков к сториджу (если они требуются). Причем подтверждение записи возможно (если мне не изменяет память) уже после попадания данных в кеш контроллера на удаленном сайте. Расстояние может быть несколько километров и более, и вроде возможно вообще на разных континентах разместить, но для скорости несколько сот метров было бы идеальным. У Хьюлетта поддерживается EVA 3000/5000 (вроде бы сейчас вышла новая линейка 4000/6000/8000, но я тут немного отстал от жизни), у других вендоров я не ориентируюсь. В общем все сводится к следующему: кластер из двух или более нод, в двух или более местах, с двумя или более дисковыми полками. Все что записывается на диск 1 полки А синхронно копируется на диск 1 полки Б. Стоимость удовольствия исчисляется сотнями тысяч. Хотя если торг не уместен, то почему бы и нет!

                              Comment

                              Working...
                              X