Oracle 表空间

内容涵盖:Oracle表空间的基本概念和基本操作 

Oracle 表空间

  有两句话

    1. 与其他数据库(如 MySQL、SQL Server)不同,Oracle 数据库的下一层对象并非数据表,而是表空间。

    2. 每个数据表都属于唯一的表空间。

  关于Oracle中的逻辑对象

    当使用 SQL 语句对数据库进行操作时,操作的都是逻辑对象,比如表、索引、视图等,这些都是数据库对象的组成部分,而非直接的物理文件;

    与数据表相同,表空间也是一个逻辑对象。对于Oracle,一个数据库可以有多个表空间,一个表空间可以有多个数据表。

  Oracle使用表空间的好处

    1. 避免磁盘空间突然耗竭

       因为在创建表空间时,可以指定表空间的最大磁盘空间。当库中数据大小扩张至指定值时,便不能继续写入数据。

    2. 规划数据更加灵活

    3. 提高数据库性能

       对于访问频繁的数据表,可以放入单独的表空间,并存储于高性能的磁盘;访问较少的数据表,也可以放入表空间,并存于低性能的磁盘。

    4. 提高数据库的安全性。

       不同的表空间对应着不同的物理文件,当某个表空间的物理文件损坏时,并不会影响其他表空劲的正常使用。

   SQL 操作 Oralce 表空间

    1. 创建表空间

      (1) 

          create tablesapce: 创建表空间命令;

          user1: 要创建的表空间名称;

          datafile:表空间对应的数据文件的完成路径;

          size:指定数据文件的初始化大小,如20M。

        (2)  使用 autoextend on 选项指定数据文件可扩展,即存储在某个数据文件中的数据量超过了指定的初始化大小时,数据文件自动扩展。

         当然,也可以使用autoextend off 关闭自动扩展功能。

         

       (3)  使用 next 增长值 指定数据文件的增长幅度。数据文件自动增长时,默认是64KB。同时,数据文件的大小和自动增长幅度的单位只有KB和MB 两种。

         

       (4)  使用 Maxsize 最大尺寸值指定数据文件的自动增长的最大数据文件大小。毕竟数据文件无限制的增长迟早会带来风险的。当然,也可以使用“ Maxsize unlimited ”不限制数据文件的最大尺寸。

         

      2. 查看表空间是否创建成功:

       表空间创建成功后,会在数据库系统表中添加相应的记录,并且创建相应的物理文件。可以通过查看视图 dba_data_files 中的记录和实际数据文件名(包含路径),来判断表空间是否创建成功。也可以通过视图 dba_tablespaces 查看所有表空间的信息。

       select file_name,tablespace_name from dba_data_files order by file_name;

       select tablespace_name,status,allocation_type from dba_tablespaces;

       注意:Oracle 数据库自动创建了 SYSTEM、UNDOBS1、SYSAUX、TMP、USERS 五个表空间。其中SYSTEM 存储了数据库运行的最基本信息 ,SYSAUX 分担SYSTEM 部分工作,UNDOBS1 用于回滚数据时的数据存储,TMP 为数据库排序运算、索引管理、查看视图等操作提供临时表空间;而USERS 是整个数据库的默认表空间,指的是当创建数据表时,如果没有指定表空间,则默认使用USERS 这个表空间。

    3. 为一个表空间创建多个数据文件:

       注意:多个数据文件之间使用(“,”) 分隔。

       

      4. 表空间的基本操作:

          (1) 查看每个用户的默认表空间:

          select user_id,user_name,default_tablespace from dba_users;   

        (2) 修改数据库默认表空间(比如修改默认表空间为USER1):

          alter database default tablespace USER1;  

        (3) 修改表空间名称(比如将表空间USER1 改为 USER10):

            alter tablespace USER1 rename to USER10; 

        (4) 删除表空间,方式有两种:

          只删除该表空间在数据库中的记录

          drop tablespace USER10; 

          将该表空间下的记录和数据文件一起删除

          drop tablespace USER10 including contents and datafile; 

 

 

 

 

 

 

           

 

posted @ 2016-12-03 14:28  小猫钓鱼o  阅读(136)  评论(0)    收藏  举报