Во время выполнения операций обслуживания можно временно перевести базу данных в состояние покоя («заморозить», 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;
Пока база данных заморожена, новые транзакции могут быть разрешены только для учётных записей 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;