1.Oracle表空間數據文件大小的限制
由於Oracle的Rowid使用22位來代表數據塊號,因此Oracle表空間數據文件每個數據文件最多只能包含2^22個數據塊。
也因此數據庫表空間的數據文件不是無限增長的,例如:
在數據塊為8k的情況下,單個數據文件的最大容量為8K*2^22 = 32G
同理,
數據塊為2K,數據文件最大約8G
數據塊為32,數據文件最大約16*8G
故若達到這個最大容量之后,則即便是設置了自增長,也不是無限自增長,此時則需要為這個表空間添加數據文件
2.當表空間不足時
(1)設置文件的自動增長
首先選擇設置自增長,sql語句:Alter tablespace 表空間名 adddatafile ‘數據文件存放路徑‘ autoextend on next 每次增加的大小 maxsize 數據文件大小的最大值
(2)增加數據文件
在自增長失靈了之后,需要增加數據文件,sql語句:Alter tablespace 表空間名 adddatafile ‘數據文件存放的路徑’ size 數據文件大小M autoextend on next 每次自增長大小M Maxsize UNLIMITED;(后半部分為設置自增長)
這里放個例子:
alter tablespace SDE add datafile 'E:\app\EmmaXu\product\11.1.0\db_1\database\SDE_1.dbf' size 400Mautoextend off
-----------------------------------------------------------------------------------------------------------------------------
修改某數據文件為不限制大小
ALTER DATABASE DATAFILE 'D:\oracle_data\xxx.DBF' AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;
增加新的數據文件
alter tablespace 表空間名 add datafile 'E:/oracle_data/data/xxx.dbf' size 1000M AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;
刪除指定的表空間文件
ALTER TABLESPACE 表空間名 DROP DATAFILE 'D:\oracle_data\xxx.DBF';
-----------------------------------------------------------------------------------------------------------------------------
如何查詢oracle用戶對應 表空間及對應的DBF文件
1.oracle查詢用戶以及用戶對應的表空間
select username,default_tablespace from dba_users;
2.Oracle,查詢 表空間對應的數據文件,用戶和表空間對應關系
select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id;