Pull to refresh

«Замораживание» и «подвешивание» базы данных Oracle 11g

Во время выполнения операций обслуживания можно временно перевести базу данных в состояние покоя («заморозить», quiesce) или ожидания («подвесить», suspend). Эти возможности позволяют не закрывать базу данных на время обслуживания, сэкономить время на её закрытие и избежать воздействий, связанных с этим процессом.
Пока база данных заморожена, новые транзакции могут быть разрешены только для учётных записей SYS и SYSTEM. Новые запросы или попытки входа в систему будут находиться в состоянии ожидания, пока база данных не будет выведена из состояния покоя. Опция перевода в состояние покоя полезна при обслуживании таблиц и сложном обслуживании данных. Чтобы воспользоваться ей, сначала необходимо активировать диспетчер управления ресурсами базы данных. Вдобавок, параметр инициализации RESOURCE_MANAGEMENT при запуске базы данных должен быть установлен на TRUE, а после запуска он не должен быть дезактивирован.
Войдя в систему как SYS или SYSTEM (другие учётные записи с привилегией SYSDBA не могут выполнять эти команды), переведите базу данных в состояние покоя:

alter system quiesce restricted;

Все сеансы с базой данных, кроме осуществляемых администратором, будут продолжать работу до завершения текущей команды и с этого момента станут неактивными. В конфигурациях Real Application Clusters все экземпляры перейдут в состояние покоя.
Чтобы проверить, находится ли база данных в состоянии покоя, нужно войти в систему как SYS или SYSTEM и выполнить следующий запрос:

select Active_State from V$INSTANCE;

Значением столбца Active_State будет NORMAL (не заморожен), QUIESCING (активные сеансы, проводимые не администратором, ещё выполняются) или QUIESCED (заморожен).
Для вывода базы данных из состояния покоя применяется команда:

alter system unquiesce;

Вместо перевода базы данных в состояние покоя (замораживания) можно перевести её в состояние ожидания. В этом состоянии база данных не выполняет операций ввода/вывода для файлов данных и управляющих файлов, что позволяет проводить её резервное копирование без помех со стороны ввода/вывода. Для перевода базы данных в состояние ожидания нужно выполнить команду:

alter system suspend;

Хотя команда alter system suspend; может выполняться из любой учётной записи с привилегией SYSDBA, нормальные операции можно возобновить только из учётных записей SYS и SYSTEM. Их использование поможет избежать потенциальных ошибок при возобновлении работы базы данных. В конфигурациях Real Application Clusters все экземпляры перейдут в состояние ожидания. Для проверки текущего статуса используется команда:

select Database_Status from V$INSTANCE;

База данных будет находиться в состоянии SUSPENDED или ACTIVE. Чтобы возобновить её работу, нужно войти в систему как SYS или SYSTEM и выполнить команду:

ater system resume;
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.