Oracle增加表空间大小的方法

来源:互联网 发布:知乎 保研 换导师 编辑:程序博客网 时间:2024/06/10 06:52


作者:雨竹清风

改变表空间大小的方法总体有3种:

1.改变数据文件的大小。

改变数据文件大小的又分为创建表空间时和创建表空间后。

? 创建表空间时使用autoextend on自动的改变数据文件的大小。

? 创建表空间后需要使用如下的命令:

Alter database datafile ‘数据文件名(包含路径) autoextend on next n M;//n是代表数字几,可变,根据自己的需要来即可,如:可以填写1,2等等,以下红色的n意义相同。

2.使用增加数据文件的方法来扩大表空间的大小,这就需要使用如下命令:

Alter tablespace 表空间名

Add datafile 数据文件名(包含路径)

Size n M;

3.使用手工重置的方法来改变表空间的大小。命令如下:

Alter database datafile 数据文件名(包含路径) resize n M;

示例如下:

方法1(创建表空间后):

1)查看dba_data_files结构

SQL> desc dba_data_files;

 名称                                      是否为空? 类型

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

 FILE_NAME                                          VARCHAR2(513)

 FILE_ID                                            NUMBER

 TABLESPACE_NAME                                    VARCHAR2(30)

 BYTES                                              NUMBER

 BLOCKS                                             NUMBER

 STATUS                                             VARCHAR2(9)

 RELATIVE_FNO                                       NUMBER

 AUTOEXTENSIBLE                                     VARCHAR2(3)

 MAXBYTES                                           NUMBER

 MAXBLOCKS                                          NUMBER

 INCREMENT_BY                                       NUMBER

 USER_BYTES                                         NUMBER

 USER_BLOCKS                                        NUMBER

 ONLINE_STATUS                                      VARCHAR2(7)

 

2)查询表空间XUANXUAN是否是自动扩展。

SQL> col file_name for a38

SQL> col tablespace_name for a15

SQL>  select  FILE_ID, FILE_NAME, TABLESPACE_NAME, AUTOEXTENSIBLE from dba_data_files;

 

  FILE_ID FILE_NAME                              TABLESPACE_NAME AUT           

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

       4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF USERS  YES          

       3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ SYSAUXSYSAUX01.DBF   YES       

       2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ UNDOTBS1UNDOTBS01.DBF   YES     

       1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ SYSTEMSYSTEM01.DBF   YES        

       5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ EXAMPLEEXAMPLE01.DBF   YES      

       7 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\FANLU_TABLESPACE.DBF   NO

       8 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XIXI.DBF              NO       

       6 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN.DBF        NO         

 

已选择8行。

从结果可以看到XUANXUAN表空间不是自动扩展的。

3)修改表空间,使其变为自动扩展。

SQL> alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN.DBF' autoextend on next 1 M;

 

数据库已更改。

4)查询是否已经成功。

SQL> col file_name for a38

SQL> col tablespace_name for a15

SQL>  select  FILE_ID, FILE_NAME, TABLESPACE_NAME, AUTOEXTENSIBLE from dba_data_files;

 

  FILE_ID FILE_NAME                              TABLESPACE_NAME AUT           

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

       4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF USERS  YES          

       3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ SYSAUXSYSAUX01.DBF   YES       

       2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ UNDOTBS1UNDOTBS01.DBF   YES     

       1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ SYSTEMSYSTEM01.DBF   YES        

       5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ EXAMPLEEXAMPLE01.DBF   YES      

       7 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\FANLU_TABLESPACE.DBF   NO

       8 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XIXI.DBF              NO       

       6 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN.DBF        YES         

 

已选择8行

从结果可以看到已经修改成功,这是相应的数据文件已经成为自动扩展的。

方法2(增加数据文件的方法来扩大表空间的大小):

1)添加一个新的数据文件。

SQL> alter tablespace XUANXUAN

  2  add datafile 'D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN02.DBF'

  3  size 80 M;

 

表空间已更改。

2)查询是否成功

SQL> col FILE_NAME for a50

SQL> col TABLESPACE_NAME for a8

SQL> select  FILE_ID,FILE_NAME,TABLESPACE_NAME,BYTES/(1024*1024) MB from dba_data_files where tablespace_name like 'XUANXUAN';

 

   FILE_ID FILE_NAME                                          TABLESPA          

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

        MB                                                                      

----------                                                                      

         6 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN. XUANXUAN          

           DBF                                                                  

       100                                                                      

                                                                                

         9 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN0 XUANXUAN          

           2.DBF                                                                

        80                                                                      

                                                                                

 

方法3(手工重置):

1)查询结构

SQL> desc dba_data_files;

 名称                                      是否为空? 类型

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

 FILE_NAME                                          VARCHAR2(513)

 FILE_ID                                            NUMBER

 TABLESPACE_NAME                                    VARCHAR2(30)

 BYTES                                              NUMBER

 BLOCKS                                             NUMBER

 STATUS                                             VARCHAR2(9)

 RELATIVE_FNO                                       NUMBER

 AUTOEXTENSIBLE                                     VARCHAR2(3)

 MAXBYTES                                           NUMBER

 MAXBLOCKS                                          NUMBER

 INCREMENT_BY                                       NUMBER

 USER_BYTES                                         NUMBER

 USER_BLOCKS                                        NUMBER

 ONLINE_STATUS                                      VARCHAR2(7)

2)查询

SQL> col FILE_NAME for a55

SQL> col TABLESPACE_NAME for a15

SQL> select  FILE_ID,FILE_NAME,TABLESPACE_NAME,BYTES from dba_data_files where tablespace_name like 'XUANXUAN';

 

   FILE_ID FILE_NAME                          TABLESPACE_NAME                 BYTES 

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

         6 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN.DBF        XUANXUAN     5242880   

3)用手工重置数据文件大小

SQL> alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN.DBF' resize 100 M;

 

数据库已更改。

4)查询是否成功

SQL> col FILE_NAME for a50

SQL> col TABLESPACE_NAME for a8

SQL> select  FILE_ID,FILE_NAME,TABLESPACE_NAME,BYTES/(1024*1024) MB from dba_data_files where tablespace_name like 'XUANXUAN';

 

   FILE_ID FILE_NAME                                          TABLESPA          

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

        MB                                                                      

----------                                                                      

         6 D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\XUANXUAN.DBF XUANXUAN          

                                                                             

       100                                                                      

                                                                                

从结果可以看到已经将数据文件改为100M。

0 0
原创粉丝点击