Есть ли необходимость создавать табличное пространство в оракуле

Обязательно ли создавать табличное пространство в оракуле? Я знаю, что по умолчанию это займет табличное пространство пользователей. Какая разница с указанием табличного пространства и без него? Теперь я создал схему без табличного пространства и по умолчанию она находится в пользовательском табличном пространстве, какие шаги нужно предпринять, чтобы переместить мои объекты и данные из значения по умолчанию в одно пользовательское табличное пространство. Пожалуйста, предложите


person Anish Gopinath    schedule 31.01.2017    source источник
comment
У вас есть такие функции, как ALTER TABLE <TABLE NAME to be moved> MOVE TABLESPACE <destination TABLESPACE NAME> для перемещения данных. Управление табличным пространством становится более захватывающим, когда у вас есть тысячи таблиц и терабайт данных.   -  person Wernfried Domscheit    schedule 31.01.2017
comment
@ Wernfried Domscheit: Вау, большое спасибо, это сработало, не могли бы вы предложить, как переместить связанное с ограничением и связанное с индексом табличное пространство   -  person Anish Gopinath    schedule 31.01.2017
comment
Очевидно, что создание дополнительных табличных пространств не является обязательным, судя по тому, что вы уже сделали. Прочитайте о наличии нескольких табличных пространств; и руководство по концепциям табличных пространств.   -  person Alex Poole    schedule 31.01.2017
comment
Для индекса это как Alter index <index-name> rebuild tablespace <new-tablespace>;. Ограничения, триггеры и т. д. просто определены в табличном пространстве SYSTEM, которые вы не можете перемещать.   -  person Wernfried Domscheit    schedule 31.01.2017


Ответы (1)


Вы можете просто переименовать табличное пространство USERS, если вам не нравится его имя.

alter tablespace USERS rename to COOLNAME;

Если вы хотите также переименовать файлы, вам нужно отключить табличное пространство и переименовать их. Чтобы узнать имена, которые вы можете выбрать из dba_data_files или v$datafile

alter tablespace COOLNAME OFFLINE; 

move file at OS level..
host mv /oracle/users01.dbf /oracle/coolname01.dbf
alter database rename file '/oracle/users01.dbf' to '/oracle/coolname01.dbf';

alter tablespace COOLNAME online;

Если вам нужно переместить объекты в другое табличное пространство, вы должны использовать перемещение и перестроение DDL. Вот несколько полезных запросов для создания DDL.

select 'alter table ' || OWNER || '.' || SEGMENT_NAME || ' move tablespace COOLNAME;' from dba_segments where OWNER='YOURUSER' and SEGMENT_TYPE='TABLE' and TABLESPACE_NAME='USERS';

select 'alter index ' || OWNER || '.' || SEGMENT_NAME || ' rebuild tablespace COOLNAME;' from dba_segments where OWNER='YOURUSER' and SEGMENT_TYPE='INDEX' and TABLESPACE_NAME='USERS';
person Dmitry Lukyanov    schedule 31.01.2017