- •Приложение. Утилита sql*Plus. Создание и выполнение сценариев Назначение sql*Plus
- •Базовые понятия
- •Расширенные формулы Бэкуса-Наура
- •Запуск sql*Plus и выход из него
- •Опции командной строки
- •Регистрационная информация
- •Начальный сценарий
- •Использование профилей сайта и пользователя
- •Выход из sql*Plus
- •Подключение к стандартной и удаленной базе данных
- •Использование команды connect
- •Формат строки связи для удаленной базы данных
- •Основные команды
- •Выполнение команд Буфер sql
- •Выполнение операторов sql
- •Выполнение блоков pl/sql
- •Выполнение команд sql*Plus
- •Прекращение команды по ходу работы
- •Получение информации о времени выполнения команды
- •Выполнение команд базовой операционной системы
- •Получение оперативной справки
- •Команда help
- •Команда describe
- •Редактирование команд
- •Форматирование результатов запросов
- •Стандартный формат столбцов
- •Команда column
- •Команда break
- •Команда compute
- •Команда clear
- •Команды btitle и ttitle
- •Команды repheader и repfooter
- •Копирование данных из одной базы данных в другую
- •Команды для работы с файлами
- •Создание командных файлов
- •Команда save
- •Команда edit
- •Загрузка командных файлов
- •Выполнение командных файлов
- •Передача параметров командных файлов при вызове
- •Сокращенные формы команды start (@, @@)
- •Коды возврата командных файлов
- •Комментарии в командных файлах
- •Запоминание установок среды sql*Plus
- •Запись в файл и печать результатов выполнения запросов
- •Параметры командных файлов
- •Команды define и undfefine
- •Использование подставляемых переменных
- •Подстановка без повторного запроса
- •Подстановка параметров командных файлов
- •Ограничения
- •Системные переменные, влияющие на подстановку
- •Взаимодействие с пользователем
- •Команда prompt
- •Команда accept
- •Команда pause
- •Связываемые переменные
- •Команда variable
- •Команда print
- •Трассировка операторов
- •Настройка среды sql*Plus
- •Команда set
- •Команда show
- •Другие полезные команды
- •Команда execute
- •Команда password
- •Команды администрирования базы данных
- •Запуск базы данных
- •Остановка базы данных
- •Управление архивированием журналов повторного выполнения
- •Восстановление базы данных
- •Дополнительные источники информации
Остановка базы данных
Команда SHUTDOWN в SQL*Plus останавливает текущий экземпляр Oracle, к которому подключен пользователь, и может при этом закрыть и демонтировать базу данных. Эту команду можно применять только для серверов версии 8 и выше.
Команда SHUTDOWN имеет следующий синтаксис:
<команда SHUTDOWN> ::=
SHUTDOWN <режим остановки> <режим остановки> ::=
ABORT | IMMEDIATE | NORMAL | TRANSACTIONAL [LOCAL]
Назначение опций команды SHUTDOWN описано в табл. 18:
Таблица 18. Опции команды SHUTDOWN.
Опция |
Назначение |
ABORT |
Выполняет немедленную остановку базы данных, не дожидаясь завершения транзакций и отключения пользователей. Эта опция используется при аварийном завершении одного из фоновых процессов или при невозможности нормальной остановки. При перезапуске потребуется восстановление. |
IMMEDIATE |
Не ждет завершения транзакций (автоматически их откатывает) и отключения пользователей. Новые подключения запрещаются. База данных закрывается и демонтируется, затем останавливается экземпляр. При перезапуске восстановление не потребуется. |
NORMAL |
Ждет отключения всех пользователей от базы данных (новые подключения запрещены). База данных закрывается и демонтируется, затем останавливается экземпляр. При перезапуске восстановление не потребуется. Эта опция используется по умолчанию. |
TRANSACTIONAL [LOCAL] |
Ждет завершения активных транзакций. При попытке начать новую транзакцию происходит отключение сеанса. После завершения всех активных транзакций все сеансы автоматически отключаются. Затем остановка идет как при вводе опции IMMEDIATE. Режим LOCAL задает такой режим остановки только для локальных транзакций. Сервер не ждет завершения удаленных транзакций. |
Эту команду может выполнять только пользователь, подключившийся как SYSOPER или SYSDBA к выделенному серверному процессу. По умолчанию используется опция NORMAL.
Управление архивированием журналов повторного выполнения
Каждая база данных Oracle имеет набор из двух или более файлов журнала повторного выполнения, который обобщенно называют просто журналом повторного выполнения. В этот журнал записываются изменения данных, которые используются при восстановлении базы данных после сбоев. Для защиты от сбоя самого журнала сервер Oracle поддерживает его мультиплексирование (поддержку нескольких копий на разных дисках в виде группы) и архивирование.
Если база данных работает в режиме ARCHIVELOG, выполняется архивирование оперативного логического журнала, что обеспечивает полное восстановление при сбое как экземпляра, так и диска с журналами повторного выполнения, поскольку все изменения данных сохраняются в отдельном, заархивированном журнальном файле.
Для управления режимом архивирования журналов повторного выполнения утилита SQL*Plus предлагает команду ARCHIVE LOG, которая имеет следующий синтаксис:
<команда ARCHIVE LOG > ::=
ARCHIVE LOG <команда или журнал> [TO <место назначения>]
<команда или журнал> ::=
LIST | STOP | START | NEXT | ALL | <номер журнала>
Эта команда позволяет начать или остановить автоматическое архивирование оперативных файлов журнала повторного выполнения, явно заархивировать указанные по номерам файлы или выдать информацию о них. Опции команды ARCHIVE LOG описаны в табл. 19.
Таблица 19. Опции команды ARCHIVE LOG.
Опция |
Назначение |
LIST |
Выдает информацию о режиме архивирования, каталоге, в котором создаются файлы архива, номерах текущей, последней заархивированной и требующей архивирования группы журналов. Вид выдаваемой информации представлен в примере ниже. |
STOP |
Останавливает автоматическое архивирование. Если экземпляр по- прежнему работает в режиме ARCHIVELOG и все группы журналов повторного выполнения заполнены, работа базы данных приостанавливается, пока файл журнала повторного выполнения не будет заархивирован (например, командами ARCHIVE LOG NEXT или ARCHIVE LOG ALL). |
START |
Включает автоматическое архивирование. Запускает фоновый процесс ARCH, выполняющий автоматическое архивирование при необходимости. Если запускается процесс ARCH и в команде указано имя файла, этот файл становится новым стандартным местом назначения для архива. Процесс ARCH запускается автоматически при запуске экземпляра, если параметр инициализации LOG_ARCHIVE_START имеет значение TRUE. |
NEXT |
Явно архивирует следующую заполненную, но еще не заархивированную оперативную группу файлов журнала повторного выполнения. |
ALL |
Явно архивирует все заполненные, но еще не заархивированные оперативные группы файлов журнала повторного выполнения. |
номер журнала |
Вызывает архивирование любой еще доступной оперативной группы файлов журнала повторного выполнения с указанным номером последовательности. Если такая группа не найдена, выдается сообщение об ошибке. Эта опция позволяет повторно выполнить архивирование группы. |
Если место назначения для архива не указано явно в командной строке, используется параметр инициализации LOG_ARCHIVE_DEST (стандартное место назначения). Если новое место назначения указано с опцией START, оно становится стандартным. В остальных случаях туда записываются только соответствующие архивы, инициированные данной командой.
Команду ARCHIVE LOG может выполнять только пользователь, подключившийся как SYSOPER или SYSDBA. Она применяется только к текущему экземпляру. Для управления другими экземплярами и кластером в целом используется SQL-оператор ALTER SYSTEM.
Если все оперативные группы файлов журнала повторного выполнения заполнены и не доступны для повторного использования (т.е. сервер работает в режиме ARCHIVELOG, и они не скопированы) работа базы данных приостанавливается. Явное архивирование решает эту проблему.
Рассмотрим простой пример использования команды ARCHIVE LOG для просмотра информации о текущем состоянии архивирования журналов повторного выполнения:
SQL> archive log list
Режим журнала базы данных Режим архива
Автоматическое архивирование Включено
Место размещения архива g:\oracle\oradata\training
Самая старая последовательность оперативных журналов 745
Следующая последовательность журналов для архивирования 747
Текущая последовательность журналов 747
SQL> archive log 745
ORA-16013: журнал 1 с номером последовательности 745 не требует
архивирования
ORA-00312: оперативный протокол 1 процесса 1:
'G:\ORACLE\ORADATA\TRAINING\REDO01.LOG'