Oracle 默認表空間(default permanent tablespace) 說明


 

一.默認表空間說明

在oracle9i中,如果未用 DEFAULT TABLESPACE 子句創建的所有用戶將以SYSTEM表空間作為它們的默認表空間。同時也不能為數據庫指定一個默認的表空間。

在Oracle 10g中定義了數據庫級別的默認表空間USERS,在創建用戶時沒有定義默認表空間,就會把數據庫級別的默認表空間當作自己的默認表空間。

在10g以前,是把系統表空間(SYSTEMS)當作默認表空間。這樣很不合理。

 

            可以使用如下命令查看默認表空間:


可以使用如下命令修改默認表空間:

ALTER DATABASE DEFAULT TABLESPACE users;

 

這里有幾個注意事項:

1.     如果我們在創建用戶時指定了默認表空間,那么在修改默認表空間后,之前用戶的默認表空間也會發生改變。

2.     如果我們在創建用戶時沒有指定用戶表空間,那么默認也會使用DB的默認表空間,這時候如果我們修改了DB的默認表空間,用戶的表空間也會發生改變。

3.     如果我們在創建用戶指定用戶的表空間是其他的表空間,那么我們修改DB的默認表空間不會影響用戶的表空間。

4.     DB的默認表空間不能刪除,除非將默認表空間指向其他表空間之后才可以刪除。

5.     如果用戶的默認表空間指向其他的表空間,當這個表空間被drop 之后,用戶的默認表空間會自動指向DB的默認表空間。

 

二.示例

2.1查看DB 版本:

SQL> select * from v$version;

 

BANNER

-----------------------------------------------------------------------

Oracle Database 11g Enterprise EditionRelease 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE   11.2.0.1.0      Production

TNS for 32-bit Windows: Version 11.2.0.1.0- Production

NLSRTL Version 11.2.0.1.0 - Production

 

2.2查看當前的默認表空間

SQL> SELECT PROPERTY_VALUE

 2    FROM database_properties

 3   WHERE PROPERTY_NAME ='DEFAULT_PERMANENT_TABLESPACE';

 

PROPERTY_VALUE

-------------------------------------------------------------

USERS

 

2.3 創建用戶,不指定默認表空間

SQL> create user dave1 identified bydave1;

User created.

SQL> select default_tablespace from dba_users where username ='DAVE1';

 

DEFAULT_TABLESPACE

------------------------------

USERS

--默認表空間為users。

 

2.4 創建用戶指定默認表空間為DB的默認表空間

SQL> create user dave2 identified by dave2 default tablespace users;

User created.

 

SQL> select default_tablespace fromdba_users where username ='DAVE2';

DEFAULT_TABLESPACE

------------------------------

USERS

 

 

2.5 創建用戶指定的默認表空間為其他表空間

 --創建表空間:

SQL> create tablespace dave3 datafile'D:\APP\ADMINISTRATOR\ORADATA\NEWCCS\dave3.dbf' size 10M;

Tablespace created.

 

--創建用戶:

SQL> create user dave3 identified by dave3 default tablespace dave3;

User created.

 

SQL> select default_tablespace from dba_users where username ='DAVE3';

DEFAULT_TABLESPACE

------------------------------

DAVE3

 

2.6 修改DB的默認表空間

SQL> ALTER DATABASE DEFAULT TABLESPACEdave3;

Database altered.

 

2.7 查看之前創建用戶的表空間

SQL> select default_tablespace from dba_users where username ='DAVE3';

DEFAULT_TABLESPACE

------------------------------

DAVE3

 

SQL> select default_tablespace fromdba_users where username ='DAVE2';

DEFAULT_TABLESPACE

------------------------------

DAVE3

 

SQL> select default_tablespace fromdba_users where username ='DAVE1';

DEFAULT_TABLESPACE

------------------------------

DAVE3

--注意這里Dave1,dave2用戶的默認表空間都變成了dave3.

 

 

2.8 DB的默認表空間不能刪除

--現在dave3是我們的默認表空間

SQL> SELECT PROPERTY_VALUE

 2    FROM database_properties

 3   WHERE PROPERTY_NAME ='DEFAULT_PERMANENT_TABLESPACE'

 4  ;

 

PROPERTY_VALUE

----------------------------------------------------------

DAVE3

 

--drop dave3 看看:

SQL> drop tablespace dave3 includingcontents and datafiles;

drop tablespace dave3 including contentsand datafiles

*

ERROR at line 1:

ORA-12919: Can not drop the defaultpermanent tablespace

這里報錯ORA-12919.

 

我們把默認表空間改成USERS,在測試:

SQL> ALTER DATABASE DEFAULT TABLESPACEUSERS;

Database altered.

 

SQL> drop tablespace dave3 including contents and datafiles;

Tablespace dropped.

 

Dave3表空間成功drop。 注意,我們的dave3用戶的表空間之間是指向dave3的,現在我們把dave3表空間drop了,我們看一下dave3 現在默認表空間:

 

SQL> select default_tablespace from dba_users where username ='DAVE3';

DEFAULT_TABLESPACE

------------------------------

USERS

--這里自動變成了我們的DB 默認的表空間。

 

 

 

 

 

 

-------------------------------------------------------------------------------------------------------

版權所有,文章允許轉載,但必須以鏈接方式注明源地址,否則追究法律責任!

Email:             tianlesoftware@gmail.com

Skype:            tianlesoftware

Blog:   http://www.tianlesoftware.com

Weibo:            http://weibo.com/tianlesoftware

Twitter: http://twitter.com/tianlesoftware

Facebook:http://www.facebook.com/tianlesoftware

 

-------加群需要在備注說明Oracle表空間和數據文件的關系,否則拒絕申請----

DBA1 群:62697716(滿);   DBA2 群:62697977(滿)  DBA3 群:62697850(滿)  

DBA 超級群:63306533(滿);  DBA4 群:83829929   DBA5群: 142216823

DBA6 群:158654907    DBA7 群:172855474  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM