Удаление табличных пространств и файлов данных
Удалять можно любое табличное пространство, за исключением SYSTEM. После этого данные табличного пространства восстановить нельзя. Поэтому перед удалением необходимо убедиться,
что все данные, содержащиеся в удаляемом табличном пространстве, действительно не нужны и не понадобятся в будущем. Кроме того, непосредственно перед и после удаления табличного
пространства из базы данных рекомендуется сделать ее полную копию, чтобы можно было восстановить БД в случае какой-либо ошибки, или на тот случай, если в будущем возникнут проблемы, связанные с отсутствием удаленного табличного пространства.
При удалении табличного пространства уничтожаются лишь указатели на него в контрольных файлах ассоциированной базы данных. Файлы данных, составлявшие удаленное табличное
пространство, продолжают существовать. Чтобы освободить память на диске, необходимо удалить эти файлы с помощью подходящих команд операционной системы. Если удалять табличное пространство с помощью Enterprise Manager, при удалении появится окно с опцией, выбрав которую, удалятся файлы данных, ассоциированные с табличным
удаляемым пространством .
Нельзя удалить табличное пространство, содержащее активные сегменты. Например, если в данный момент используется одна из его таблиц, или если это табличное пространство содержит
активный сегмент отката. Поэтому, прежде чем удалять табличное пространство, его необходимо перевести в неактивное состояние.
Для удаления табличного пространства используется команда
SQL DROP TABLESPACE.
Если табличное пространство пусто (т.е. не содержит таблиц, представлений или иных структур), то в команду удаления не обязательно включать опцию уничтожения имеющихся в нем
объектов INCLUDING CONTENTS. Если же табличное пространство содержит таблицы с первичными или уникальными ключами, на которые ссылаются внешние ключи таблиц из других табличных пространств, то необходимо указать каскадное удаление ограничений CASCADE CONSTRAINTS.
Например, следующее предложение удаляет табличное пространство NewTSpace (предполагая, что на него ссылаются внешние ключи таблиц из других табличных пространств):
DROP TABLESPACE NewTSpace CASCADE CONSTRAINTS;
To есть опция CASCADE CONSTRAINTS используется, чтобы вызвать каскадное удаление ограничений целостности FOREIGN KEY для порожденных таблиц.
Для удаления табличного пространства пользователь должен иметь системную привилегию DROP TABLESPACE.
Рассмотрим, какие представления словаря данных предоставляют полезную информацию о табличных пространствах и файлах данных базы данных. Это:
■ USER_EXTENTS, DBA_EXTENTS;
■ USER_SEGMENTS, DBA_SEGMENTS ;
■ USER_FREE__SPACE, DBA_FREE_SPACE;
■ DBA_USERS;
■ DBA_TS_QUOTAS;
■ USERJTABLESPACES, DBA_TABLESPACES;
■ DBA_DATA_FILES;
■ V$DATAFILE.
Следующие примеры показывают, как использовать некоторые из этих представлений. Предполагается, что база данных содержит табличные пространства NewTSpace, SYSTEM и USERS (в отличие от табличных пространств SYSTEM и USERS, табличное пространство NewTSpace было создано на предыдущих этапах и не является обязательным для базы данных, поэтому не выделяем его другим шрифтом для удобства описания). Табличное пространство NewTSpace состоит из двух файлов, FILE1 E0МВ) и FILE2 A00МВ). Это табличное пространство было нормально
переведено в неактивное состояние.
Do'stlaringiz bilan baham: |