1. 程式人生 > >Oracle表空間不足的案例總結

Oracle表空間不足的案例總結

1、問題描述:
Creating procedure PRO_ALTER_TABLES
===================================
CREATE OR REPLACE PROCEDURE PRO_ALTER_TABLES IS
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-01653: unable to extend table SYS.SOURCE$ by 1024 in tablespace SYSTEM


如上所示,建立儲存過程或者函式時如果出現上面的錯誤,應該是表空間空間不夠。


2、檢視指定表空間大小(bytes指總共大小)
select bytes/1024/1024 ||'M' from dba_data_files where tablespace_name in ('SYS','SYSTEM');


3、檢視所有表空間大小
SQL> select tablespace_name,(bytes/1024/1024) M from dba_data_files;


TABLESPACE_NAME M
------------------------------ ----------
USERS5
UNDOTBS1      65
SYSAUX     570
SYSTEM     710
MYTEST     200


4、查看錶空間對應的資料檔案路徑
SQL> select FILE_NAME,TABLESPACE_NAME from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME
------------------------------
/opt/oracle/oradata/ora11g/users01.dbf
USERS


/opt/oracle/oradata/ora11g/undotbs01.dbf
UNDOTBS1


/opt/oracle/oradata/ora11g/sysaux01.dbf
SYSAUX


/opt/oracle/oradata/ora11g/system01.dbf
SYSTEM
......


5、擴充套件表空間大小的幾種方法
(1) 增加表空間資料檔案大小
alter table move tablespace tablespace_name
SQL> alter database datafile '/opt/oracle/oradata/ora11g/system01.dbf' resize 5000M;
(2)增加一個數據檔案到表空間
alter tablespace SYSTEM add datafile '/opt/oracle/oradata/ora11g/system02.dbf' size 200m;
(3)修改表空間自增長並且最大值為固定值
alter database datafile '/opt/oracle/oradata/ora11g/system01.dbf' autoextend on next 1M maxsize 100M;