Как известно, часто бывает, что при попытке установить патч на оракл идет беспрестанная ругань на невозможность переписать используемую DLL при остановленных оракловых сервисах, причем мне-то как раз это попадалось реже всего, почему - выяснится далее. Я сам и положил начало принципу терпеливо переименовывать блокированные DLL, после чего Retry и Retry, до очередной заблокированной.
То ли фаза луны, то ли какое-то весеннее обострение, но с переименованием в очередной раз у меня терпение треснуло и я решил посмотреть, какая же сволочь эти библиотечки блокирует. Выяснилось достаточно быстро (listdlls от дядьки Руссиновича спасла в очередной раз), эта сволочь называется Distributed Transaction Coordinator (АКА Координатор распределенных транзакций), msdtc.exe в процессах. В наших условиях он нафик ненужен, поэтому я его обычно отключал и с блокировкой у меня проблем не возникало. Так что находим соответствующий сервис, стопим его и ставим нужные паки. Обращаю внимание, пак, сволочь, может сказать, что все хорошо, в то время, как на самом деле все плохо. Только что был свидетелем, как после успешного прогона установки пака все DLL были предыдущих версий. Останавливайте этот сервис всегда наравне с остальными оракловыми сервисами. Будет неплохо, если после пака посмотрите, какой версии ключевые dllки, вроде тех же oci.dll, oracore*.dll и т.д.
P.S. Поправьте меня, если я ошибся в русском названии сервиса.