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