vagust, и пользователь веб сервиса тоже все эти переменные видит? То есть они на уровне системы или на уровне этого пользователя установлены? И сервер после установки переменных перегружался? Чтобы исключить, что что-то где-то не перечиталось.
...и права на файлы и каталоги ораклового клиента не блокируют веб сервису доступ?
На верхнем уровне у вас все правильно: вы выключаете БД, копируете на новое место, включаете. При этом никаких ошибок восстановления быть не должно, так как вы делаете холодный бэкап. Скорее всего проблема в вашем случае в том, что "service oracle stop" не выключает, либо не успевает выключить БД до того, как вы начинаете копирование.
Я бы рекомендовал выключать БД более традиционным способом:
su - oracle
sqlplus / as sysdba
shutdown immediate
--выполнить копирование файлов БД на новое место
startup
exit
Это такой ha-кластер с ручным приводом. Надо поднимать ip на нужной ноде БД, но только при непосредственном участии админа. И хочется автоматизировать, чтобы уменьшить количество ручной работы.
Грубо говоря, если перезагрузка штатная - поднимаем. Если нештатная - то ничего не делаем, ждём специалиста. При этом "штатность" определяет инженер.
Смотря какой функционал в приложении. В полном клиенте миллион разных приблуд, у каждой своя зависимость. Скорее всего вам две-три библиотеки из всего зоопарка нужно.