Как запустить базу данных oracle

(Несколько устаревший материал. Актуален в первую очередь для 9 версии, требует переработки)

Запуск базы данных Oracle

STARTUP [FORCE][restrict] [MOUNT | OPEN | NOMOUNT]

STARTUP NOMOUNT

Запуск экземпляра базы данных: состояние NOMOUNT
Во время запуска экземпляра базы данных, необходимо выбрать состояние, в которое в результате прейдет экземпляр.

Обычно экземпляр запускается в режиме NOMOUNT только во время создания базы данных или для пересоздания управляющих файлов, а также при выполнении определенных сценариев резервирования и восстановления.

Запуск экземпляра подразумевает выполнение следующих задач:

1) Поиск в директории $ORACLE_HOME/dbs файла параметров, осуществляемый в следующем порядке.

• Ищется файл spfileSID.ora
• Если он не найдет, тогда производится поиск файла spfile.ora;
• Если он не найден, тогда поиск файла SID.ora.
Искомый файл содержит параметры экземпляра базы данных;

  1. Задание параметра PFILE в команде STARTUP переопределяет установленный по умолчанию порядок выбора файла параметров.
  2. Выделение SGA;
  3. Запуск фоновых процессов.
  4. Открытие сигнального файла alertSID.log и файлов трассировки.

STARTUP MOUNT

Монтирование базы данных включает следующие задачи:
Ассоциация базы данных с предварительно запущенным экземпляром:
Определение местоположения управляющих файлов, которые указаны в файле параметров:
Чтение управляющих файлов с целью получения имен и статуса файлов данных и журнальных файлов. Однако на данный момент не проверяется фактическое существование файлов данных и журнальных файлов.

STARTUP OPEN

Открытие базы данных подразумевает выполнение следующих задач:

• Открытие оперативных файлов данных;
• Открытие оперативных журнальных файлов.

Если какие-либо из файлов данных или журнальных файлов недоступны в момент открытия базы данных, сервер Oracle возвращает ошибку.

При выполнении окончательного этапа открытия базы данных, Oracle проверяет доступность всех файлов данных и журнальных файлов, а также проверяет целостность базы данных. Если необходимо, фоновый процесс системный монитор (SMON) инициирует восстановление экземпляра.

Останов базы данных Oracle

SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT]

ABORT – Перед остановкой производится наименьшее число действий. После этого при запуске система должна выполнить восстановление. Поэтому используйте этот режим только, когда это необходимо. Обычно он применяется, когда другие варианты остановки не отрабатывают, когда это вызвано проблемами, возникающими при запуске или когда требуется немедленно остановить экземпляр перед проблемной ситуаций, например, при получении сообщения о том, что через несколько секунд будет выключение питания.

IMMEDIATE – обычно используемая опция. При этом незафиксированные транзакции откатываются.

TRANSACTIONAL – представляется возможность завершить транзакции.

NORMAL – Экземпляр не останавливается, пока не отсоединятся сеансы.

SHUTDOWN NORMAL

Нормальный режим остановки базы данных, используется по умолчанию.

• Новые соединения не разрешаются.
• Сервер Oracle ожидает отсоединения всех пользователей и только после этого продолжает остановку базы данных.
• Буферы из КЭШа базы данных и журнала записываются на диск.
• Фоновые процессы завершаются и SGA удаляется из памяти.
• Перед остановкой экземпляра, Oracle закрывает и демонтирует базу данных.
• При следующем запуске не потребуется восстановление экземпляра.

SHUTDOWN TRANSACTIONAL

Транзакционная остановка обеспечивает сохранность данных клиентов, включая результаты текущих действий. Остановка базы данных в транзакционном режиме происходит следующим образом:

• Ни один клиент не может запустить новую транзакцию в этом экземпляре.
• Клиент принудительно отсоединяется, как только завершается текущая транзакция.
• Как только все транзакции завершены, немедленно выполняется остановка.
• При следующем запуске не потребуется восстановление экземпляра.

SHUTDOWN IMMEDIATE

Немедленная остановка базы данных выполняется следующим образом:

• Обработка команд SQL, выполняемых Oracle в данный момент, не завершается.
• Сервер Oracle не ожидает отсоединения пользователей, работающих с базой данных в текущий момент.
• Oracle выполняет откат всех активных транзакций и принудительно отсоединяет всех пользователей.
• Oracle закрывает и демонтирует базу данных перед остановкой экземпляра.
• При следующем запуске не потребуется восстановление экземпляра.

Читайте также:  Как перевести ноутбук в безопасный режим

SHUTDOWN ABORT

Если режимы нормальной и немедленной остановки не срабатывают, может быть выполнена аварийная остановка базы данных. Аварийное завершение работы экземпляра выполняется следующим образом:

Немедленно отменяются все команды SQL, обрабатываемые сервером Oracle.
Сервер Oracle не ожидает отсоединения пользователей, работающих с базой данных в текущий момент.
Буферы из КЭШа базы данных и журнала не записываются на диск.
Не выполняется откат незафиксированных транзакций.
База данных не закрывается и не демонтируется.
Экземпляр удаляется без закрытия файлов.
При следующем запуске потребуется восстановление экземпляра, которое произойдет автоматически.

Oracle DBA

Исходные коды проекта хранятся на bitbucket.

Лучше потратить какое-то количество времени, чтобы записать успешный опыт, чем потом повторно воспроизводить его по памяти.

Все материалы обновляются по мере нахождения лучших практик и апгрейда знаний. Если будут желающие добавлять свои знания или исправлять ошибки и неточности, пишите в телеграм чате. Если будет учавствовать больше людей, качество материалов будет улучшаться и обновляться быстрее. Ссылки на ваши профили в соц. сетях будут добавлены в статьях, в которых вы учавствуете.

Моя цель создать новый экземпляр базы данных Oracle с определённым именем.
Я назвал его ‘orcl’. Но после добавления нового экземпляра в базу данных, необходимо этот новый экземпляр базы данных ещё и перезапустить.

Всё бы ничего, только следующие команды, что я нашёл для достижения подобной операции работают только в Linux/Unix:

А мой сервер базы данных Oracle установлен на Windows 🙂

Я знаю заранее, что вы скажете типа, что "зачем на нём вы сервер БД развёртывали ?" и.т.д., поэтому отвечаю сразу: для меня пока очень удобно изучать технологии через Windows, так как в отличии от *nix эта ОС проста в использовании, но уже когда я в реальной задаче буду поднимать сервер, то только на Linux/Unix.

Я попытался эти команды использовать в командной строке Windows, но они также не работают("srvctl" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.).

Вопрос: Как ещё можно остановить, а затем снова запустить экземпляр ‘orcl’?

Может есть и другой способ перезапустить экземпляр базы данных? Если есть, то умоляю детально его описать.

Если нет, то прошу, скажите: Как установить службу srvctl на Windows, чтобы можно было бы её запустить там же с командной строки и через неё уже перезапустить мой экземпляр базы данных ‘orcl’? А то что-то гугл мне выдаёт только инфу об установке экземпляра базы данных для пользователей Linux/Unix.

Рекомендовано для:

  • Oracle Database 9i R1
  • Oracle Database 9i R2
  • Oracle Database 10g R1
  • Oracle Database 10g R2
  • Oracle Database 11g R1

В этом уроке я постараюсь подробнее рассказать о запуске и остановке экземпляра базы данных Oracle.

Вам, как DBA неоднократно придется запускать и останавливать экземпляр базы данных. Для этого Oracle предлагает несколько интерфейсов. Рассмотрим их, а так же опции запуска и остановки, которые вы должны знать и понимать, чтобы потом успешно применять их.

Для запуска или остановке экземпляра, вы должны быть подключены с соответствующими привилегиями. Для этого существует две специально авторизованных учетных записи SYSDBA или SYSOPER. SYSDBA авторизован на абсолютно все задачи связанные с базой данных, полномочия SYSOPER несколько меньше, но тем не менее они позволяют проводить остановку и запуск экземпляра Oracle. Когда база данных только что установлена, только SYS может соединиться с базой данных с разрешение SYSDBA. Далее вы можете дать привилегию SYSOPER, для выполнения ряда административных мероприятий. Теперь обсудим как выполнять запуск базы данных.

Запуск базы данных Oracle

Как упоминалось ранее, экземпляр Oracle состоит из нескольких процессов и логических структур памяти, которые позволяют пользователю общаться с базой данных. Во время запуска базы данных, эти структуры инициализируются и запускаются. При запуске базы данных, она проходит через несколько шагов, для проверки ее целостности. При запуске база данных использует три режима: NOMOUNT, MOUNT и OPEN. Рассмотрим каждый из них подробнее.

STARTUP NOMOUNT

STARTUP NOMOUNT запускает базу данных без монтирования. Когда база данных запущена в этом режиме, читается файл параметров, инициализируются фоновые процессы и структуры памяти, но они не связываются с дисковыми структурами базы данных. Когда база данных в этом состоянии, она недоступна для использования.

