表空间创建、维护、修改、删除

    技术2022-07-11  97

    创建表空间

    创建表空间的语法

    create [smallfile|bigfile] tablespace tablespace_name datafile ‘/path/filename’ size num reuse [autoextend [on|off]] next num [maxsize num|unlimited] [mininum extent num] [default storage storage] [online|offline] [logging|nologging] [permanent|temporary] [extent management dictionary|local [autoallocate|uniform size num]]

    语法中的关键词 smallfile|bigfile :表示创建的是小文件表空间还是大文件表空间。默认是小文件表空间resuse :表示若文件存在,则清楚该文件再重新建立该文件autoextend [on|off] next:表示数据文件为自动扩展(on)或非自动扩展(off),如果为自动扩展需要设置next的值maxsize 表示当数据文件自动扩展时,允许数据文件扩展的最大长度字节数,如果指定unlimited,则不需要指定字节长度mininum extent 指定最小长度,由操作系统的块决定logging|nologging:指定表空间里的表在加载数据时是否产生日志permanent|temporary:创建临时表空间还是永久表空间。默认是永久表空间extent management dictionary|local:指定表空间的扩展方式是使用数据字典管理还是本地化管理。默认本地化管理autoallocate|uniform size num:如果采用本地化管理,在表空间扩展时,指定每次盘区扩展的大小是由系统自动指定还是按照等同大小进行。若是同等大小默认是1M 通过本地化管理方式创建表空间 例1:通过本地化管理方式(local)创建一个大小10mb的表空间,其扩展大小为256KB create tablespace tbs_test_1 datafile 'D:\\oraclefiles\oracle\datafile1.dbf' size 10m extent management local uniform size 256k;

    例2:通过本地化管理方式创建一个大小为10MB的表空间,自动扩展大小

    create tablespace tbs_test_1 datafile 'D:\\oraclefiles\oracle\datafile1.dbf' size 10m extent management local autoallocate;

    维护表空间

    设置默认表空间

    在ORACEL创建用户时,如果不指定表空间,则默认临时表空间为temp,默认永久表空间是system,这样会导致应用系统和oracle系统竞争表空间,会极大影响oracle表空间的执行效率。为此oracle建议将非system表空间的表空间设置为默认永久表空间,将非TEMP表空间设置为默认临时空间。

    alter database default temprory tablespace temp_1 alter database default tablespace tbs_example

    更改表空间的状态

    表空间有只读和可读写两种装态,若设置某个表空间为只读状态,则用户就不能够对该表空间进行DML操作。但是设置只读不是什么随意就可以设置的,需要再指定条件下。必须满足以下条件。

    该表空间必须为OnLine状态该表空间不能包含回滚段该表空间不能在归档模式下 alter tablespace tbs_test_3 read only; alter tablespace tbs_test_3 read write;

    重命名表空间

    数据库管理员是不能对system和sysaux表空间进行重命名的,也不能对处于offline的表空间进行重命名

    alter tablespace tbs_test_3 rename to tbs_test_3_new;

    删除表空间

    删除表空间需要具备drop tablespace权限。默认情况下ORACEL不采用ORACEL managed files管理文件,这样删除表空间,实际上是从数据字典和控制文件中,将该表空间的有关信息删掉,并没有删除表空间含有的实际文件。 例1,删除表空间tab_test及其包含的所有内容。

    drop tablespace tbs_test including contents cascade constraints;

    维护表空间中的数据文件

    向表空间中添加数据文件 如果表空间为非自动扩展的表空间,则需要手动添加数据文件 例1,向users表空间中添加一个新的数据文件user02.dbf,该文件支持自动扩展,器扩展能力为每次扩展5mb,并且该文件最大空间不受限制 alter tablespace users add datafile 'e:\app\Administrator\oradata\orcl\users02.dbf' size 10m autoextend on next 5m maxsize unlimited; 从表空间中删除数据文件 alter tablespace users drop datafile 'e:\app\Administrator\oradata\orcl\users02.dbf'
    Processed: 0.011, SQL: 9