2017-01-31 4 views
0

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

+1

У вас есть такие функции, как 'ALTER TABLE

MOVE TABLESPACE <назначения TABLESPACE NAME>' для перемещения данных. Управление табличными пространствами становится более захватывающим, когда у вас есть тысячи таблиц и TBytes данных. –

+0

@ Wernfried Domscheit: Wow, спасибо тонну, это сработало, можете ли вы предложить, как перемещать связанное ограничение и связанное с таблицами табличное пространство. –

+0

Очевидно, что создание дополнительных табличных пространств необязательно, из того, что вы уже сделали. [Читайте о наличии нескольких табличных пространств] (https://docs.oracle.com/cd/E11882_01/server.112/e25494/tspaces.htm#ADMIN11357); и [руководство по концепциям табличных пространств] (https://docs.oracle.com/cd/E11882_01/server.112/e40540/logical.htm#CNCPT402). –

ответ

2

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

alter tablespace USERS rename to COOLNAME; 

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

файла данных
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'; 
Смежные вопросы