Получил письмо от правообладателя Елена Савельева <[email protected]>


Здравствуйте. Вы опубликовали на своем сайте материалы из книги нашего издательства:
Oracle Database 11g: руководство администратора баз данных. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2010. — 1440 с. : ил. — Парал. тит. англ. ISBN 978-5-8459-1592-4 (рус.)
Не имея на то никаких прав. Требует удалить публикацию во избежание судебного иска и блокировки сайта Роскомнадзором. Требуем также удалить другие материалы из книг нашего издательства с Вашего сайта.
Требуем произвести удаление до 7 сентября 2018 года. "Не получение" этого письма не освобождает Вас от ответственности. Понятно, да?



Книга лежит в общем доступе на торрент-трекерах уже более 4 лет. Да, книга как по мне, так хорошая. Лучшая, из того что попадалось. Впрочем материал в ней ориентируется на базу версии 11.1. т.е. на базу десятилетней давности.


Процессы Oracle DataBase

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

Если вы собираетесь сдавать экзамен, то вам лучше обратиться по этой теме к другому источнику. (Или лучше поправить неточности записанные ниже).


Получить информацию о процессах в Linux, можно выполнив команду:

$ ps -eaf | grep ora112


oracle11  2722     1  0  2011 ?        01:02:06 ora_pmon_ora112
oracle11  2726     1  0  2011 ?        00:39:42 ora_psp0_ora112
oracle11  2730     1  0  2011 ?        05:12:43 ora_vktm_ora112
oracle11  2736     1  0  2011 ?        00:32:43 ora_gen0_ora112
oracle11  2740     1  0  2011 ?        00:22:40 ora_diag_ora112
oracle11  2744     1  0  2011 ?        00:35:09 ora_dbrm_ora112
oracle11  2748     1  0  2011 ?        01:14:24 ora_dia0_ora112
oracle11  2752     1  0  2011 ?        00:31:44 ora_mman_ora112
oracle11  2756     1  0  2011 ?        00:46:33 ora_dbw0_ora112
oracle11  2760     1  0  2011 ?        00:40:06 ora_lgwr_ora112
oracle11  2764     1  0  2011 ?        01:28:04 ora_ckpt_ora112
oracle11  2768     1  0  2011 ?        00:18:38 ora_smon_ora112
oracle11  2772     1  0  2011 ?        00:15:23 ora_reco_ora112
oracle11  2776     1  0  2011 ?        01:30:37 ora_mmon_ora112
oracle11  2780     1  0  2011 ?        01:15:35 ora_mmnl_ora112
oracle11  2784     1  0  2011 ?        00:15:53 ora_d000_ora112
oracle11  2788     1  0  2011 ?        00:16:04 ora_s000_ora112
oracle11  2838     1  0  2011 ?        00:33:21 ora_rvwr_ora112
oracle11  2845     1  0  2011 ?        00:16:10 ora_arc0_ora112
oracle11  2849     1  0  2011 ?        00:17:40 ora_arc1_ora112
oracle11  2853     1  0  2011 ?        00:15:52 ora_arc2_ora112
oracle11  2857     1  0  2011 ?        00:15:55 ora_arc3_ora112
oracle11  2861     1  0  2011 ?        00:17:30 ora_qmnc_ora112
oracle11  2992     1  0  2011 ?        01:13:39 ora_cjq0_ora112
oracle11  3027     1  0  2011 ?        00:17:59 ora_q000_ora112
oracle11  3031     1  0  2011 ?        00:15:07 ora_q001_ora112
oracle11  3083     1  0  2011 ?        00:32:57 ora_smco_ora112
oracle11  5167     1  0 Jan24 ?        00:00:02 oracleora112 (LOCAL=NO)
oracle11 16833     1  0 14:42 ?        00:00:00 ora_w000_ora112
oracle11 16866  5073  0 14:46 pts/0    00:00:00 grep ora112


Посмотреть все доступные фоновые процессы Oracle можно, выполнив запрос к представлению v$BGPROCESS

SQL> SELECT name, description FROM v$BGPROCESS ORDER BY 1;


SQL> SELECT pname FROM v$PROCESS;


Есть обязательные процессы, без которых oracle работать не сможет и необязательные. Процесс отвечающий за подключение к базе данных и для работы пользователя с ней - не является обязательным.

