Со временем аккумуляторы в ИБП деградируют и уже не могут обеспечить требуемого времени работы сервера во время отключения электричества.
И если такое случается на физическом сервере, где работают виртуальные сервера, то велика вероятность, что система не успеет завершить работу виртуальной машины или не успеет сделать её сохранения. Такая ситуация произошла в одной тестовой среде и после не правильного завершения работы ВМ, на которой работал Oracle одна из баз перестала работать. Обычно в такой ситуации достаточно запустить сервер и перезапустить базу Oracle, но одна база так и не запустилась и во время подключения к ней выдавала ошибку:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Я попытался запустить базу используя следующие команды:
set oracle_sid=DATABASE NAME sqlplus /nolog conn sys/password as sysdba shutdown abort startup
Но этот вариант мне не помог и при попытке запуска базы я получил следующую ошибку:
ORA-03113: end-of-file on communication channel
Исправить ошибку ORA-03113 у меня получилось с помощью следующей последовательности команд:
set oracle_sid=DATABASE NAME sqlplus /nolog conn sys/password as sysdba startup nomount ORACLE instance started. alter database mount; alter database clear unarchived logfile group 1; alter database clear unarchived logfile group 2; alter database clear unarchived logfile group 3; shutdown immediate startup
Когда я выполнил команду «alter database clear unarchived logfile group 1;» первый раз, то получил ошибку, я проигнорировал её и выполнил следующие две команды «… group 2;» и «… group 3;» после чего я тут же повторно выполнил команду «… group 1;» и она выполнилась без ошибок. Так же при выполнении команды «shutdown immediate» вы можете получить ошибку «ORA-01109: database not open» игнорируйте её и выполняйте следующую команду «startup». После этого работа базы будет восстановлена.