Oracle表空间的创建和删除


作者:雨竹清风

创建非表空间的作用:

1.方便磁盘的管理

2.更好的控制分配给用户磁盘空间的数量

3.可以有效的将静态数据和动态数据进行分离

4.按照备份的要求将数据分开存放

创建表空间的命令格式:

create tablespace 表空间名

[datafile子句]

[minimum extent 正整数[K|M]]

[blocksize正整数[k]]

[logging|nologging]

[defaultc存储子句]

[online|offline]

[permanent|temporary]

[区段管理子句]

[段管理子句]

说明:

minimum extent:表空间中所使用的每个extent都必须是该参数所指定数的整数倍。

logging:说明在该表空间的所有的数据变化都会写入重做日志文件中这是默认设置。

offline:说明在该表空间被创建后立即被置为脱机,即不能使用。

以下是创建和删除表空间的实例:

1.创建表空间,表空间的名字叫fanlu,大小为5M,区大小统一为120k。

SQL> create tablespace fanlu datafile 'D:\oracle\product\10.2.0\user_tablespace\fanlu_tablespace.dbf'size 5M extent management local uniform size 120k;

 

表空间已创建。

2.查看刚刚创建的fanlu表空间是否已经存在了。使用v$tablespace和dba_data_files。

SQL> desc v$tablespace;

 名称                                      是否为空? 类型

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

 TS#                                                NUMBER

 NAME                                               VARCHAR2(30)

 INCLUDED_IN_DATABASE_BACKUP                        VARCHAR2(3)

 BIGFILE                                            VARCHAR2(3)

 FLASHBACK_ON                                       VARCHAR2(3)

 ENCRYPT_IN_BACKUP                                  VARCHAR2(3)

 

SQL> select TS#,NAME from v$tablespace;

 

       TS# NAME                                                                 

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

         0 SYSTEM                                                               

         1 UNDOTBS1                                                             

         2 SYSAUX                                                               

         4 USERS                                                                

         3 TEMP                                                                 

         6 EXAMPLE                                                              

         7 XIXI                                                                 

         8 FANLU                                                                

已选择8行。

 

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)

 

SQL> col file_name for a62

SQL> col tablespace_name for a15

SQL> select tablespace_name,file_name from dba_data_files;

 

TABLESPACE_NAME FILE_NAME                                                       

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

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

SYSAUX          D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF              

UNDOTBS1        D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF             

SYSTEM          D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF              

EXAMPLE         D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF             

XIXI            D:\ORACLE\PRODUCT\10.2.0\XIXI.DBF                               

FANLU           D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\FANLU_TABLESPACE.DBF   

 

已选择7行。

从结果看两次查询时相同的。

以下蓝色背景字出自于:http://coupling001.blog.163.com/blog/static/174925389201102534541321/

表空间数据字典信息

dba_tablespaces:提供数库中所有表空间的列表以及与这些表空间相关的默认设置。

dba_data_files:列出与给定表空间相关的所有数据文件,包括他们的位置和配置

dba_segments:列出数据库中所有的段(表、索引等),段类型和每个段的表空间分配。

dba_extents:列出表和表空间所分配的区。

v$tablespace:列出表空间的序号和名称。当数库装在以后,即可使用视图。

v$datafile:列出所有数库的数据文件以及与每个数据文件相关的表空间序号。当数库装在以后,即可使用该视图。

 

DBA_TABLESPACES字段多,描述的信息详细,v$tablespace只有很少几个字

段信息。

dba_data_files 全部数据文件信息和对应表空间信息。v$datafile 数据文件的同步信息和文件信息。DBA_*只有在数据库OPEN 的时候才能使用,v$*的内容取自于控制文件,在数据库MOUNT下也可以使用。例如:在操作系统下删除某数据文件,启动的时候只能到MOUNT 下,这时候,用v$datafile 还是可以查看到该数据文件。启动不到OPEN,当然不能不能使用dba_data_files。

//查看表空间对应的数据文件/

由上面的查看表空间信息,我们自然会想到查看数据文件信息有v$datafile dba_data_files。通过查看v$datafile 结构,发现v$datafile里面没有同时具备表空间名字和数据文件名字NAME 的字段,但是有一个表空间编号字段TS#。同时,在v$tablespace 里面有表空间编号字段TS#。因此,我们可以通过两个表的关联查询,获取表空间对应的数据文件。查询如下:SELECT t.name,d.name FROM v$tablespace t,v$datafile d WHERE t.ts#=d.ts#

 

SQL> select t.name,d.name from v$tablespace t,v$datafile d where t.TS#=d.TS#;

 

NAME                                NAME                                        

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

SYSTEM                              D:\ORACLE\PRODUCT\10.2.0\ORADATA\OR         

                                    CL\SYSTEM01.DBF                             

                                                                                

UNDOTBS1                            D:\ORACLE\PRODUCT\10.2.0\ORADATA\OR         

                                    CL\UNDOTBS01.DBF                            

                                                                                

SYSAUX                              D:\ORACLE\PRODUCT\10.2.0\ORADATA\OR         

                                    CL\SYSAUX01.DBF                             

                                                                                

USERS                               D:\ORACLE\PRODUCT\10.2.0\ORADATA\OR         

                                    CL\USERS01.DBF                              

 

NAME                                NAME                                        

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

                                                                                

EXAMPLE                             D:\ORACLE\PRODUCT\10.2.0\ORADATA\OR         

                                    CL\EXAMPLE01.DBF                            

                                                                                

XIXI                                D:\ORACLE\PRODUCT\10.2.0\XIXI.DBF           

FANLU                               D:\ORACLE\PRODUCT\10.2.0\USER_TABLE         

                                    SPACE\FANLU_TABLESPACE.DBF                  

                                                                                

 

已选择7行。

 

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)

 

SQL> col file_name for a62

SQL> col tablespace_name for a15

SQL> select tablespace_name ,file_name from dba_data_files;

 

TABLESPACE_NAME FILE_NAME                                                       

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

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

SYSAUX          D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF              

UNDOTBS1        D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF             

SYSTEM          D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF              

EXAMPLE         D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF             

XIXI            D:\ORACLE\PRODUCT\10.2.0\XIXI.DBF                               

FANLU           D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\FANLU_TABLESPACE.DBF   

 

已选择7行。

/

以下是删除表空间的命令。

SQL> drop tablespace xixi including contents and datafiles;

 

表空间已删除。

查看是否已经成功删除。

SQL> col file_name for a62

SQL> col tablespace_name for a15

SQL> select tablespace_name ,file_name from dba_data_files;

 

TABLESPACE_NAME FILE_NAME                                                       

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

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

SYSAUX          D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF              

UNDOTBS1        D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF             

SYSTEM          D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF              

EXAMPLE         D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF             

FANLU           D:\ORACLE\PRODUCT\10.2.0\USER_TABLESPACE\FANLU_TABLESPACE.DBF   

 

已选择6行。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值