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