Oracle資料庫設定預設表空間
在10G中,DBA有辦法避免這種問題了——線上指定系統預設表空間:
ALTER DATABASE DEFAULT TABLESPACE ;
透過執行以上命令,可以設定系統的預設表空間。這樣的話,在建立新使用者時,如果不指定他的預設表空間,就會採用上面指定的系統預設表空間作為這個用的預設表空間。
SQL>conn /as sysdba
SQL> create user test1 identified by test1 default tablespace ringidx;
使用者已建立。
SQL> alter database default tablespace ring;
資料庫已更改。
SQL> create user test identified by test;
使用者已建立。
SQL> select username, default_tablespace defspace from dba_users where username=’TEST’;
USERNAME DEFSPACE
————– —————-
TEST RING
但是要注意的是,一旦將系統預設表空間修改了以後,原有的所有普通使用者的預設表空間都會被指定為這個表空間,如上例中test1,建立時指定了他的預設表空間為ringidx,執行了’alter database default tablespace ring’後,他的預設表空間也被改為了ring。
SQL> select username, default_tablespace defspace from dba_users where username=’TEST1′;
USERNAME DEFSPACE
————– —————-
TEST1 RING
為非核心的系統使用者指定一個特殊的預設表空間
在建立Oracle例項時,除了建立瞭如sys、system等系統核心的使用者外,還會建立一些諸如dbsnmp、odm、perfstat等非核心的使用者。這些使用者在9i中都是以system作為他們的預設表空間。這些使用者一旦被使用,也會產生較大的資料量佔用system表空間。
在Oracle10G當中,使用了一個新的表空間SYSAUX作為這些使用者的預設表空間。這個表空間在例項建立是就建立了,除了他的資料檔名可以被修改外,其他都不允許被修改。
Oracle的這一改變可以使當system表空間損壞時對資料庫做全庫恢復。在sysaux中的物件可以恢復成普通物件,而資料庫能保持正常執行。
如果DBA想要將sysaux表空間中的使用者轉移到其他表空間去該如何做呢。在10G中,專門為此提供一個檢視V$SYSAUX_OCCUPANTS來描述如何轉移這些使用者的表空間。
select * from V$SYSAUX_OCCUPANTS where OCCUPANT_NAME = ‘ODM’
OCCUPANT_NAME OCCUPANT_DESC SCHEMA_NAME MOVE_PROCEDURE MOVE_PROCEDURE_DESC SPACE_USAGE_KBYTES
————- ————- ———– ————– ——————- ——————
ODM Oracle Data Mining DMSYS MOVE_ODM Move Procedure for Oracle Data Mining 5568
1 rows selected
如上,如果要將改變ODM的表空間,可以使用儲存過程MOVE_ODM,當前它佔用了5568kb的表空間。
為表空間改名
這Oracle10G表空間增強中一個令人心動的改變。
這項功能允許改變資料庫中除system和sysaux外任意一個表空間的名字。
ALTER TABLESPACE RENAME TO ;
有了這項功能,將會讓很多事情變得非常簡單。
有DBA可能會擔心,一旦一個表空間的名字改變了,而且它已經被使用了很長時間了,會不會引起系統的混亂?這個不用擔心,執行了上面的語句後,Oracle會將系統中所有相關的資料字典的內容全部更新:
SQL> alter tablespace ring rename to ring1;
表空間已更改。
SQL> select username, default_tablespace defspace from dba_users where username=’TEST’;
USERNAME DEFSPACE
————– —————-
TEST RING1
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/751371/viewspace-709532/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle修改預設表空間和預設臨時表空間Oracle
- oracle資料泵方式更換資料預設表空間.Oracle
- 【SQL】查詢及修改資料庫預設表空間SQL資料庫
- 臨時表空間的建立、刪除,設定預設臨時表空間
- ORACLE預設的臨時表空間Oracle
- 【TABLESPACE】Oracle資料庫預設永久表空間的查詢及刪除方法Oracle資料庫
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- oracle清除資料庫表空間Oracle資料庫
- 更改當前資料庫預設臨時表空間注意事項資料庫
- 設定EXCLUDE後STANDBY資料庫只讀表空間的恢復資料庫
- 表空間管理之bigfile表空間設定
- 更改資料庫預設臨時表空間出現的小問題資料庫
- Oracle使用者預設表空間的問題Oracle
- oracle資料庫設定Oracle資料庫
- Oracle表空間設計理念Oracle
- PostgreSQL:表空間-->資料庫-->表SQL資料庫
- 檢視Oracle資料庫表空間大小,是否需要增加表空間的資料檔案Oracle資料庫
- 誤刪oracle資料庫表空間檔案Oracle資料庫
- Oracle 11g 資料庫恢復:場景9-系統預設undo表空間資料檔案損壞Oracle資料庫
- 表空間設定考慮事項
- Oracle資料庫表空間的資料檔案大小上限。Oracle資料庫
- oracle 11g線上收回臨預設臨時表空間Oracle
- oracle的空間資料庫:Oracle資料庫
- 清理oracle資料庫空間Oracle資料庫
- 【Oracle】rman 恢復只讀表空間資料庫Oracle資料庫
- 多臺ORACLE資料庫表空間監控方案Oracle資料庫
- 怎樣移動Oracle資料庫的表空間Oracle資料庫
- 2.5.9.2 重寫預設表空間型別型別
- 2.5.9.1 指定預設表空間的型別型別
- 檢視資料庫表空間資料庫
- 刪除資料庫表空間資料庫
- 如何檢視Oracle資料庫表空間大小(空閒、已使用),是否要增加表空間的資料檔案...Oracle資料庫
- Oracle資料庫-建庫、建表空間,建使用者Oracle資料庫
- Oracle案例11——Oracle表空間資料庫檔案收縮Oracle資料庫
- oracle10g建立statspack設定表空間太小出錯。Oracle
- oracle資料庫snap的設定Oracle資料庫
- oracle 資料庫設定表和欄位的別名Oracle資料庫
- Oracle 11g 資料庫恢復-場景8:系統預設undo表空間資料檔案損壞,CLOSE狀態Oracle資料庫