Oracle数据库的表空间分类以及创建、修改、删除操作

表空间:

1 表空间的概念 

表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表,所以称作表空间

2 理解表空间

表空间是数据库的逻辑存储空间,在数据库中开辟的一个空间,用于存储我们的数据库的对象,一个数据库可以有多个表空间,Oracle 11g表空间设计的概念是与MySql与SQL Server的重要的区别,oracle的很多优化都是基于表空间设计理念来实现的。

3表空间与数据文件

表空间由一个或多个数据文件构成,数据文件的位置和大小可以由用户自己定义,

我们存储的表、数据库对象等都是存放在数据文件中。

4表空间的分类

           永久表空间

               存放数据库中永久化存储的对象,表、视图、存储过程等。

           临时表空间

               存放数据库操作中中间执行的过程,执行结束后存放的内容被自动释放掉,

               不进行永久保存。

           UNDO表空间

               保存事务所修改数据的旧值,也就是被修改前的数据。利用UNDO表空间

              可以对数据进行撤销、回滚的操作。

5 查看用户的表空间

           使用不同用户登录对应的表空间不同

             数据字典:

                       dba_tablespaces    系统管理员级的用户查看的数据字典

                       user_tablespaces    普通用户查看的数据字典

             查看方式: desc  dba_tablespaces  |  desc  user_tablespaces

 

6 表空间作用:

              system    存放sys用户的表、视图以及存储过程等数据库对象系统表空间。

              sysaux     作为example的辅助表空间。

              undotbs1  存储一些撤销信息的。

              temp      存储SQL语句处理的表和索引信息的临时表空间。

              users      存储数据库用户创建的数据库对象的永久表空间。

              example   安装Oracle11g数据库事例来使用的表空间。

 

7 查看每一用户下面对应的默认表空间和临时表空间

            数据字典:

                      dba_users  

                      user_users

查看方式:desc dba_users | desc user_users

8 设置用户的默认或临时表空间

ALTER USER username  DEFAULT | TEMPORARY   TABLESPACE tablespace_name;

9 创建表空间

9.1  创建永久表空间:

          CREATE  TABLESPACE tablespace_name

          DATAFILE‘本低存放路径/数据文件名.dbf’ SIZE XX;

9.2  创建临时表空间:

          CREATE  TEMPORARY TABLESPACE  tablespace_name

          TEMPFILE ‘本低存放路径/数据文件名.dbf’ SIZE XX; 

        注:SIZE表示数据文件的大小,如果没有指定数据文件的路径,默认存放在ORACL的安装目录下。

eg:

创建永久表空间:

      CREATETABLESPACE test1_tablespace  DATAFILE'test1file.dbf' size 10M

创建临时表空间:

CREATE TEMPORARY TABLESPACE test2_tablespaceTEMPFILE 'test2file.dbf' size 10M

10 修改表空间

10.1 修改表空间的状态

              设置联机或脱机状态(联机|脱机),脱机状态的表空间不能使用

              ALTER TABLESPACE tablespace_nameONLINE | OFFLINE

              注:数据字典dba_tablespaces中有一个STATUS字段表示表空间的状态

              设置只读或可读写状态(必须在联机状态才可设置,联机状态就是读写状态)

              ALTER TABLESPACE tablespace_nameREAD ONLY | READ WRITE

        10.2修改表空间的数据文件 

              增加数据文件

              ALTER TABLESPACE tablespace_nameADD DATAFILE 'XX.dbf' SIZE xx;

              删除数据文件

              ALTER TABLESPACE tablespace_nameDROP DATEFILE 'XX.dbf';  

     注:不能删除表空间中的第一个数据文件,如果要删除该文件则需要删除整个表空间

    11 删除表空间

         DROPTABLESPACE tablespace_name

         [INCLUDING CONTENTS [AND DATAFILES][CASCADECONSTRAINT ]];

     注:无选项 —— 当表空间为空才能删除, 只是删除表空间(不删除里面的数据文件)。

         includingcontents —— 删除表空间及对象;

         includingcontents and datafiles —— 删除表空间、对象及数据文件;

         including contents cascade constraint —— 删除关联;

         including contents and datafiles cascadeconstraint —— 含前两项。

        表空间删除后,如果物理文件没删除,去本地路径下手动删除。切记先用命令删

         除,如果直接就删除物理文件,数据库启动时会报错:ORA-01033。


你可能感兴趣的:(Oracle)