Титульная страница Программа Учебное пособие Лабораторный практикум Дополнительно
    Лабораторная работа №1
  Лабораторная работа №2
  Лабораторная работа №3
  Лабораторная работа №4
  Лабораторная работа №5
  Лабораторная работа №6
  Лабораторная работа №7
  Лабораторная работа №8
     
  Презентации

Лабораторные работы -> Лабораторная работа №7

 

Лабораторная работа №7. Администрирование информационных систем СУБД Oracle

 

1.     Цель работы:

-      Изучить файлы параметров инициализации. Ознакомится со структурой экземпляра БД Oracle.

-      Изучить все этапы запуска и остановки экземпляра БД Oracle. Посмотреть какие из возможностей работы с БД доступны в каждом из режимов запуска экземпляра БД.

-      Ознакомиться с основными вариантами использования утилит импорта и экспорта данных БД Oracle.

-      Научиться создавать новых пользователей.

 

2.     Методические указания

Лабораторная работа направлена на изучение структуры, этапов запуска и остановки экземпляра БД Oracle, а так же утилит импорта и экспорта данных БД.

Требования к результатам выполнения лабораторного практикума:

  1. при выполнении задания необходимо сопровождать все проделанные действия скриншотами и описаниями к ним

  2. также необходимо придерживаться строгой последовательности действий, при выполнении заданий

  3. сделать небольшие выводы по каждой части лабораторной работы

  4. особо обратить внимание:

-       на то, какие возможности работы с БД доступны в каждом режиме запуска экземпляра БД

-       на разницу между различными вариантами остановки БД

  1. продемонстрировать использование утилит импорта и экспорта данных

При составлении и оформлении отчета следует придерживаться рекомендаций, представленных на странице 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.