Шаг 121 - Табличные пространства - создание, изменение, удаление

Теории было достаточно, теперь немного практики. Попробуем создавать табличные пространства и поработать с ними руками. Для ясности понимания я приведу основные команды БД, для манипулирования табличными пространствами, а затем мы все это опробуем на практике. Итак, создание табличного пространства. Для создания, удаления и изменения табличных пространств, пользователь должен иметь следующие привилегии - 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 -- (табличное_пространство) --(;)

Заметьте, что при этом сам файл с физического диска не удаляется! Его необходимо удалить средствами операционной системы! Не забывайте об этом. Вот таким образом происходит управление созданием и работой табличного пространства БД и его файлами данных. Далее, мы рассмотрим все это на примере! Запоминайте!


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Летучий Сергей - 20.04.2004