На заметку! Во всех режимах остановки при выдаче команды SHUTDOWN все попытки подключения новых пользователей будут безуспешными. За исключением команды SHUTDOWN ABORT, все остальные команды SHUTDOWN не будут требовать восстановления экземпляра при запуске базы данных.
Замораживание базы данных
Предположим, что базу данных нужно перевести в ограниченный режим для выполнения реорганизации таблиц или какой-то другой административной задачи. Изменения схемы особенно трудно проводить, если пользователи осуществляют оживленные транзакции в базе данных. Это же относится к необходимости импорта данных в большую таблицу, в то время как пользователи подключены к базе данных. Эти действия нужно выполнять во время так называемого “окна для обслуживания”, или же придется остановить базу данных и перевести ее в ограниченный режим.
Но что делать, если вы не располагаете окном для обслуживания, во время которого можно остановить и перезапустить базу данных? Или, как это часто происходит на практике, предполагаемое окно исчезает, поскольку в выделенном для него интервале времени возникает какая-либо проблема? В большинстве таких случаев приходится дожидаться следующих выходных. Для решения этой проблемы замораживание базы данных предоставляет возможность перевода базы данных в однопользовательский режим без необходимости ее остановки.
Когда администратор БД переводит ее в замороженное состояние, происходит следующее.
Все неактивные сеансы лишаются возможности выдачи любых команд базы данных до тех пор, пока она не будет разморожена.
Всем активным сеансам разрешается выполнять накопление данных.
Все новые попытки регистрации будут поставлены в очередь. Пользователь, пытающийся зарегистрироваться, пока база данных заморожена, не будет получать сообщение об ошибке. Вместо этого его попытка регистрации будет выглядеть зависшей.
В базе данных будет разрешено выполнение запросов, транзакций и операторов PL/SQL только администратора БД. Точнее говоря, запросы и операторы, выданные всеми пользователями из группы потребителей Oracle Resource Manager SYS_GROUP.
Чтобы перевести базу данных в замороженное состояние, необходимо воспользоваться следующей командой ALTER SYSTEM, выданной от имени пользователя SYS или SYSTEM:
SQL> ALTER SYSTEM QUIESCE RESTRICTED;
System altered.
SQL>
Позже, после окончания выполнения административных задач, обычным пользователям можно разрешить доступ к базе данных, выполнив следующую команду:
SQL> ALTER SYSTEM UNQUIESCE;
System altered.
SQL>
Как только база данных будет разморожена, все запросы на вход в базу данных, помещенные в очередь, будут разрешены, и все неактивные транзакции снова смогут становиться активными, получив право на выполнение операторов DML.
Приостановка базы данных
Если нужно приостановить все операции ввода-вывода во время выполнения определенной административной задачи, базу данных можно приостановить. Когда база данных приостановлена, все операции считывания и записи в файлах данных и управляющих файлах запрещены. Приостановка активности в базе данных может требоваться, например, когда необходимо выполнить аварийное резервное копирование табличного пространства, либо для выполнения таких специализированных задач, как разделение зеркала, которые нельзя выполнить иным способом.
Приостановку и возобновление работы базы данных можно выполнить следующим образом:
SQL> ALTER SYSTEM SUSPEND;
System altered.
SQL> ALTER SYSTEM RESUME;
System altered.
SQL>
Удаление базы данных Oracle
В прошлом администраторы БД постоянно жаловались на невозможность выдачи простой команды DROP DATABASE для удаления базы данных. Начиная с версии Oracle Database 10g, базу данных можно удалить с помощью простой команды DROP DATABASE. При выдаче этой команды все файлы данных, файлы журналов повторного выполнения и управляющие файлы удаляются автоматически. Однако эта команда не удаляет никакие файлы параметров вроде init.ora и alert.log.
Для выполнения этой операции базу данных нужно запустить в режиме RESTRICT MOUNT, как показано в листинге 10.14.
SQL> CONNECT sys/sys_passwd AS SYSDBA
Connected to an idle instance.
SQL> STARTUP RESTRICT MOUNT
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1236756 bytes
Variable Size 99164396 bytes
Database Buffers 213909504 bytes
Redo Buffers 5169152 bytes
Database mounted.
SQL> SELECT name FROM v$database;
NAME
---------
NINA
SQL> DROP DATABASE;
Database dropped.
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.0.0 -Beta
With the Partitioning, OLAP and Data Mining options
SQL>
Команда STARTUP RESTRICT MOUNT гарантирует невозможность подключения других пользователей к базе данных. Перед использованием команды DROP DATABASE для удаления базы данных тщательно проверьте указываемое имя базы данных.
Do'stlaringiz bilan baham: |