oracle建立臨時表空間和資料表空間以及刪除

風靈使發表於2018-10-19
-----建立臨時表空間-----
create temporary tablespace zhangmingchaotemp tempfile 'd:\oracle\zhangmingchaotemp.dbf'
-----初始化大小-----
size 50m
-----自動增長-------
autoextend on
-----每次擴充套件50m,無限制增長-----
next 50m maxsize unlimited
-----本地管理表空間--------
extent management local;

-----建立資料表空間-----
ceate tablespace zhangmingchaodata logging datafile 'd:\app\zcm\oradata\orcl\zhangmingchao.dbf' 
size 50m autoextend on next 50mm maxsize 2048m 
extent management local;
----建立使用者並制定臨時表空間和資料表空間----
create user zcm identifide by zcm default tablespace zhangmingchaodata temporary tablespace zhangmingchaotemp;
----刪除表空間(含物理位置)
alter tablespace zhangmingchaodata offline;
drop tablespace zhangmingchaodata including 
contents and datafiles;

ora-01536 超出表空間 ‘xxx’ 的空間限額

解決方案:
1.alter user 你的使用者名稱 quota 2g on 你建表的表空間的名字;(有限制)
2.alter user 你的使用者名稱 quota unlimited on 你建表的表空間的名字;(無限制)

知識總結:

表空間的大小與使用者的配額大小是兩種不同的概念,表空間的大小是指實際的使用者表空間的大小,而配額大小指的是使用者指定使用表空間的的大小。把表空間檔案增大,還是出現這個問題,使用者在使用表空間的同時使用空間的限額,如果超出限制,就算有空的地方,也不會讓使用者使用

檢視:

1.dba_ts_quotas : DBA_TS_QUOTAS describes tablespace quotas for all users.
2.user_ts_quotas : USER_TS_QUOTAS describes tablespace quotas for the current user. This view does not display the USERNAME column.

檢視使用者的表空間的限額

select * from dba_ts_quotas;

max_bytes 欄位就是了。-1是代表沒有限制,其它值多少就是多少了.

使用者表空間限額的建立與更改:

1.建立使用者時,指定限額

CREATE USER SKATE IDENTIFIED BY SKATE_PWD
DEFAULT TABLESPACE SKATE_TS
TEMPORARY TABLESPACE temp
QUOTA 3M ON SKATE_TS
PASSWORD EXPIRE;

2.更改使用者的表空間限額:

A:GRANT UNLIMITED TABLESPACE TO skate;
這種方式是全域性性的,不對使用者做表空間限額控制。

B:alter user skate quota unlimited on skate_ts;
這種方式是針對特定的表空間的.

  1. 可以分配自然也可以回收:
    A: revoke unlimited tablespace from skate;
    B: alter user skate quota 0 on SKATE_TS;

相關文章