Читайте также:  Как отменить действие горячие клавиши

Если база данных запущена в режиме NOMOUNT, то вы можете выполнять некоторые задачи, например запуск скриптов на создание основной базы данных.

Иногда база данных недоступна для перехода в следующий режим — MOUNT, и остается в состоянии NOMOUNT. Например, такое возможно при проблеме с доступом к управляющим файлам, которые содержат важную информацию для продолжения процесса запуска. Если эти файловые структуры недоступны или повреждены, то процесс запуска базы данных не может быть продолжен, до решения проблемы.

STARTUP MOUNT

Опция STARTUP MOUNT выполняет все шаги опции STARTUP NOMOUNT, но еще так же связывает и взаимодействует со структурами базы данных. В этот момент, Oracle получает информацию от управляющих файлов, которые используются для связи с основными структурами базы данных.

Часть административных задач выполняется в этом режиме, например, восстановление базы данных. Так же можно изменять физическое расположение файлов и перевести базу данных в режим ARCHIVE LOG.

STARTUP OPEN

Опция STARTUP OPEN является опцией по-умолчанию, если не указано иное. Она выполняет все операции STARTUP NOMOUNT и STARTUP MOUNT. Эта опция делает базу данных доступной для пользователей.

Хотя обычно используются три режима: STARTUP NOMOUNT, STARTUP MOUNT и STARTUP OPEN, доступны еще опции запуска, которые вы можете использовать в ряде ситуаций. Это STARTUP FORCE и STARTUP RESTRICT. О них и пойдет речь далее.

STARTUP FORCE

STRATUP FORCE может использоваться, если у вас есть трудности с запуском базы данных в нормальном режиме. Например, если сервер базы данных был неожиданно отключен от электричества и база данных была резко остановлена. В этом случае может помочь STARTUP FORCE. В нормальной ситуации этот режим не требуется, но может пригодится, если нормальный запуск не работает.

Основное отличие этой опции от других, это то, что она может быть исполнена в любое время, независимо от режима в котором находится база данных. Это режим запуска выполняет остановку базы данных в режиме ABORT и перезапускает ее.

STARTUP RESTRICT

STARTUP RESTRICT запускает базу данных и переводит ее в режим OPEN, но предоставляет доступ только тем пользователям, которые имеют привилегию RESTRICTED SESSION. Возможно потребуется открыть базу данных в этом режиме для проведения технических работ по обслуживанию, когда база данных открыта, но вы хотите быть уверены, что пользователи не работают с базой. Так же можно открыть базу данных используя опцию RESTRICTED при выполнении импорта или экспорта и требуется гарантия, отсутствия пользователей в базе данных. После завершения работ, вы можете перевести базу в нормальный режим, чтобы каждый мог с ней работать. Для этого выполните:

Запуск базы данных средствами EM Database Control

Альтернативным способом запуска базы данных является использование утилиты Enterprise Manager Database Control. Для его использования нужно чтобы он был настроен. О настройке расскажем потом. А сейчас просто расскажем как его запустить. На уроке по созданию базы данных, в утилите dbca, на одном из шагов мы указывали опцию "Configure Enterprise Manager". Так что считаем, что он настроен. Для запуска выполните:

[oracle@test db_1]$ export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
[oracle@test db_1]$ export ORACLE_S >[oracle@test db_1]$ cd $ORACLE_HOME/bin
[oracle@test bin]$ ./emctl start dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.1.0.7.0
Copyright (c) 1996, 2008 Oracle Corporation. All rights reserved.
https://test.all-oracle.ru:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control . started.
——————————————————————
Logs are generated in directory /u01/app/oracle/product/11.1.0/db_1/test.all-oracle.ru_test/sysman/log
[oracle@test bin]$

Сейчас EM запущен и к нему возможен доступ посредством Web-интерфейса. Для версий Oracle 9i и 10g был выпущен EM в виде графического Java приложения. В 10 версии был впервые введен web-интерфейс для EM. Как видно из вывода консоли, получить доступ к EM можно по ссылке https://test.all-oracle.ru:1158/em/ В общем виде ссылка выглядит так https:// : /em/

В EM при входе проходим авторизацию. Далее, для того, чтобы погасить или запустить экземпляр потребуется повторная авторизация, на уровне ОС и на уровне СУБД:

На уровне ОС, указываем пользователя, владельца экземпляра Oracle, в нашем примере это пользователь oracle. На уровне СУБД — пользователь имеющий привилегии остановки и запуска экземпляра. В приведенном примере — SYS.

