Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1149112
  • 博文数量: 231
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 16:35
个人简介

学无止境

文章分类

全部博文(231)

文章存档

2014年(7)

2013年(103)

2011年(11)

2010年(53)

2009年(57)

分类: Oracle

2013-08-19 09:52:52

10g数据库,在创建数据库时会创建SYSTEM表空间和SYSAUX表空间,这2个表空间都不能rename,或是drop,SYSTEM表空间不能offile,SYSAUX表空间可以。

创建持久表空间,默认会建成本地管理表空间,extent自动分配,段自动管理ASSM,现在本地管理表空间的EXTENT管理只有AUTOALLOCATE和UNIFORM。

关于DEFAULT storage语句,在创建表空间时,如果带了DEFAULT storage语句,考虑是否指定了MININUM EXTENT子句,如果指定了MININUM EXTENT子句,MININUM EXTENT,INITIAL,NEXT都相等,并且PCTINCREASE为0,那么创建出来的本地管理表空间为uniform extent,大小为INITIAL大小;如果MININUM EXTENT,INITIAL,NEXT不相等,或者PCTINCREASE不为0,那么extent管理为AUTOALLOCATE。如果没有指定MININUM EXTENT子句,只有在INITIAL,NEXT相等,并且PCTINCREASE为0的情况下,才为uniform extent管理,否则是AUTOALLOCATE。

创建一个自动分配extent的本地管理表空间:
CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

创建一个固定extent大小的表空间,uniform子句中如果忽略了size,默认uniform是1M。
CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;

段自动管理表空间,没有特别指明,默认创建的表空间都是段自动管理表空间,也可以明确指出,在RAC环境中,建议都使用ASSM:
CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
    EXTENT MANAGEMENT LOCAL
    SEGMENT SPACE MANAGEMENT AUTO;
段手动管理表空间:
CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT MANUAL;


修改本地管理表空间
1.增加数据文件:
ALTER TABLESPACE lmtbsb
   ADD DATAFILE '/u02/oracle/data/lmtbsb02.dbf' SIZE 1M;

2.表空间offline,online
SYSTEM、UNDO、默认的TEMPORARY,3个表空间不能offline。offline表空间的用途,让数据库的一部分暂时不可用,允许访问其他部分;执行offline表空间备份;维护应用,将一部分表临时不可用;重命名或迁移数据文件位置。
offline有3种方式NORMAL,TEMPORARY,IMMEDIATE,默认是NORMAL,必须要没有错误才能offline;TEMPORARY方式即使有错误也能offline,比如数据文件已经offline或处于recover状态,online的时候,可能需要介质恢复,这2种方式都会检查checkpoint;IMMEDIATE方式,数据库必须运行在归档模式下才可以,不检查checkpoint,online时需要介质恢复。
ALTER TABLESPACE users OFFLINE NORMAL;
ALTER TABLESPACE users ONLINE;

3.表空间为只读或读写
ALTER TABLESPACE flights READ ONLY;
ALTER TABLESPACE flights READ WRITE;

4.表空间重命名,删除表空间
ALTER TABLESPACE users RENAME TO usersts;
DROP TABLESPACE users INCLUDING CONTENTS;
DROP TABLESPACE users INCLUDING CONTENTS AND DATAFILES;

5.表空间数据文件重命名,开关数据文件自动扩展,resize数据文件
  数据文件改名:
  ALTER TABLESPACE users OFFLINE NORMAL;
  在OS层面移动重命名或数据文件
  ALTER TABLESPACE users
    RENAME DATAFILE '/u02/oracle/rbdb1/users01.dbf',
                    '/u02/oracle/rbdb1/users02.dbf'
                 TO '/u03/oracle/rbdb1/users01.dbf',
                    '/u04/oracle/rbdb1/users02.dbf';
  ALTER TABLESPACE users online;
  及时备份数据库。

  修改数据文件:
  ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/stuff01.dbf'
   RESIZE 100M;
  修改自动扩展:
  ALTER TABLESPACE users
    ADD DATAFILE '/u02/oracle/rbdb1/users03.dbf' SIZE 10M
      AUTOEXTEND ON
      NEXT 512K
      MAXSIZE 250M;

删除数据文件:删除数据文件有一定的限制:数据库必须open;数据文件必须是空的;如果要删除一个非空的数据文件,不能通过删除该数据文件上的对象使其变空后删除,需要删除该表空间;不能删除表空间的第一个数据文件,所以不能删除大文件表空间的数据文件;不能删除只读表空间的数据文件;不能删除SYSTEM表空间的数据文件;如果数据文件属于LMT,且offline,不能删除。
  alter tablespace lmtbsb drop datafile 'D:\ORACLE\ORADATA\ORA10G\LMTBSB02.DBF';
 

临时表空间
创建临时表空间,临时表空间的extent都是uniform,不能用autoallocate。
CREATE TEMPORARY TABLESPACE lmtemp TEMPFILE '/u02/oracle/data/lmtemp01.dbf'
     SIZE 20M REUSE
     EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;

变更临时表空间,非系统默认的临时表空间:
ALTER TABLESPACE lmtemp
   ADD TEMPFILE '/u02/oracle/data/lmtemp02.dbf' SIZE 18M REUSE;

ALTER TABLESPACE lmtemp TEMPFILE OFFLINE;
ALTER TABLESPACE lmtemp TEMPFILE ONLINE;
ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' OFFLINE;
ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' ONLINE;
ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' RESIZE 18M;
ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' DROP  INCLUDING DATAFILES;

 
创建临时表空间组,可以将多个临时表空间加入到临时表空间组中,临时表空间组不能单独建立,在建立临时表空间时指定建立。
CREATE TEMPORARY TABLESPACE lmtemp2 TEMPFILE '/u02/oracle/data/lmtemp201.dbf'
     SIZE 50M
     TABLESPACE GROUP group1;

ALTER TABLESPACE lmtemp TABLESPACE GROUP group2;

移出临时表空间组:
ALTER TABLESPACE lmtemp3 TABLESPACE GROUP '';
设置数据库默认临时表空间使用临时表空间组:
ALTER DATABASE sample DEFAULT TEMPORARY TABLESPACE group2;


创建一个非标准块的表空间,在创建之前必须先设置参数DB_nK_CACHE_SIZE。
CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K
    BLOCKSIZE 8K;

阅读(1054) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~