Сравнение Синхронного и Асинхронного ввода-вывода

Рубрика: Контроль и Настройка RMAN

Когда RMAN читает или записывает данные, ввод-вывод является или синхронным, или асинхронным.

Сравнение Синхронного и Асинхронного ввода-вывода

Когда ввод-вывод является синхронным, серверный процесс может выполнять только одну задачу за один раз. Когда он является асинхронным, серверный процесс может начать ввод-вывод, а затем выполнять другие задачи в ожидании завершения ввода-вывода. Он может также начать несколько операций ввода-вывода прежде, чем завершится первая из них.

Можно установить параметры инициализации, которые определяют тип ввода-вывода. Если Вы устанавливаете BACKUP_TAPE_IO_SLAVES в TRUE, ввод-вывод ленты является асинхронным. Иначе, ввод-вывод является синхроненным.

Пример на рисунке показывает синхронный ввод-вывод в резервном копировании на ленту. Следующие шаги происходят при синхронной передаче:

  1. Серверный процесс пишет блоки в буфер ленты.

  2. Процесс ленты пишет данные на ленту. Серверный процесс приостанавливается, пока менеджер носителей копирует данные с буферов Oracle на внутренние буферы менеджера носителей.

  3. Процесс ленты сообщает серверному процессу, что тот завершил запись.

  4. Серверный процесс может инициировать новую задачу.

Сравнение Синхронного и Асинхронного ввода-вывода

Многие операционные системы поддерживают собственный асинхронный ввод-вывод, и Oracle может извлечь пользу из этой функциональности, когда она доступна. Рекомендуется, чтобы Вы всегда устанавливали BACKUP_TAPE_IO_SLAVES в TRUE, когда платформа поддерживает это. На операционных системах, которые не поддерживают собственный асинхронный ввод-вывод, Oracle может имитировать его при использовании специальных вспомогательных процессов ввода-вывода, которые выделяются для выполнения ввода-вывода от имени другого процесса. Можно управлять дисковыми вспомогательными задачами, устанавливая параметр DBWR_IO_SLAVES в ненулевое значение. Oracle выделяет четыре вспомогательных задачи ввода-вывода дискового резервирования для любого ненулевого значения DBWR_IO_SLAVES.

Пример на рисунке иллюстрирует асинхронный ввод-вывод в резервировании на ленту. Шаги, которые происходят при асинхронном обмене, детализируются ниже:

  1. Серверный процесс пишет блоки в буфер ленты.

  2. Процесс ленты пишет данные на ленту. В то время как процесс ленты пишет, другие серверные процессы свободны для обработки большего числа входных блоков и заполнения большего числа буферов вывода.

  3. Порожденный серверный процесс пишет в буферы ленты, в то время как начальный процесс ленты пишет на ленту.

Далее: Передовая практика: Проактивные Проверки

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)