Читайте также:  Как выбрать карту памяти для планшета

В слкчае успешной авторизации, будет указано текущее и предпринимаемое действие. Сейчас экземпляр остановлен (Current Status: shutdown), и выполняется запуск в режиме OPEN (Operation: startup database in open mode).

Кликнув по кнопке Show SQL будет выведена команда SQL, которая используется для запуска. Кликнув по кнопке Advanced Options, можно выбрать дополнительные опции запуска, а именно режим, использование файла параметров. Кнопки No и Yes подтверждение или отмена выполняемого действия. Нажимаем Yes, и видим, что система начала работу:

Через некоторое время, систма сообщит об успешном запуске экземпляра БД, или ошибке, если таковая произойдет. В слкчае успешного завершения запуска, увидим окно EM с указанием текщуего статуса базы данных и дополнительной информацией о ней:

Сейчас экземпляр базы данных запущен и готов к работе.

Запуск базы данных средствами SQL*Plus

Запуск базы данных можно осуществить и средствами командной строки SQL*Plus. Для этого надо подключится к SQL*Plus с привилегиями SYSOPER или SYSDBA.

[oracle@test bin]$ ./sqlplus / as sysdba
SQL*Plus: Release 11.1.0.7.0 — Production on Fri Apr 10 12:43:16 2009
Copyright (c) 1982, 2008, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 845348864 bytes
Fixed Size 1316656 bytes
Variable Size 473958608 bytes
Database Buffers 364904448 bytes
Redo Buffers 5169152 bytes
Database mounted.
Database opened.
SQL>

Остановка базы данных Oracle
SHUTDOWN NORMAL

Опция SHUTDOWN NORMAL является опцией по умолчанию и используется если не указаны иные опции. При такой остановке базы данных следует знать:

SHUTDOWN TRANSACTIONAL

Транзакционный способ производит остановку базы данных в несколько более агрессивном режиме, чем NORMAL. Характеристики транзакционного способа остановки:

  • Во время выполнения SHUTDOWN TRANSACTIONAL не позволены никакие новые соединения пользователей с базой данных
  • С момента запуска SHUTDOWN TRANSACTIONAL не позволены никакие транзакции
  • Oracle ждет завершения текущих транзакций, существующие подключения к базе данных разрываются

Такой способ остановки позволяет клиентам перед отключением завершить текущие транзакции, таким образом не потерять их и не потерять проделанную работу. Этот тип остановки также называется чистым, поскольку все проходит в штатном режиме.

SHUTDOWN IMMEDIATE

Является следующим по агрессивности шагом. Опция SHUTDOWN IMMEDIATE характеризуется следующим:

  • Во время выполнения SHUTDOWN IMMEDIATE не позволены новые подключения к базе данных
  • Все незавершенные транзакции откатываются. Т.е. если транзакция пользователя в процессе исполнения, то он теряет проделанную работу (в рамках транзакции)
  • Oracle не ожидает завершения транзакций, откатывает их, и разрывает существующие подключения к базе данных

Этот тип остановки удобен когда требуется оставить Oracle без присмотра и требуется быть уверенным, что база данных остановится и пользователи будут отключены. Остановку таким способом можно считать чистой, после такой остановки не требуется восстановления базы данных.

SHUTDOWN ABORT

SHUTDOWN ABORT самый агрессивный способ остановки базы данных, характеризуется следующим:

  • Во время исполнения SHUTDOWN ABORT новые подключения не позволены
  • Прекращается исполнение любых SQL команд, независимо от состояния
  • Незавершенные транзакции не откатываются
  • Oracle разрывает все существующие подключения немедленно, как выпущена команда SHUTDOWN ABORT

Старайтесь не использовать SHUTDOWN ABORT. Используйте только в тех случаях, когда другие опции остановки не удались, или ваш опыт позволяет использовать эту опцию в данной ситуации. SHUTDOWN ABORT не является чистой остановкой базы данных, и после ее запуска может потребоваться восстановление.

Остановка базы данных средствами SQL*plus

Для остановки базы данных подключаемся к sqlplus в командной строке пользователем SYS или другим имеющим привилегии на запуск и остановку базы данных, и выполняем:

[oracle@test bin]$ ./sqlplus / as sysdba
SQL*Plus: Release 11.1.0.7.0 — Production on Fri Apr 10 12:45:05 2009
Copyright (c) 1982, 2008, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 — Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

Остановка экземпляра БД средствами EM

Остановка экземпляра базы данных происходит аналогично запуску, за тем исключением, что на главной странице выбираем опцию Shutdown.

Adblock
detector