При выполнении сложных работ, в результате которых могут быть потеряны данные или нарушена работа приложений можно воспользоваться отключением «подзеркала» томов в VxVM, в случае проблем можно затем быстро подняться с оторванного подзеркала. В случае, когда объемы данных значительны, а окно для выполнения работ ограничено, то восстановление из бэкапа может привести к нарушению SLA. А такой способ является простым, быстрым и надежным ;)
Итак, пусть у нас есть дисковая группа DG01, каждый том имеет по два зазеркалированных плекса. Плексы располагаются на 2 массивах (ARRAY_01 и ARRAY_01) и сабдиски имеют в своем названии эти имена (на самом деле это не обязательно, это нужно лишь чтобы отгрипать плексы, а как вы их разделите – это ваше дело, хоть руками ;)

1. Для начала убедимся, что у нас все тома имеют больше одного плекса и они все активны:
vxprint -g DG01 -v -F "%name" -e "v_pl_num < 2 "
vxprint -g DG01 -p | grep DISABLE


2. создаем 2 файла, в первом – основные плексы, во втором – те, которые будем отрывать.
vxprint -g DG01 -p -F "%vol %plex %aslist" | egrep 'ARRAY_01' > /tmp/dg_pl_1.txt
vxprint -g DG01 -p -F "%vol %plex %aslist" | egrep 'ARRAY_02' > /tmp/dg_pl_2.txt

Убедимся, что поделилось все правильно:
cat /tmp/dg_pl_1.txt |wc -l
cat /tmp/dg_pl_2.txt |wc -l

3. Останавливаем все приложения и отмонтируем файловые системы, использующие тома (или переводим Oracle в режим «begin backup»). Ну или если ваше приложение имеет механизмы восстановления, то можно ничего и не делать.

4. Отрываем плексы:
cat /tmp/dg_pl_2.txt | awk '{ print "vxplex -g DG01 det " $2 }' | sh

5. Примонтируем файловые системы, поднимаем приложения, переводим Oracle в «End backup». Ну и делаем все что мы хотели, типа ставим патчи, изменяем стурктуру таблиц итд.

6. Проверяем. Если все в порядке, то приаттачиваем подзеркало и забываем о этой процедуре до следующего апдейта. Если нет, переходим к пункту 7.
cat /tmp/dg_pl_2.txt | awk '{ print "vxplex -g DG01 att " $1 " " $2 }'| sh

Если же все плохо, то нужно сделать переключение на подзеркало:
7. Останавливаем все приложения и отмонтируем файловые системы, использующие тома. Останвливаем тома:
cat /tmp/dg_pl_2.txt | awk '{ print "vxvol -g DG01 stop " $1 }' | sh

8. Отрываем от тома активный плекс (это нужно, чтобы быстрее поднять тома, иначе – начнется процесс зеркалирования, который может нам помешать):
cat /tmp/dg_pl_1.txt | awk '{ print "vxplex -g DG01 dis " $2 }' | sh

9. Исправляем статус оствшегося плекса со «STALE» на «CLEAN»
cat /tmp/dg_pl_2.txt | awk '{ print "vxmend -g DG01 fix clean "$2 }'

10. Стартуем тома:
vxvol -g diskgr2 startall

11. Примонтируем все файловые системы и запускаем приложения.

12. Ну и теперь можно и запустить зеркалирование:
cat /tmp/dg_pl_1.txt | awk '{ print "vxplex -g DG01 att " $1 " " $2 }' | sh

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru МоёМесто.ru Mister Wong Яндекс Закладки

Оставить комментарий


Yandex Mail.ru Google LiveJournal myOpenId Flickr claimId Blogger Wordpress OpenID Yahoo Technorati Vidoop Verisign AOL