Oracle学习——表空间管理(二)

一、使用CREATE TABLESPACE 语句创建表空间

查看系统默认表空间的位置语句:select t1.name,t2.name  from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;

  1.创建本地表空间

          (1)  创建本地管理表空间orcltb1,数据文件为C:\Users\admin\Documents\ORACLE\DATAFILE\mytb01.dbf,大小为50M,指定本地管理表空间,由表空间自动分配区间,语句如下:

             create tablespace orcltb1 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\mytb01.dbf'  size 50m extent management local autoallocate;

              tablespace ORCLTB1 已创建。

             datafile:用于指定表空间的数据文件。

                size:用于指定数据文件的大小。

                autoallocate:指定表空间由系统管理,最小区间为64Kb,与autoallocate对应的是uniform,使用它可以指定最小的区间大小。

           (2)  创建本地管理表空间orcltb21,数据文件为C:\Users\admin\Documents\ORACLE\DATAFILE\mytb02.dbf,大小为30M,指定本地管理表空间,指定其最小区间为128kb语句如下:

        create tablespace orcltb2 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\mytb02.dbf' size 30m extent management local uniform size 128k;

                        tablespace ORCLTB2 已创建。

 2.创建大文件表空间

            大文件表空间由唯一的,非常巨大的数据文件组成,普通的小文件表空间可以包含多个数据文件,但大文件表空间只能包含一个数据文件。

            (1)  创建本地管理表空间bigtb,数据文件为C:\Users\admin\Documents\ORACLE\DATAFILE\bigtb.dbf,大小为10GB,指定本地管理表空间,指定其最小区间为128kb语句如下:

        create bigfile tablespace bigtb datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\bigtb.dbf' size 10G;

                bigfile TABLESPACE 已创建。

  3.创建临时表空间

            (1)创建本地管理表空间temptb,数据文件为C:\Users\admin\Documents\ORACLE\DATAFILE\temptb.dbf,大小为20m,指定本地管理表空间,指定其最小区间为16m语句如下:

        create temporary tablespace temptb Tempfile 'C:\Users\admin\Documents\ORACLE\DATAFILE\temptb.dbf' size 20m reuse extent management local uniform size 16m;

                    temporary TABLESPACE 已创建。

                注意:  a、 create tablespace中使用关键词tempfile 而不是datafile了。

                            b、使用tempfile子句可以指定临时文件的绝对路径和文件名。

                            c、 使用reuse关键字可以重用。

                            d、在创建临时表空间是,不允许使用autoallocate关键词,因此表空间的区间大小有uniform size指定。

  4.创建撤销表空间

        (1)    创建撤销表空间undotb1,数据文件为C:\Users\admin\Documents\ORACLE\DATAFILE\undotb1.dbf,大小为20m,指定本地管理表空间,指定其最小区间为16m语句如下:

            create undo tablespace undotb1 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\undotb1.dbf'  size 2m reuse;。

                    undo TABLESPACE 已创建。

            在创建数据库时,系统会创建一个撤销表空间,用户也可以显示地创建撤销表空间。当数据库实例启动时,数据库会选择使用第一个可用的撤销表空间。但是如果没有可用的撤销表空间,则系统将撤销记录保存在SYSTEM表空间中,同时记录一条警告日志,说明系统在没有撤销表空间情况下运行。

二、设置和修改表空间属性

  1.重命名表空间  

         在alter tablespace语句中使用rename to子句重命名表空间

          alter tablesapce 原表空间名 rename to 新表空间名

            (1)将本地表空间orcltb1重命名为orcltbone

                alter tablespace orcltb1 rename to orcltbone;

                   tablespace ORCLTB1已变更。

   2.向本地表空间中增加数据文件

         在alter tablespace语句中使用add datafile子句,可以在本地管理表空间中增加数据文件.

          alter tablespace 表空间名 add datafile 增加的数据库文件 size    数据文件大小;

        (1)向表空间orclone中增加一个数据文件'C:\Users\admin\Documents\ORACLE\DATAFILE\orcltbtwo.dbf',初始大小  为10m:

            alter tablespace orcltbone add datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\undotbtwo.dbf' size 10m;

                    tablespace ORCLTBONE已变更。

        (2)修改大文件表空间bigtb的数据文件大小为4GB

                alter tablespace bigtb resize 4G;

                    tablespace BIGTB已变更。

 三、表空间的状态

        1.查看表空间的状态

           select tablespace_name,status,contents from dba_tablespaces;

                

    2.设置表空间的状态

            表空间的状态可以分为联机和脱机两种。

                 在以下情况下,可以将表空间设置为脱机状态:

                        a:数据库的一部分设置为不可访问,而其他部分可以访问。

                        b:执行脱机表空间备份。

                        c:在升级或维护应用程序时,将应用程序及其使用的表空间设置为不可访问。

                        d:重命名或重新分配表空间。

                注意:系统(SYSTEM)表空间、还原(UNDO)表空间、临时表(TEMPORARY)空间不可设置为脱机状态

   将表空间设置为脱机状态:    alter tablespace 表空间名 offline;

               (1)将表空间orcltbone设置为脱机状态

                    alter tablespace orcltbone offline;

              (2)将表空间orcltbone设置为联机状态

                      alter tablespace orcltbone online;

   将表空间设置为只读状态:,主要目的是为了避免对数据库中大量静态数据进行备份和恢复操作,还可以保护历史数据不被修改。

              (3)将表空间orcltbone设置为只读状态。

                 alter tablespace orcltbone read only;

              (4)将表空间orcltbone设置为可读写状态

                alter tablespace orcltbone read write;


四、删除表空间

        1、删除表空间

                drop tablespace 表空间名 ;

        2、删除表空间同时删除其中的段

          drop tablespace 表空间名 including contents;

        3、删除表空间同时删除其中的段和数据文件

            drop tablespace 表空间名 including contents datafiles;