簡體   English   中英

是否需要在oracle中創建表空間

[英]Is there a need to create a tablespace in oracle

在oracle中創建表空間是強制性的嗎? 我確實知道默認情況下它將占用用戶表空間。 通過指定一個沒有表空間的表空間有什么區別? 現在我已經創建了一個沒有表空間的模式,並建議將其放在用戶表空間中,將對象和數據從默認表移動到一個自定義表空間需要采取哪些步驟。

如果不喜歡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;

如果需要將對象移動到另一個表空間,則應使用move和rebuild 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';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM