
- •Лабораторная работа №4 «управление структурой базы данных. Управление сегментами отката»
- •Структуры хранения данных
- •Понимание табличных пространств и файлов данных
- •Модель хранения данных Oracle
- •Табличные пространства
- •Файл данных
- •Сегменты
- •Экстенты
- •Блоки данных
- •Создание табличного пространства
- •Создание табличного пространства bigfile и smallefile
- •Работа с табличными пространствами, управляемыми Oracle
- •Выбор управления экстентами
- •Выбор управления пространством сегментов
- •Создание временного табличного пространства
- •Создание табличного пространства undo
- •Удаление табличного пространства
- •Изменение табличных пространств
- •Добавление файла данных в табличное пространство
- •Перевод табличного пространства в режим online/offline
- •Перевод табличного пространства в режим «Только для чтения»
- •Ход работы Работа с перманентными табличными пространствами
- •Работа с временными табличными пространствами
- •Работа с табличными пространствами отката
- •Содержание отчета
- •Цель работы.
- •При использовании утилиты Oracle Enterprise Manager в отчете следует привести автоматически генерируемые sqLкоманды (используйте кнопку “show sql”);
Создание табличного пространства undo
Табличное пространство UNDO служит для хранения сегментов отката, которые используются базой данных в ряде случаев:
Явный откат транзакции с предложением ROLLBACK;
Неявный откат транзакции (например, в случае неудачной транзакции);
Восстановление после логических сбоев.
Для создания табличного пространства установите значение параметра инициализации UNDO_MANAGEMENT=AUTO и включите предложение UNDO TABLESPACE в конструкцию CREATE DATABASE.
Вы можете создать табличное пространство UNDO и после создания базы данных, выполнив предложение CREATE UNDO TABLESPACE:
CREATE UNDO TABLESPACE undo DATAFILE '\db_1\oradata\UNDO01.DBF' SIZE 2G;
Удаление табличного пространства
Для удаления табличного пространства из базы данных используется предложение DROP TABLESPACE. Опционально используется INCLUDING CONTENTS, позволяющая рекурсивно удалить любые сегменты (таблицы, индексы и т.д.) в табличном пространстве. Например, как показано ниже:
DROP TABLESPACE TEST_TS INCLUDING CONTENTS;
Удаление табличного пространства автоматически не удаляет файлы данных из системы. Для удаления используется дополнительное предложение INCLUDING CONTENTS AND DATAFILES, которое удаляет подчиненные файлы данных. Например:
DROP TABLESPACE TEST_TS INCLUDING CONTENTS AND DATAFILES;
Изменение табличных пространств
Для изменения атрибутов табличного пространства используется предложение ALTER TABLESPACE. Некоторые действия, которые вы можете выполнить: переименование, добавление файлов данных в маленьких табличных пространствах, перевод табличного пространства в активное и неактивное состояние, перевод табличного пространства в режим «только для чтения» или «чтение/запись».
Для переименования табличного пространства используется предложение:
ALTER TABLESPACE NAME_TS RENAME TO NEW_NAME_TS;
Далее рассмотрим дополнительные возможности по изменению табличных пространств.
Добавление файла данных в табличное пространство
Маленькие табличные пространства могут иметь несколько файлов данных, которые могут быть разнесены по нескольким файловым системам. Для добавления файла данных используется предложение ADD в ALTER TABLESPACE. Например, создадим табличное пространство TEST_TS и затем добавим в него файл данных размером 2GB:
CREATE TABLESPACE TEST_TS DATAFILE '\db_1\oradata\TEST_TS_01.DBF' SIZE 2G;
ALTER TABLESPACE TEST_TS ADD DATAFILE '\db_1\oradata\TEST_TS_02.dbf' SIZE 2G;
Перевод табличного пространства в режим online/offline
Иногда бывает ситуация, когда табличное пространство надо перевести в неактивный (offline) режим, для проведения операций по обслуживанию, например восстановление табличного пространства или перемещение файлов данных в другое место. Для этого используется предложение OFFLINE в конструкции ALTER TABLESPACE. Ниже приведен пример, перевода табличного пространства в неактивный режим и перенос в новое место:
Переводим табличное пространство TEST_TS в неактивный режим:
ALTER TABLESPACE TEST_TS OFFLINE;
Сообщаем базе данных об изменении расположения файла данных:
ALTER TABLESPACE TEST_TS RENAME DATAFILE '\db_1\oradata\TEST_TS_01.DBF' TO '\db_1\oradata\TEST_TS_01.DBF';
Переводим табличное пространство TEST_TS в активный (online) режим:
ALTER TABLESPACE TEST_TS ONLINE;