Слайд 3Процессы и потоки Windows
Процесс (process) – механизм ОС Windows, осуществляющий запуск и
![Процессы и потоки Windows Процесс (process) – механизм ОС Windows, осуществляющий запуск](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-2.jpg)
выполнение приложений
Процесс создается, когда запускается приложение
В общем случае выполняется в собственной области памяти
Поток (thread) – индивидуальная ветвь внутри процесса, выполняющая конкретные программные инструкции
Слайд 4Процессы Oracle
Серверные процессы – процессы, выполняющиеся на основании клиентского запроса
Фоновые процессы –
![Процессы Oracle Серверные процессы – процессы, выполняющиеся на основании клиентского запроса Фоновые](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-3.jpg)
запускаются вместе с базой данных и выполняют разнообразные задачи обслуживания
Подчиненные процессы – аналогичны фоновым, но выполняют дополнительные действия для фонового или серверного процессов
Слайд 5Серверные процессы
Клиентский процесс прямо взаимодействует с соответствующим серверным процессом по сети
Первичное установление
![Серверные процессы Клиентский процесс прямо взаимодействует с соответствующим серверным процессом по сети](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-4.jpg)
соединения происходит через специальный серверный процесс Oracle Net Listener
Серверный процесс:
Получает и выполняет SQL-операторы
Читает файлы данных
Осуществляет поиск в кеше
Назначение — отвечать на получаемые SQL-запросы
Клиентом может быть любая программа, пытающаяся подключиться к СУБД
Слайд 6Серверные процессы
Отправка SQL-запроса select * from students;
Производит синтаксический разбор
Помещает в разделяемый пул
![Серверные процессы Отправка SQL-запроса select * from students; Производит синтаксический разбор Помещает](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-5.jpg)
(находит в пуле)
Создает план запроса и выполняет его
При необходимости, производит поиск данных в буферном кэше или запрашивает в кэш с диска
Слайд 7Oracle Net Listener
Oracle Net Listener – процесс на стороне сервера, прослушивающий входящие
![Oracle Net Listener Oracle Net Listener – процесс на стороне сервера, прослушивающий](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-6.jpg)
запросы клиента на соединение с экземпляром.
Listener – это программа-сервер, прослушивающая TCP-порт, принимающая запросы на соединение с Oracle экземпляром от программ-клиентов.
В результате успешной работы Listener устанавливается соединение между программой-клиентом и обработчиком запросов экземпляра.
По умолчанию TCP-порт 1521
Слайд 8Oracle Net Listener – Службы
![Oracle Net Listener – Службы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-7.jpg)
Слайд 9Oracle Net Listener
Экземпляр может иметь несколько точек подключения
Точки подключения называются сервисами и
![Oracle Net Listener Экземпляр может иметь несколько точек подключения Точки подключения называются](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-8.jpg)
имеют символические имена
При инсталляции автоматически создается два сервиса:
SYS$USERS (по умолчанию, указывается SID в параметрах соединения),
сервис с именем инстанса (указывается сервис)
При создании PDB для нее автоматически добавляется сервис с именем, совпадающим с PDB-именем
Слайд 11Oracle Net Listener – старт экземпляра
фоновый процесс LREG считывает имена и параметры
![Oracle Net Listener – старт экземпляра фоновый процесс LREG считывает имена и](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-10.jpg)
зарегистрированных сервисов экземпляра
регистрирует их в Listener
если Listener не обнаружен, то попытки регистрации периодично повторяются
Listener прослушивает запросы к сервисам
Слайд 12Oracle Net Listener – запрос на соединение
1)клиент выполняет запрос к Listener
![Oracle Net Listener – запрос на соединение 1)клиент выполняет запрос к Listener](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-11.jpg)
на соединение с сервисом экземпляра
2) Listener запрашивает соединение с сервером
3)сервер возвращает параметры соединения с обработчиком сервиса
4) Listener сообщает параметры соединения клиенту
5) клиент соединяется с обработчиком запросов сервиса для дальнейшей работы с сервисом в рамках соединения
Слайд 13Oracle Net Listener
Конфигурационный файл программы Listener: ORACLE_HOME\NETWORK\ADMIN\listener.ora
Файл считывается при старте Listener
![Oracle Net Listener Конфигурационный файл программы Listener: ORACLE_HOME\NETWORK\ADMIN\listener.ora Файл считывается при старте Listener](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-12.jpg)
Слайд 15Oracle Net Listener
lsnrctl – утилита управления процессом Listener
![Oracle Net Listener lsnrctl – утилита управления процессом Listener](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-14.jpg)
Слайд 20Серверные процессы
Серверные процессы выполняют работу от имени сеанса клиента
Подключение посредством выделенного сервера
Подключение
![Серверные процессы Серверные процессы выполняют работу от имени сеанса клиента Подключение посредством](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-19.jpg)
при помощи разделяемого сервера
Слайд 23Shared server
Уменьшается количество серверных процессов
Предпочтительнее, когда в системе присутствует большое количество пользователей
Для
![Shared server Уменьшается количество серверных процессов Предпочтительнее, когда в системе присутствует большое](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-22.jpg)
длительных заданий лучше использовать выделенный режим – почему?
Слайд 27Сравнение режимов выделенного и разделяемого серверов
Настройка
Установление подключений
Режим работы
Короткие и длинные транзакции
Запуск и
![Сравнение режимов выделенного и разделяемого серверов Настройка Установление подключений Режим работы Короткие](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-26.jpg)
останов БД – только в режиме выделенного сервера
Слайд 28Фоновые процессы
Фоновые (background) процессы – специальная группа процессов для обеспечения производительности и
![Фоновые процессы Фоновые (background) процессы – специальная группа процессов для обеспечения производительности](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-27.jpg)
поддержки работы большого числа пользователей
Слайд 30LREG
Listener Registration Process – периодическая регистрация сервисов в процессе Listener
![LREG Listener Registration Process – периодическая регистрация сервисов в процессе Listener](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-29.jpg)
Слайд 31DBWn
Database Writer Process: (n=0,…,9, a,…,z; BWm, m=36,…,99) – фоновый процесс записывающий по
![DBWn Database Writer Process: (n=0,…,9, a,…,z; BWm, m=36,…,99) – фоновый процесс записывающий](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-30.jpg)
LRU измененные блоки (грязные блоки) в файлы базы данных.
Слайд 32DBWn
В большинстве случаев достаточно одного процесса
Если процессор 1, то в более чем
![DBWn В большинстве случаев достаточно одного процесса Если процессор 1, то в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-31.jpg)
в 1 DBW не смысла
Проверяет с периодичностью не менее 3 сек. наличие измененных блоков и инициирует checkpoint и по команде фонового процесса CKPT сбрасывает некоторую их часть на диск
Использует асинхронный ввод-вывод для записи блоков на диск
Слайд 33DBWn
Сброс измененных блоков буферного кэша может инициироваться фоновым процессом CKPT
Сброс измененных блоков
![DBWn Сброс измененных блоков буферного кэша может инициироваться фоновым процессом CKPT Сброс](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-32.jpg)
может инициироваться через CKPT серверным процессом (выделенным или разделяемым), который не обнаружил свободного места в буферном кэше
DBW записывает измененные (LRU, RECYCLE/DEFAULT/KEEP) блоки на диск и освобождает место в буферном кэше
Слайд 34CKPT
CKPT выполняет процесс checkpoint
Выполняется при shutdown, alter system checkpoint, переключении REDO
![CKPT CKPT выполняет процесс checkpoint Выполняется при shutdown, alter system checkpoint, переключении](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-33.jpg)
– журнала, периодическом сообщение от DWR, backup
записывает информацию о контрольной точке в управляющие файлы
дает команду DBW на сброс буферов
дает команду LGWR на сброс буферов
Слайд 35CKPT
инициирует создание контрольной точки
изменяет управляющие файлы (последний SCN)
изменяет заголовки файлов
сигнализирует
![CKPT инициирует создание контрольной точки изменяет управляющие файлы (последний SCN) изменяет заголовки](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-34.jpg)
DBWR о необходимости сбросить буферы
Слайд 36LGWR
Log Writer Process – только один
управляет буфером журналов повтора
записывает блоки буфера журналов
![LGWR Log Writer Process – только один управляет буфером журналов повтора записывает](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-35.jpg)
повтора в группы журналов
записывает изменения базы данных до их фиксации DBWR в базе данных
переключает текущую группу
Раз в 3 секунды
При фиксации транзакции
При заполнении буфера на 1/3 или записи в него 1Мб
Слайд 37LGWR
Если по какой-то причине LGWR не может записать данные в один из
![LGWR Если по какой-то причине LGWR не может записать данные в один](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-36.jpg)
файлов группы, он продолжает работать (информация об этом событии в alert)
Если файл в группе один или нет возможности записать ни в один файл группы, то экземпляр остановится
Производительность LGWR является критической для экземпляра
Слайд 38LGWR
Инициирует создание контрольных точек
Чем чаще контрольные точки, тем меньше времени потребуется
![LGWR Инициирует создание контрольных точек Чем чаще контрольные точки, тем меньше времени](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-37.jpg)
при восстановлении базы данных при сбое
Слайд 42ARCn
Archiver Process – копирует файлы журнала повтора после переключения группы журналов
Необязательный процесс
![ARCn Archiver Process – копирует файлы журнала повтора после переключения группы журналов Необязательный процесс](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-41.jpg)
Слайд 45PMON
Process monitor – отвечает за очистку после ненормального закрытия подключений
Инициирует откат незафиксированных
![PMON Process monitor – отвечает за очистку после ненормального закрытия подключений Инициирует](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-44.jpg)
транзакций, снятие блокировок, и освобождение ресурсов SGA
следит за работой других фоновых процессов, отвечает за их перезапуск
восстанавливает работу dispatcher или shadow процессов при системном сбое
Слайд 46SMON
System Monitor Process – системный монитор
Восстановление экземпляра для узла
Восстановление незавершенных транзакций
Очистка временных
![SMON System Monitor Process – системный монитор Восстановление экземпляра для узла Восстановление](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-45.jpg)
сегментов данных
Очистка временных табличных пространств
Объединение свободного пространства
Очистка таблицы OBJ
Сжатие сегментов отката
Слайд 47RECO
Recovery Process – разрешение проблем связанных с распределенными транзакциями
![RECO Recovery Process – разрешение проблем связанных с распределенными транзакциями](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-46.jpg)
Слайд 48RECO
Одна из баз данных, к которой первоначально подключился клиент, становится координатором
Сервер опрашивает
![RECO Одна из баз данных, к которой первоначально подключился клиент, становится координатором](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-47.jpg)
остальные N -1 серверов, готовы ли они фиксировать транзакцию
Каждый из N -1 серверов сообщает о своем состоянии готовности как да (YES) или нет (NO)
Если любой из серверов вернул NO, вся транзакция откатывается
Если все серверы вернули YES, координатор рассылает всем N - 1 серверам сообщение о постоянной фиксации
Слайд 49RECO
Если серверы ответили YES и происходит сбой сети транзакция становится сомнительной (in-doubt) распределенной транзакцией
Протокол обработки распределенных
![RECO Если серверы ответили YES и происходит сбой сети транзакция становится сомнительной](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-48.jpg)
транзакций не может полностью предотвратить сомнительные транзакции
Остальную обработку сомнительной транзакции выполняет процесс RECO
Слайд 50RECO
Транзакция остается незафиксированной
RECO может восстановить либо откатить транзакцию, связавшись с координатором
Если процесс
![RECO Транзакция остается незафиксированной RECO может восстановить либо откатить транзакцию, связавшись с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-49.jpg)
RECO не может связаться с координатором, то необходимо зафиксировать или откатить транзакции вручную
Слайд 51FBDA
Flashback Data Archiever – архивирование ретроспективных данных
![FBDA Flashback Data Archiever – архивирование ретроспективных данных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-50.jpg)
Слайд 52Режимы старта и останова экземпляра
Для запуска или остановки экземпляра должно использоваться подключение
![Режимы старта и останова экземпляра Для запуска или остановки экземпляра должно использоваться](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-51.jpg)
с разрешением SYSDBA или SYSOPER
Слайд 53Старт экземпляра базы данных Oracle
STARTUP NOMOUNT
STARTUP MOUNT
STARTUP OPEN
STARTUP FORCE
STARTUP RESTRICT
![Старт экземпляра базы данных Oracle STARTUP NOMOUNT STARTUP MOUNT STARTUP OPEN STARTUP FORCE STARTUP RESTRICT](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-52.jpg)
Слайд 54Останов экземпляра базы данных
SHUTDOWN NORMAL
SHUTDOWN TRANSACTIONAL
SHUTDOWN IMMEDIATE
SHUTDOWN ABORT
![Останов экземпляра базы данных SHUTDOWN NORMAL SHUTDOWN TRANSACTIONAL SHUTDOWN IMMEDIATE SHUTDOWN ABORT](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-53.jpg)
Слайд 55STARTUP NOMOUNT
Запуск экземпляра Oracle без монтирования базы данных
Доступ пользователей запрещен
Используется
![STARTUP NOMOUNT Запуск экземпляра Oracle без монтирования базы данных Доступ пользователей запрещен](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-54.jpg)
для создания БД и пересоздания управляющих файлов
Слайд 56STARTUP MOUNT
Запустить экземпляр, монтировать БД, но не запускать ее
Считан файл параметров
Происходит
![STARTUP MOUNT Запустить экземпляр, монтировать БД, но не запускать ее Считан файл](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-55.jpg)
обращение к управляющим файлам
Проверяется состояние файлов БД
Доступ пользователей запрещен
Из состояния STARTUP NOMOUNT переводится ALTER DATABASE MOUNT
Слайд 57STARTUP OPEN
Запустить экземпляр
Монтировать и открыть БД
Могут присоединяться пользователи
Из состояния STARTUP MOUNT
![STARTUP OPEN Запустить экземпляр Монтировать и открыть БД Могут присоединяться пользователи Из](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-56.jpg)
переводится ALTER DATABASE OPEN
Можно стартовать в режиме только для чтения
ALTER DATABASE OPEN READ ONLY
ALTER DATABASE OPEN READ WRITE
STARTUP RESTRICT - для пользователей, имеющих привилегию RESTRICTED SESSION
ALTER SYSTEM DISABLE(ENABLE) RESTRICTED SESSION
Слайд 58SHUTDOWN NORMAL
Запрещено создавать новые сессии
Ожидается завершение работы всех пользователей
Самый безопасный и
![SHUTDOWN NORMAL Запрещено создавать новые сессии Ожидается завершение работы всех пользователей Самый](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-57.jpg)
долгий способ останова
Никаких восстановительных работ при следующем старте не проводится
Слайд 59SHUTDOWN TRANSACTIONAL
Запрещено создавать новые сессии
Запрещено запускать новые транзакции
Сервер дожидается завершения уже
![SHUTDOWN TRANSACTIONAL Запрещено создавать новые сессии Запрещено запускать новые транзакции Сервер дожидается](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-58.jpg)
начатых транзакций и отключает пользователей, не имеющих активных транзакций
Применяется в случаях, когда нет возможности применить NORMAL
Никаких восстановительных работ при следующем старте не проводится
Слайд 60SHUTDOWN IMMEDIATE
Запрещено создавать новые сессии
Запрещено запускать новые транзакции
Все незафиксированные транзакции откатываются
Применяется
![SHUTDOWN IMMEDIATE Запрещено создавать новые сессии Запрещено запускать новые транзакции Все незафиксированные](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-59.jpg)
в случаях, когда нет возможности ждать
Никаких восстановительных работ при следующем старте не проводится
Слайд 61SHUTDOWN ABORT
Применяется в крайних случаях, когда остальные режимы останова не приводят
![SHUTDOWN ABORT Применяется в крайних случаях, когда остальные режимы останова не приводят](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1043602/slide-60.jpg)
к результату
Все действия прекращаются
Все транзакции не фиксируются и не откатываются
Пользователей отсоединяют от БД
При следующем старте будет выполнено возможное восстановление