1.
Цель работы:
-
Изучить файлы параметров инициализации. Ознакомится со структурой экземпляра БД
Oracle.
-
Изучить все этапы запуска и остановки экземпляра БД
Oracle. Посмотреть
какие из возможностей работы с БД доступны в каждом из режимов запуска
экземпляра БД.
-
Ознакомиться с основными вариантами использования утилит импорта и экспорта
данных БД
Oracle.
-
Научиться создавать новых пользователей.
2.
Методические
указания
Лабораторная
работа направлена на изучение
структуры, этапов запуска и остановки экземпляра БД
Oracle, а так же
утилит импорта и экспорта данных БД.
Требования
к результатам выполнения лабораторного практикума:
-
при выполнении задания необходимо сопровождать все проделанные действия
скриншотами и описаниями к ним
-
также необходимо придерживаться строгой последовательности действий, при
выполнении заданий
-
сделать небольшие выводы по каждой части лабораторной работы
-
особо обратить внимание:
-
на то, какие возможности работы с БД доступны в каждом режиме запуска экземпляра
БД
-
на разницу между различными вариантами остановки БД
-
продемонстрировать
использование утилит импорта и экспорта данных
При составлении и оформлении отчета следует придерживаться рекомендаций,
представленных на странице
http://unesco.kemsu.ru/student/rule/rule.html.
3.
Теоретический
материал
Средства
администрирования
SVRMGRL
-
Предоставляет
возможность управлять базой данных и изменять в ней информацию
-
Запуск и остановка
базы данных, создание и выполнение запросов, вставка записей, изменение данных,
подготовка отформатированных отчетов
-
Поддержка
подмножества стандартного языка
SQL
и некоторые дополнения
-
Подсоединение:
1.
Проверить ORACLE_SID (#echo $ORACLE_SID)
2.
Задать ORACLE_SID ( #export ORACLE_SID=testN , N=1..10)
3.
#svrmgrl
SVRMGRL> connect internal
Файлы параметров
инициализации
Рисунок 1. Файлы
параметров инициализации
Чтобы запустить экземпляр, сервер
Oracle
должен прочитать файл параметров инициализации. Записи файла параметров
характеризуют соответствующий экземпляр. Существует два вида параметров:
-
явные; определены в
файле;
-
неявные; не
установлены в файле, но им присваиваются значения по умолчанию.
Чтобы оптимизировать производительность в различных ситуациях, несколько файлов
может использоваться для одной базы данных. Результат внесения изменений в
запись файла зависит от типа файла параметров инициализации:
-
файл статических
параметров, pfile ;
-
файл постоянных
параметров, spfile .
При старте сервер
Oracle
читает файл параметров. Существует два типа файлов
параметров инициализации:
-
файл статических
параметров, PFILE, на который обычно ссылаются по имени initSID.ora;
-
файл постоянных
параметров, SPFILE, на который обычно ссылаются по имени spfileSID.ora .
Содержимое файла параметров
-
Перечень параметров
экземпляра.
-
Имя базы данных, с
которую обслуживает экземпляр.
-
Распределение памяти
для структур системной глобальной области (SGA).
-
Действия над
заполненными оперативными журнальными файлами.
-
Имена и расположение
управляющих файлов.
-
Информация о
сегментах отката.
PFILE initSID.ora
pfile - это текстовый файл, который
можно изменять с помощью
доступного
в операционной системе редактора. Изменения вносятся в файл вручную. Изменения
вступают в силу при следующем запуске экземпляра. Файл читается только в момент
запуска экземпляра и по умолчанию он расположен в каталоге $ORACLE_HOME/dbs.
Также можно самостоятельно создать файл параметров инициализации. Для этого
можно воспользоваться примером файла инициализации $ORACLE_HOME/dbs/init.ora , который
создается при инсталляции программного обеспечения сервера
Oracle:
#ср init.ora $ORACLE_HOME/dbs/initSID.ora
Дальше
можно редактировать полученный файл
initSID.ora, где
SID - имя вашего
экземпляра (соответствует переменной окружения
ORACLE_SID).
Пример
PFILE
Рисунок 2. Пример
PFILE
Правила определения параметров
-
Значения указываются
в следующем формате: ключевое_слово=значение.
-
Все параметры
необязательные.
-
Для каждого параметра
установлено значение по умолчанию, которое может зависеть от операционной
системы.
-
Параметры могут быть
указаны в любом порядке.
-
Строки комментария
начинаются с символа «#».
-
Для использования в
качестве значения параметра символьных констант используются двойные кавычки.
-
Включение
дополнительных файлов осуществляется при помощи ключевого слова IFILE.
-
Если операционная
система различает строчные и прописные символы, то это распространяется и на
имена файлов.
-
Множественные
значения заключаются в скобки и отделяются запятыми.
Запуск
базы данных
Во время запуска базы данных необходимо выбирать режим запуска. Следующие
сценарии описывают различные этапы запуска экземпляра.
Поведение команды
startup
Порядок
поиска файлов:
-
При запуске
экземпляра командой STARTUP сначала на сервере ищется файл
$ORACLE_HOME/dbs/initSID.ora.
-
Если в команде явно
указать PFILE, то будет взят именно этот файл параметров.
Запуск базы данных в режиме «nomount»
Рисунок 3. Запуск базы
данных в режиме «nomount»
Обычно запуск экземпляра без
монтирования базы данных вьшолняется только при ее создании или при
необходимости пересоздания управляющих файлов. Запуск экземпляра подразумевает
выполнение следующих задач:
-
чтение файлов
параметров из директории $ORACLE_HOME/dbsl
-
задание параметра
PFILE в команде STARTUP, которое переопределяет установленный по умолчанию
порядок чтения файлов параметров;
-
выделение SGA;
-
запуск фоновых
процессов;
-
открытие сигнального
файла alertSID. log и файлов трассировки.
Имя базы данных должно быть
указано либо в параметре
DB_NAME файла
параметров, либо в команде
STARTUP.
Запуск базы данных в режиме «mount»
Рисунок 4. Запуск базы
данных в режиме «mount»
Запуск экземпляра и монтирование базы данных без ее открытия выполняется в целях
осуществления особых эксплуатационных операций.
Например,
база данных должна быть смонтирована, но не открыта, при выполнении следующих
задач:
-
переименование файлов
данных;
-
включение и
отключение режима архивирования журнальных файлов;
-
полное восстановление
базы данных.
-
Монтирование базы
данных включает следующие задачи:
-
ассоциация базы
данных с предварительно запущенным экземпляром;
-
определение
местоположения управляющих файлов, которые указаны в файле параметров;
-
чтение управляющих
файлов с целью получения имен и статуса файлов данных и журнальных файлов.
Запуск базы данных в режиме «open»
Рисунок 5. Запуск базы
данных в режиме «open»
Нормальное функционирование базы данных подразумевает то, что она
открыта и
запущен экземпляр, что предоставляет любому зарегистрированному пользователю
возможность установить соединение с базой данных и выполнять стандартные
операции. Открытие базы данных подразумевает выполнение следующих задач:
-
открытие оперативных
файлов данных;
-
открытие оперативных
файлов журнала.
Если какие-либо из файлов данных или журнальных файлов недоступны в момент
открытия базы данных,
Oracle
возвращает ошибку. Во время
этого окончательного этапа открытия
базы данных
Oracle проверяет
доступность всех файлов данных и журнальных файлов, и проверяет целостность базы
данных. При необходимости, фоновый процесс системный монитор (SMON) запускает
восстановление экземпляра.
Команда запуска
startup
Запуск
экземпляра выполняет следующая команда:
STARTUP [FORCE] [RESTRICT] [РF1LЕ=имя_файла] [OPEN]
[RECOVER] [база_данных] [MOUNT | NOMOUNT]
где:
-
OPEN-предоставляет
пользователям доступ к базе данных
-
MOUNT-монтирует базу
данных для определенных нужд DBA, но не предоставляет пользователям доступа к
базе данных
-
NOMOUNT-создает SGA и
запускает фоновые процессы, но не предоставляет доступа к базе данных
-
PFILE=(фай_пар)
разрешает использование файла параметров, отличного от выбираемого по умолчанию
-
FORCE-удаляет
запущенный экземпляр до того, как выполнен нормальный запуск
-
RESTRICT-предоставляет доступ к базе данных только тем пользователям, которые
имеют привилегию RESTRICTED SESSION
-
REСOVER-выполняет
восстановление носителя при запуске базы данных
Команда
ALTER DATABASE
Для перевода базы данных из режима
STARTUP
NOMOUNT
в
MOUNT,
или из
MOUNT
в режим
OPEN,
используется команда
ALTER
DATABASE
:
ALTER
DATABASE {
MOUNT
|
OPEN
}
Чтобы защитить информацию от изменений, база данных может быть открыта в режиме
'только для чтения'. Для открытия базы данных используйте следующую команду:
ALTER
DATABASE
OPEN
[READ
WRITE
|
READ
ONLY]
где:
-
READ
WRITE-открывает
базу данных в режиме 'чтение-запись' и разрешает запись в журнальные файлы
-
READ
ONLY-ограничивает
пользователей, позволяя выполнять лишь транзакции 'только чтение', и защищает от
записи в журнальные файлы
Перевод базы данных из режима
NOMOUNT
в
MOUNT
:
svrmgrl>ALTER
DATABASE db_name MOUNT;
Открытие базы данных в режиме 'только для чтения':
svrmgrl>
ALTER DATABASE db_nmae OPEN READ ONLY;
Остановка базы данных
База данных останавливается для резервного копирования всех физических структур
и для корректировки параметров инициализации. Для остановки экземпляра
необходимо установить соединение с привилегиями
SYSOPER или
SYSDBA
и использовать следующую команду:
SHUTDOWN
[NORMAL | TRANSACTIONAL |
IMMEDIATE | ABORT]
Рисунок 6. Описание
режимов остановки БД
Параметры
команды
shutdown
Рисунок 7. Описание
режимов остановки БД
Нормальная остановка
Нормальный режим остановки базы данных используется по умолчанию. Нормальная
остановка базы данных происходит следующим образом:
-
Новые соединения не
разрешаются.
-
Сервер Oracle ожидает
отсоединения всех пользователей и только после этого продолжает остановку базы
данных.
-
Измененные блоки кэша
буферов (dirty buffers) и блоки журнального кэша (redo buffers) записываются на
диск.
-
Фоновые процессы
завершаются и SGA удаляется из памяти.
-
Перед остановкой
экземпляра Oracle закрывает и демонтирует базу данных.
-
При следующем запуске
не потребуется восстановления экземпляра.
Транзакционная остановка
Транзакционная остановка обеспечивает сохранность данных клиентов. Остановка
базы данных происходит следующим образом:
-
Ни один клиент не
может запустить новую транзакцию в этом экземпляре.
-
Клиент принудительно
отсоединяется, как только завершается текущая транзакция.
-
Как только все
транзакции завершены, немедленно выполняется остановка.
-
При следующем запуске
не потребуется восстановления экземпляра.
Немедленная остановка
Немедленная остановка базы данных выполняется следующим образом:
-
Обработка команд SQL,
выполняемых Oracle в данный момент, не завершается.
-
Сервер Oracle не
ожидает отсоединения пользователей, работающих с базой данных в текущий момент.
-
Oracle выполняет
откат всех активных транзакций и принудительно отсоединяет всех пользователей.
-
Oracle закрывает и
демонтирует базу данных перед остановкой экземпляра.
-
При следующем запуске
не потребуется восстановления экземпляра.
Аварийная остановка
Если режимы нормальной и немедленной остановки не срабатывают, может быть
выполнена аварийная остановка базы данных. Аварийное завершение работы
экземпляра выполняется следующим образом:
-
Немедленно отменяются
все команды SQL, обрабатываемые сервером Oracle.
-
Сервер Oracle не
ожидает отсоединения пользователей, работающих с базой данных в текущий момент.
-
Буфера из кэша базы
данных и журнала не записываются на диск.
-
Не выполняется откат
незафиксированных транзакций.
-
База данных не
закрывается и не демонтируется
-
Экземпляр удаляется
без закрытия файлов.
-
При следующем запуске
потребуется восстановление экземпляра, которое произойдет автоматически.
Импорт и экспорт
Утилиты импорта (IMP)
и экспорта (ЕХР) можно отнести к старейшим инструментальным средствам
Oracle. Это утилиты
командной строки, используемые для извлечения таблиц, схем или всей базы данных
из одного экземпляра
Oracle
для дальнейшего импортирования в другой экземпляр или схему. Традиционно утилиты
импорта и экспорта принято относить к сфере интересов администратора базы
данных.
Клонирование схем
Утилиты ЕХР и
IMP
можно использовать для клонирования схемы с целью тестирования. С помощью опций
FROMUSER
и
TOUSER
команды
IMP
данные с легкостью переносятся от одного пользователя к другому. Это также
официально поддерживаемый метод "переименования" пользователя: необходимо
экспортировать схему пользователя, импортировать эти данные в схему нового
пользователя и, проверив успешность операции, удалить учетную запись старого
пользователя.
Перенос табличных пространств
Утилиты ЕХР и
IMP
могут использоваться для "переноса" табличного пространства или набора табличных
пространств. Эта возможность позволяет взять сформатированные файлы данных из
одного экземпляра и «подключить» их к другому.
Пересоздание экземпляров
Использование утилит ЕХР и
IMP
—эффективный способ пересоздания экземпляра небольшого размера. Если, например,
необходимо изменить размер блока базы данных, утилиты ЕХР и
IMP оказываются
подходящим средством. Возможно, для экземпляров с большим объемом данных это
неприемлемо из-за большой продолжительности процесса, но для систем с объемом
данных в несколько гигабайт — это вариант.
Копирование данных с одной платформы на другую
Утилиты ЕХР и
IMP
— прекрасное средство копирования данных с одной платформы на другую, даже путем
пересылки их по электронной почте. Если создать файл
DMP на одной
платформе, его можно импортировать на любой другой — данные хранятся в виде, не
зависящем от платформы, хотя файл
DMP
и двоичный.
Есть и другие варианты творческого использования этих утилит, но основные уже
перечислены.
Опции
Параметры для утилит ЕХР и
IMP
задаются в виде пар имя-значение. Используется такой вызов:
exp
parameter_name =
value
или:
exp
parameter_name = (value1,value2,value3...)
Второй метод удобен для выполнения определенных операций, например,
экспортирования на уровне таблиц, а также для экспортирования нескольких таблиц
за раз.
Опции утилит
IMP
и ЕХР можно задавать в файле параметров, чтобы не набирать их постоянно в
командной строке.
Как ЕХР, так и
IMP
поддерживает опцию
HELP
=
Y,
которая выдает на экран краткую информацию об использовании. Она пригодится в
том случае, когда требуется уточнить имя параметра. Если просто ввести в
командной строке ЕХР или
IMP
и нажать клавишу
Enter,
утилиты будут запушены в "интерактивном" режиме и начнут поочередно запрашивать
значения необходимых параметров.
Параметры утилиты ЕХР
Наберите ЕХР с параметром
HELP
=
Y:
#ехр help=y
Таблица 1. Параметры
утилиты
EXP
Имя параметра |
Стандартное значение |
Назначение/Примечания |
BUFFER |
Зависит от ОС |
Этот параметр задает
размер буфера извлечения, используемого утилитой
ЕХР.
Если поделить значение
параметра
BUFFER
на максимальный размер строки в этой таблице, можно
определить, сколько строк за раз будет извлекать из таблицы утилита
ЕХР. Чем больше размер
буфера, тем выше производительность. Я пришел к выводу, что оптимальный
размер буфера - около 100 строк.
Учтите, что некоторые
таблицы, в частности, содержащие столбцы типа
LONG
или большие двоичные объекты, считываются по одной строке, независимо от
размера буфера. Нужно только проверить, достаточен ли размер буфера для
размещения самого большого столбца. |
COMPRESS |
Y |
Этот параметр
не задает сжатие экспортированных данных.
Он управляет генерацией
конструкции
STORAGE
для экспортируемых объектов. Если оставить значение
Y,
конструкция хранения будет задавать для объектов начальный экстент,
размер которого равен суммарному размеру
их текущих экстентов.
Т.е. утилита
ЕХР будет генерировать оператор
CREATE
и с его помощью
попытаться поместить весь объект в одном экстенте.
Рекомендую устанавливать
compress
= N и использовать локально управляемые табличные пространства. |
ROWS |
|
Указывает утилите
EXP.
следует экспортировать ли строки данных таблиц или только структуру. Я
часто использую этот параметр со значением N для экспортирования
структур. |
FILESIZE |
|
Если имеет положительное значение, файл
DMP,
создаваемый утилитой
экспорта, устанавливается в максимальный размер. Используется при
экспорте более двух гигабай1 данных. Подробнее см. в разделе
"Экспортирование больших обьемов данных". |
QUERY |
нет |
Позволяет связывать конструкцию
WHERE
с экспортируемыми таблицами. Конструкция
WHERE
будет применяться к строкам в ходе экспорта на уровне таблиц, при этом
будут экспортироваться только строки, удовлетворяющие конструкции
WHERE.
Это позволяет экспортировать "срез" таблицы. Пример см. в разделе
"Выделение подмножеств данных". |
FULL |
N |
Если имеет значение
Y,
экспортируется вся база данных. При этом выбираются все пользователи,
определения табличных пространств, системные привилегии и остальное
содержимое базы данных. |
OWNER |
нет |
Позволяет задать список схем для экспорта. Используется для
клонирования схемы или "переименования" пользователя. |
TABLES |
нет |
Позволяет задать список экспортируемых таблиц. |
PARFILE |
нет |
Задает имя файла параметров, содержащего пары
parameter
name =
values.
Может использоваться как альтернативный вариант заданию всех параметров
в командной строке. Чаще всего используется для задания длинных списков
экспортируемых таблиц или параметра
QUERY. |
Параметры
утилиты
IMP
Наберите
IMP
с параметром
HELP
=
Y:
#imp
help=y
Таблица 2. Параметры
утилиты
IMP
Имя параметра |
Стандартное значение |
Назначение/Примечания |
SHOW |
N |
Если установлено значение
Y,
утилита импорта покажет свои потенциальные действия, не выполняя
импортирование реально. Если задан параметр
SHOW
=
Y,
объекты не создаются и
данные не добавляются. |
IGNORE |
N |
Если установлено значение
Y,
IMP будет
игнорировать
большинство
ошибок создания объектов. Пригодится, если объекты уже
созданы в базе данных и
IMP
используется только для наполнения таблиц данными. |
INDEXFILE |
нет |
Если этот параметр задан,
IMP
будет сбрасывать все операторы
CREATE
INDEX
и множество других
операторов ЯОД в указанный файл индексов (с комментариями в начальных
строках, начинающихся с
REM).
Другие объекты из файла
DMP
не обрабатываются, создается только файл индексов. |
FROMUSER |
нет |
С помощью этого параметра задают список пользователей,
объекты которых надо импортировать из файла
DMP.
Можно использовать для
восстановления одной схемы из файла экспорта всей базы данных. |
TOUSER |
нет |
Если этот параметр указан, объекты пользователя,
задаваемого параметром
FROMUSER,
импортируются
в пользовательскую схему, имя которой является
значением параметра
TOUSER.
Это позволяет
"клонировать** пользовательскую схему. |
COMMIT |
N |
Указывает, должна ли утилита
IMP
фиксировать изменения после каждой множественной вставки. Количество
вставляемых строк определяется параметром
BUFFER.
Обычно утилита
IMP
выполняет
COMMIT
после полной загрузки таблицы. Поскольку операторы вставки генерируют
минимальный обьем данных отката, при частом фиксировании замедляется
вставка и увеличивается объем информации, записываемой в журналы
повторного выполнения. Кроме того, продолжить работу
IMP
с места сбоя нельзя, поэтому я рекомендую оставлять для параметра
значение N. |
Создание пользователей
Синтаксис
Для создания нового пользователя используется следующая команда:
CREATE USER
имя_пользователя
IDENTIFIED
{BY
пароль |
EXTERNALLY}
[
DEFAULT TABLESРАСЕ
табличное_пространство ] [
TEMPORARY TABLESPACE
табличное_пространство ] [
QUOTA
{integer
[KIM]
I
UNLIMITED
}
ON
табличное_пространство
[
QUOTA
{integer
[К |
M
] |
UNLIMITED
}
ON
табличное_пространство]...]
[
PASSWORD EXPIRE
]
[
ACCOUNT
{
LOCK
I
UNLOCK
}]
[
PROFILE
{ профиль |
DEFAULT
}]
где:
Таблица 3. Параметры
команды
CREATE
USER
имя_пользователя |
Имя создаваемого пользователя |
BY
пароль |
Указывает, что
пользователь аутентифицируется на уровне |
EXTERNALLY
|
Указывает, что
пользователь аутентифицируется на уровне операционной системы |
GLOBALY
AS
|
Указывает, что
аутентификация пользователя производится глобально с помощью внешнего
имени |
DEFAULT/TEMPORARY
TABLESPACE |
Назначает пользователю
табличное пространство по умолчанию или временное табличное пространство |
QUOTA |
Устанавливает
максимальный объем пространства, который объекты, принадлежащие пользователю, могут
занимать в табличном_пространстве. (Квота может быть определена в байтах
{целое),
в килобайтах (К) или в
мегабайтах (М). Чтобы указать, что объекты, принадлежащие пользователю,
могут использовать весь доступный в табличном пространстве объем памяти,
используется ключевое слово
UNLIMITED. По
умолчанию пользователи не имеют квот ни в каком табличном пространстве) |
PASSWORD
EXPIRE |
Устанавливает
истечение срока действия пароля, что
заставляет пользователя
задавать новый пароль при входе в базу данных с помощью
SQL*Plus.
(Этот параметр действителен только для пользователя,
аутентифицированного на уровне этой базы данных) |
ACCOUNT
LOCK/UNLOCK |
Используется для
явного блокирования/разблокирования
входа пользователя в
систему (по умолчанию устанавливается
UNLOCK) |
PROFILE |
Используется для
контроля за использованием ресурсов и указания стратегии сопровождения паролей, который должен
будет применяться для пользователя |
Пример создания нового пользователя
SQL> CREATE USER
Новый_Пользователь
IDENTIFIED BY
Пароль;
Назначения прав Новому_Пользователю
SQL>GRANT CONNECT TO Новый_Пользователь;
SQL>GRANT RESOURCE TO Новый_Пользователь;
4.
Порядок выполнения работы
1.
Запуск и остановка БД
При выполнении настоящего упражнения вам предстоит выполнить несколько операций
запуска и остановки БД в различных режимах.
1.1.
Проверьте переменную окружения
ORACLE_SID
#echo $ORACLE_SID
1.2.
Если
ORACLE_SID
не задан, то задайте
#export ORACLE_SID=testN , N=1..10
1.3.
Подсоединитесь с svrmgrl
#svrmgrl
SVRMGRL>
connect internal
Пароли на пользователя:
·
sys – change_on_install
·
system – manager
·
scott - tiger
1.4.
Запустите БД сначала в режиме
NOMOUNT,
далее переведите БД в режим
MOUNT,
далее в режим
OPEN.
1.5.
Запускайте БД в различных в режимах и с помощью
alter database
переводите в другие режимы, при этом пробуйте подсоединиться к БД с помощью
SQL*PLUS и выполнять любые запросы.
1.6.
Остановите БД в различных режимах.
2.
Экспорт и импорт
2.1.
Выполните экспорт данных из БД: полный экспорт, экспорт пользователя,
набора определенных таблиц и т.д. (попробуйте все опции утилиты
exp)
2.2.
Создайте нового пользователя.
2.3.
Выполните импорт данных из экспортированных данных (в другие таблицы,
новому пользователю)
5.
Содержание
отчета
В отчете следует указать:
-
Цель работы
-
Введение
-
Программно-аппаратные средства, используемые при выполнении работы.
-
Основную часть (описание самой работы), выполненную согласно требованиям к
результатам выполнения лабораторного практикума.
-
Заключение (выводы)
-
Список используемой литературы
6.
Литература:
1. С. В.
Глушаков, Ю. В. Третьяков, О. А. Головаш Администрирование Oracle 9i, 2003 г.
2. Марлен Терьо, Рэчел Кармайкл, Джеймс Вискузи Oracle 9i DBA 101.
Администрирование баз
данных, 2005 г.
3. Том Кайт
Oracle для профессионалов, 2003.