oracle中表空间的大小修改问题

有时候oracle的表空间不免会不够用,这时候该怎么修改表空间的大小呢?

其实有两种方法,一个给表空间在添加个数据文件,另一个是直接在原的基础上增加表空间的大小。


一、直接给表空间增加数据文件:


SQL> alter tablespace shoppingmall_tbs

 2  add datafile 'h:\oracle\orcl\shoppingmall_tbs2.dbf'

 3  size 5m

 4  ;


表空间已更改。


二、在原来的基础上增加表空间的大小



SQL> alter database datafile 'h:\oracle\orcl\shoppingmall_tbs.dbf'

 2  resize 15m

 3  ;


数据库已更改。



之后可以查看语句有没有起作用



SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files

 2  group by tablespace_name

 3  

SQL> /


TABLESPACE_NAME                SUM(BYTES)/1024/1024                            

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

SYSAUX                                          260                            

UNDOTBS1                                         25                            

USERS                                             5                            

SYSTEM                                          480                            

SHOPPINGMALL_TBS                                 20                            


当然如果一开始定义表空间的时候就把自动扩展和最大值设置好,以后也不必这么麻烦。

不过现在增加自动扩展和最大值也是没有问题的:

       查看自动拓展是否启动(可以看到下面的shoppingmall_tbs.dbf是没有启动的):

       

SQL> select file_name,tablespace_name,autoextensible from dba_data_files;


FILE_NAME                                                                      

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

TABLESPACE_NAME                AUT                                              

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

H:\WIN7\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF                          

USERS                          YES                                              


H:\WIN7\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF                        

SYSAUX                         YES                                              


H:\WIN7\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF                        

UNDOTBS1                       YES                                              



FILE_NAME                                                                      

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

TABLESPACE_NAME                AUT                                              

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

H:\WIN7\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF                        

SYSTEM                         YES                                              


H:\ORACLE\ORCL\SHOPPINGMALL_TBS.DBF                                            

SHOPPINGMALL_TBS               NO                                              


H:\ORACLE\ORCL\SHOPPINGMALL_TBS2.DBF                                            

SHOPPINGMALL_TBS               NO                                              



已选择6行。


       接着让shoppingmall_tbs.dbf启动autoextend


SQL> alter database datafile 'h:\oracle\orcl\shoppingmall_tbs.dbf' autoextend on;


数据库已更改。

SQL> alter database datafile 'h:\oracle\orcl\shoppingmall_tbs.dbf'

 2  autoextend on next 5m

 3  

SQL> /


数据库已更改。


SQL> alter database datafile 'h:\oracle\orcl\shoppingmall_tbs.dbf'

 2  maxsize 30m

 3  

SQL> /

maxsize 30m

*

第 2 行出现错误:

ORA-01916: 需要关键字 ONLINE, OFFLINE, RESIZE, AUTOEXTEND 或 END/DROP

//这里给大家一个反面例子,maxsize要和autoextend等其中一个使用,单独使用是不行的。



SQL> alter database datafile 'h:\oracle\orcl\shoppingmall_tbs.dbf'

 2  autoextend on next 5m

 3  maxsize 30m

 4  

SQL> /


数据库已更改。


你可能感兴趣的:(oracle,数据库,database,空间)