Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Кластерный сервер, использование файловой системы


Автор: Vit 30.1.2006, 19:55
Есть кластерный сервак. Есть довольно обширный набор функций которые работают с файловой системой (Создают и читают файлы). Для работы с ними используют локальную папку c:\{чего-то-там}. На обычном сервере всё проходит на ура, на кластерном появляется целая куча вопросов и проблем:

1. Как узнать из SP к какой физический сервер сейчас предоставляет c:\?

2. Допустим на каждом сервере кластера есть папка "c:\{чего-то-там}", как обратиться из запроса к папке на конкретном сервере, а не к той что по умолчанию? Попытка обратится по "абсолютному" адресу из запроса к серевым ресурсам невозможна, по крайней мере я не знаю как, всё что работает в контексте MS SQL Server сетевых ресурсов просто не "видит"

3. Как обеспечить синхронизацию контекста папок с файлами на кластерном серваке?

4. Есть SP которая делает примерно следующее:

- Выбирает данные
- Записывает в файл
- выбирает другие данные
- записывает в файл
- читает данные из какого-то файла
- преобразует какие-то файлы
- отсылает файлы по email

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

- Пишем в файл А (в каком-то цикле выкверяем данные и записываем в файл)
- сервак "переключается" c сервера на сервер
- на новом сервере продолжается запись в файл А (который собственно начал писаться заново)
В итоге получаем систему отработавшую без единого сбоя, но половина данных потеряна без единой ошибки или предупреждения!

Ежели такое переключение произойдёт несколько раз, то результат и вовсе будет непредсказуемым.

5. Существует ли возможность поставить "триггер" на "переключение" сервера? Ведуться ли где-то логи когда и на какой физический сервак из кластера переключился MS SQL Server?

Автор: boevik 31.1.2006, 09:29
При кластерной работе, в обычном варианте, есть два сервера (или более) на каждом установлен SQL Server и базы сидят на общем внешнем накопителе, обычно external disk storage RAID5, т.е. SQL сервер не работает с локальными дисками.
В этом варианте решаются почти все проблемы с синхронизацией данных между дисками.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)