[英]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.