Обязательные процессы запускаются при старте экземпляра и остаются активными на все время его жизни.

Далее перечислим наиболее важные процессы (остальных как-то совсем не приходилось касаться):

  • DBWn (DataBase Writer) - записывает модифицированные данные из буферного кэша в файлы данных
  • LGWR (Log Writer) - записывает содержимое redolog буфера в redolog файлы.
  • ARCn (Archiver) – архивирует заполненные redolog журналы если такая опция включена. Не является обязательным. Жрет доп. ресурсы. Зато можно восстановить базу к любому времени когда эта опция включена. (упрощенно)
  • CKPT (checkpoint) – отвечает за создание контрольных точек
  • PMON (Process Monitor) – мониторит процессы и восстанавливает работу процессов в случае их сбоя
  • SMON (System Monitor) – отвечает за восстановление системы в случае сбоев
  • MMON (manageability monitor) - сбор статистики
  • ....


DBWn (DataBase Writer) - записывает изменения в файлы данных

Файлы данных:

SQL> select file#, name, status from v$datafile;

Процесс DBWn пишет изменения в данные файлы.

Но делает это при выполнении следующих условий:

  1. Каждые 3 секунды
  2. При создании контрольной точки
  3. Когда некуда записывать изменения.


LGWR (Log Writer) - записывает изменения в redolog файлы

При изменениях в таблице базы данных (INSERT, UPDATE, DELETE), Oracle записывает зафиксированные и незафиксированные изменения в redo буфер в памяти.

После LGWR записывает эти изменения в redolog файлы.

SQL> select group#, member from v$logfile order by group#;


Но делает это не сразу а при выполнении следующих условий:

  • Каждые 3 секунды
  • Сразу после фиксации транзакции
  • Когда redolog буфер заполнен на треть (??? так написано, я сам хз.)
  • DBWn (DataBase Writer) - сообщает о необходимости записи redolog журнала на диск. DBWn сигнализирует LGWR, чтобы тот сначала записал свою информацию, чтобы потом DBWn мог записать на диск свою собственную информацию.
  • Пользователь вводит команды вроде: alter system switch logfile для переключения группы

Запись выполняется во все файлы входящие в группу. Обычно делают 3 группы по 2 файла.

Пример. В первой группе 2 одинаковых файла. В оба LGWR должен записать одно и тоже. Если ему не удастся это сделать, работа базы будет остановлена.

Если непонятно написано, см. пример установки oracle. Там и добавление файлов в группы и переключение и д.р.


ARCn - записывает изменения в archivelog файлы (если включен)

SQL> select name from v$archived_log;

При включенном режиме работы Archivelog, копия redolog журнала сохраняется на диске и при этом еще и архивируется.

Вот собственно этот процесс и занимается этим.


CKPT (checkpoint)

Отвечает за синхронизацию информации буферного кэша с информацией на диске.

CKPT сообщает DBWn, что ему следует записывать «грязные» данные в файлы на диск.

После этого он обновляет заголовки файла данных и control файла, внося туда детали контрольной точки.

Каждая запись контрольной точки состоит из списка всех активных транзакций и адреса последней записи журнала для этих транзакций.

Что происходит при создании контрольной точки:

  1. Запись содержимого буферов redolog в redolog файлы
  2. Внесение записи контрольной точки в redolog файл
  3. Запись буферного кэша в файл данных
  4. Обновление заголовков файла данных и control файлов после завершения контрольной точки.

Контрольную точку можно создать самостоятельно и при необходимости откатиться на нее.

SQL> alter system checkpoint;
SQL> alter system switch logfile;


Контрол файлы лежат здесь:

SQL> select name from v$controlfile;


PMON (Process Monitor)

Следит, чтобы умершие пользовательские процессы не блокировали ресурсы.


SMON (System Monitor)

Из названия следует, что процесс периодически мониторит все ли хорошо с базой.

При перезапуске экземпляра, SMON определяет целостность базы данных


MMON (manageability monitor)

Собирает статистики позволяющие диагностировать работу базы данных. Такие как AWR


И д.р.

При использовании ASM, RAC, DataGuard задействованы и другие процессы.


P.S.Процессы слушателя (Listener), которые используются для удаленного подключения к базе данных здесь не рассматриваются