Удаленная база данных

Удаленная база данных

от Alb Swan -
Количество ответов: 4

Здравствуйте коллеги

Поставлена задача по настройке отказоустойчивости.

Планируем вынести базу на отдельный сервер и использовать вместо MySQL PostgreSQL или Oracle.  Скорей всего это будет PostgreSQL.

Папку с данными мудла тоже перенести на отдельный сервер и расшарить по NFS.

Поставить дополнительный сервер с апач и пхп к имеюшему и перед ними поставить лоад балансер.

 

В связи с этим возникли следующие вопросы, подскажите пожалуйста по возможности:.

1. По переносу базы на удаленный сервер.

 Достаточно ли для этого создать идентичную базу на удаленном сервере,

и изменить в config.php изменить строку $CFG->dbhost    = 'localhost';

на $CFG->dbhost    = '<хост нейм удаленного сервера>';

 

2. По смене СУБД.

Здесь на сайте нашел некоторую информацию что есть экспериментальная возможность переноса данных из СУБД на другой.

Как лучше это сделать? Воспользоваться экспериментальной возможностью или же посторонние утилиты использовать? Если да какие посоветуете.

изпользуется Мудл версии 2.1.9 база MySql крутится все на Убунту 11.10

В ответ на Alb Swan

Re: Удаленная база данных

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle

1. достаточно.

2. Я бы начал со встроенной. Только она правильно определит типы данных.

Вы обратили внимание, что схема базы данных описана 1 раз в .xml,  а не для каждого типа сервера БД ? Там есть свой правильный генератор схем БД. А вот на счет переноса данных - не знаю, возможно что-то придется русками подправить.

В ответ на Виталий Лавров

Re: Удаленная база данных

от Alb Swan -

Спасибо за ответы.

Про схем базы данных не знал, хорошо что 1 на всех.

Мудл только начинаю изучать, хотя и был эпизодический опыт по установке и запуску несколько лет назад.

Насчет руками подправить скорей всегода придется. В сети уже всречал описания опытов людей переносивших данные из одной СУБД к другой. Проблемы в основном из за отличия некоторых типов и способов хранения.

Но это когда дойдем до этого этапа будет ясно пока собираю инфу о возможных подводных камнях и как их обойти.

В ответ на Виталий Лавров

Re: Удаленная база данных

от Alb Swan -

Ой кажется про перенос данных вы имели ввиду про те что в файловой системе -  moodledata.

Думаю с ним проблем не должно быть.  Для мудла эта папка как бы не изменится, будет на том же месте с точки зрения мудла.  Только физический будет находиттся на другой машине.

В ответ на Alb Swan

Re: Удаленная база данных

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

Для начала обязательно читать http://docs.moodle.org/20/en/Server_cluster

Кластеризация включает три элемента - сервер приложений (PHP), сервер БД и файловый сервер.

Проще всего с PHP - за балансировщиком или реверсным прокси можно поставить какое угодно количество машин с PHP с абсолютно эквивалентными настройками и всё будет работать.

Что касается БД - тут многое зависит от конкретной БД, но по сути всё реализуемо и на MySQL (решения есть, вропрос цены). Тут два основных варианта: 1. failover  - второй сервер только резервирует первый, а в случае выхода из строя первого становится основным. Для этого требуется только односторонняя репликация, она проще. 2. Cluster - оба сервера работают параллельно, распределеяя нагрузку. Для этого требуется двухсторонняя репликация - она реализуется гораздо сложнее, поэтому такие решения сложнее и дороже. Тут вам нужно решить, чего именно вы хотите.

Что касается файлового хранилища - тут опыта не имею, но вроде как кластеризованных решений полно.

Тестировать это всё добро рекомендую на виртуальных машинах - легко включать и отключать, можно ограничить мощность отдельных машин и каналов связи и посмотреть, что будет с производительностью. 

Во всём вышерперечисленном есть один нюанс, который останавливает меня от экспериментов с кластеризованным мудлом. В основном решения для кластеризации рассчитаны на то, что между серверами существуют надёжные и скоростные каналы связи и защищают они в первую очередь от выхода из строя оборудования или служат для распределения нагрузки. То есть желательно, чтобы всё это стояло в одной стойке или чтобы к каналам связи, соединяющим разные помещения, было 100%-е доверие. А у меня, к несчастью, риск того, что пьяный электрик обесточит весь корпус или слесаря, меняющие батареи, затопят серверную куда выше вероятности выхода из строя фирменного сервера. И на каналах связи от местных провайдеров, соединяющих наши корпуса, тоже проблемы случаются.

Поэтому говоря об отказоустойчивости я бы предпочел говорить о размещении одной надежной машины в одном надёжном датацентре (ну или о качественном VPS-хостинге), а не о том как кластеризовать БД и файл-сервер.