Теории было достаточно, теперь немного практики. Попробуем создавать табличные пространства и поработать с ними руками. Для ясности понимания я приведу основные команды БД, для манипулирования табличными пространствами, а затем мы все это опробуем на практике. Итак, создание табличного пространства. Для создания, удаления и изменения табличных пространств, пользователь должен иметь следующие привилегии - CREATE TABLESPACE, DROP TABLESPACE, ALTER TABLESPACE. Рассмотрим первую из них:
CREATE TABLESPACE -- (табличное_пространство) -- DATAFILE -- (спецификация_файла) - (авторасширение)-* --* -- MINIMUM -> EXTENT - (целое число) - К(килобайт)/М(мегабайт) -- -- LOGGING -- -- NOLGGING -- -- DEFAULT STORAGE - -- ONLINE -- -- OFFLINE -- -- PERMANENT -- -- TEMPORARY -- -- (конструкция_управления_экстентами) -- (;) --* *-- конструкция_максимального_размера -- -- MAXISIZE -- UNLIMITED -------------------------------- -- (целое число) - К(килобайт)/М(мегабайт) -- "конструкция_авторасширения" -- AUTOEXTEND -- OFF -- NEXT -- (целое число) - К(килобайт)/М(мегабайт) -- -- ON ----------------------------------- (конструкция_максимального_размера) "конструкция_управления_экстентами" ------------------ DICTIONARY ----------------------------- ---- AUTOALLOCATE ----------------- -- EXTEND -- MANAGEMENT -- LOCAL ---- UNIFORM -- SIZE -- (целое число) - К(килобайт)/М(мегабайт) --
Рассмотрим основные конструкции. С первого взгляда их здесь много, но это не столь важно, просто я привел полную конструкцию команды из руководства администратора, по этому не пугайтесь все будет понятно. Значок -* и *- в данном случае указывает, что строка продолжается как бы в одну строку. Начнем помаленьку:
- "конструкция_авторасширения" - разрешает или запрещает авто расширение файла данных. ON разрешает и OFF запрещает соответственно.
- "конструкция_максимального_размера" - указывает максимальное дисковое пространство, которое может быть выделено файлу данных. UNLIMITED - снимает ограничения на выделение дискового пространства файлу данных.
- LOGGING/NOLGGING - указывает атрибуты протоколирования, по умолчанию LOGGING.
- DEFAULT STORAGE - определяет для всех объектов создаваемых в табличном пространстве, значения параметров хранения по умолчанию.
- ONLINE/OFFLINE - определяет сразу после создания доступность табличного пространства.
- PERMANENT/TEMPORARY - постоянное или временное пространство для хранения объектов БД, по умолчанию PERMANENT.
- "конструкция_управления_экстентами" - определяет способ управления экстентами табличного пространства.
- DICTIONARY - установка по умолчанию, определяет управление по таблицам словаря данных.
- LOCAL - указывает на локальное управление экстентами.
- AUTOALLOCATE - управляется системой и пользователь не может влиять на размер экстента БД.
- UNIFORM - указывает, что экстенты имеют фиксированный размер в SIZE байт.
Давайте сразу рассмотрим конструкцию изменения табличного пространства, которая почти аналогична конструкции создания за исключением некоторых нюансов:
ALTER TABLESPACE -- (табличное_пространство) -- DATAFILE -- (спецификация_файла) - (авторасширение)-* --* -- MINIMUM -> EXTENT - (целое число) - К(килобайт)/М(мегабайт) -- -- LOGGING -- -- NOLGGING -- -- DEFAULT STORAGE - -- ONLINE -- -- NORMAL -- -- TEMPORARY -- -- IMMEDATE -- -- OFFLINE -- FOR RECOVER -- -- PERMANENT -- -- TEMPORARY -- -- BEGIN -- -- BACKUP -- -- END -- -- READ -- ONLY -- -- WRITE -- -- COALESCE -- -- (конструкция_управления_экстентами) -- (;) --* *-- конструкция_максимального_размера -- -- MAXISIZE -- UNLIMITED -------------------------------- -- (целое число) - К(килобайт)/М(мегабайт) -- "конструкция_авторасширения" -- AUTOEXTEND -- OFF -- NEXT -- (целое число) - К(килобайт)/М(мегобайт) -- -- ON ----------------------------------- (конструкция_максимального_размера) "конструкция_управления_экстентами" -------------- DICTIONARY ------------------------------ ---- AUTOALLOCATE ---------------------- -- EXTEND -- MANAGEMENT -- LOCAL ---- UNIFORM -- SIZE -- (целое число) - К(килобайт)/М(мегабайт) -- "конструкция_файла_данных/временного файла" -- DATAFILE -- -- ADD -- TEMPFILE -- (спецификация_файла) - (авторасширение) --* -- RENAME -- DATAFILE -- * - имя файла *- TO -* имя файла ------*
Что появилось нового? Рассмотрим:
- NORMAL - исключает все блоки файла данных из SGA. По умолчанию.
- TEMPORARY - выполняет контрольную точку для всех оперативных файлов данных табличного пространства.
- IMMEDATE - немедленно без выполнения контрольной точки для файла данных.
- OFFLINE - FOR RECOVER - переводит в автономный режим для выполнения восстановления с привязкой по времени.
- BEGIN - BACKUP - запускает процесс открытого резервного копирования.
- END - останавливает процесс открытого резервного копирования. Доступ к табличному пространству при этом не запрещается.
- COALESCE - (!) Для каждого файла данных, в табличном пространстве, объединяет все непрерывные свободные экстенты в один непрерывный экстент большого размера.
- DATAFILE / ADD - TEMPFILE - (спецификация_файла) - (авторасширение) - Добавляет файл данных к табличному пространству, или временный файл.
- RENAME - DATAFILE - * - имя файла *- TO -* имя файла -* - Переименовывает один или несколько файлов данных, перед этим необходимо перевести табличное пространство в автономный режим.
Ну и конечно же удаление табличного пространства производиться командой:
DROP TABLESPACE -- (табличное_пространство) --(;)
Заметьте, что при этом сам файл с физического диска не удаляется! Его необходимо удалить средствами операционной системы! Не забывайте об этом. Вот таким образом происходит управление созданием и работой табличного пространства БД и его файлами данных. Далее, мы рассмотрим все это на примере! Запоминайте!