Назад | Перейти на главную страницу

Oracle запускается только с автозапуском, но не при попытке вручную

Несколько месяцев назад я установил Oracle в свою систему ubuntu, и он работает довольно хорошо. У меня есть настройка для запуска при загрузке системы, и я запускаю следующие команды, чтобы остановить / запустить службу

sudo service oracledb start
sudo service oracledb stop

Которые тоже работают. Однако из-за того, что система загружается очень медленно, я решил удалить oracle из загрузки и не использую его так часто, как раньше. Я хочу запускать и останавливать Oracle, когда мне это нужно. Итак, чтобы убрать его из автозагрузки, я отредактировал свой /etc/oratab файл

orcl:/u01/app/oracle/product/11.2.0/dbhome_3:Y

Я поменял финал Y к N (почитав немного в сети). Теперь oracle не запускается при загрузке, но команда запуска тоже не работает. Если я изменю указанное выше на Y, вышеуказанные команды запуска / остановки немедленно работают, но oracle также запускается во время загрузки, и это то, что я пытаюсь изменить.

Я не могу понять это с помощью своего гугл-фу. Что еще мне нужно сделать, чтобы отключить запуск Oracle во время загрузки?

В /etc/oratab файл используется Oracle каждый раз, когда он запускается, при запуске И когда вы просите его запустить. Поэтому, если вы отключите Oracle, он отключится, какой бы метод вы ни использовали для его запуска. Так осталось Y в этом файле.

Чтобы служба не запускалась автоматически после загрузки, просто удалите ее из /etc/rcX.d/ где X - число от 0 до 7 (уровни выполнения).
Вы можете вручную удалить начальные ссылки (ссылки, начинающиеся с S, предназначены для strat, а K - для остановки) или использовать update-rc.d -f oracledb remove; update-rc.d oracledb stop 20 016 . (с последней точкой), чтобы удалить запуск / остановку Oracle, затем просто добавьте ссылки остановки (иначе Oracle не будет остановлен при выключении компьютера).

Вы можете запустить базу данных вручную, когда вам это нужно:

$ su - <your oracle user>
ora$ lsnrctl start 
ora$ dbstart

Если у вас нет dbstart, используйте sqlplus:

ora$ sqlplus / as sysdba
...
SQL> startup

Выключить, dbstop или с sqlplus выпуск shutdown [normal|immediate] в зависимости от того, что вы хотите. (Чтобы остановить слушателя, lsnrctl stop.)

Другой вариант, скорее всего, сделает oracledb служба не запускается автоматически, и сбросьте oratab линия к Y. То, как вы устанавливаете службу в ручной режим, зависит от того, какой это тип службы (традиционный или новый). Этот ответ на AskUbuntu содержит множество деталей о том, как изменить режимы запуска службы.