Получил письмо от правообладателя Елена Савельева <[email protected]>
Здравствуйте. Вы опубликовали на своем сайте материалы из книги нашего издательства:
Oracle Database 11g: руководство администратора баз данных. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2010. — 1440 с. : ил. — Парал. тит. англ. ISBN 978-5-8459-1592-4 (рус.)
Не имея на то никаких прав. Требует удалить публикацию во избежание судебного иска и блокировки сайта Роскомнадзором. Требуем также удалить другие материалы из книг нашего издательства с Вашего сайта.
Требуем произвести удаление до 7 сентября 2018 года. "Не получение" этого письма не освобождает Вас от ответственности. Понятно, да?
Процессы 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 пишет изменения в данные файлы.
Но делает это при выполнении следующих условий:
- Каждые 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 файла, внося туда детали контрольной точки.
Каждая запись контрольной точки состоит из списка всех активных транзакций и адреса последней записи журнала для этих транзакций.
Что происходит при создании контрольной точки:
- Запись содержимого буферов redolog в redolog файлы
- Внесение записи контрольной точки в redolog файл
- Запись буферного кэша в файл данных
- Обновление заголовков файла данных и 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 задействованы и другие процессы.