Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 表空间与数据文件

--==============================--Oracle 表空间与数据文件--==============================/*一、概念    表空间:是一个或多个数据文件的逻辑集合    表空间逻辑存储对象:永久段-->如表与索引                        临时段-->如临时表数据与排序段                     回滚段-->用于事物回滚或闪回内存的撤销数据    表空间分类:系统表空间(system、sysaux),非系统表空间        一个表空间至少包含一个数据文件,一个数据文件只能属于一个表空间。        不可或缺的几个表空间:    SYSTEM --->字典表空间,不能被损坏    UNDO    --->dml,dql把数据快照到此,数据提交即消失(用于恢复)    SYSAUX  --->10g 高并发系统繁忙时,会造成system争用,将工具放到SYSAUX,减轻system的压力,SYSAUX不影响系统(影响性能)    TEMP    --->临时数据相关的内容    USERS   --->10g  用户数据从system拨离出来        二、Oracle的存储结构    1.Schema: 用户--->创建相关对象、表、视图、序列、函数、存储过程、包等    2.逻辑结构:database数据库--->tablespace表空间---> segment段--->extent区间----> block块            逻辑结构是Oracle内部管理数据库中对象的方式    3.物理结构:OS  block --->datafile 物理结构通常是一系列数据文件    4.举例描述scott用户创建对象的组织方式 */    --查看scott用户的默认表空间及数据文件    SQL> select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE                                              2  from dba_users      3  where username = "SCOTT";     USERNAME                       DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE    ------------------------------ ------------------------------ ------------------------------    SCOTT                          USERS                          TEMP     SQL> col name format a50    SQL> select t1.name,t2.name   --查看表空间及数据文件      2  from v$tablespace t1,v$datafile t2      3  where t1.ts# = t2.ts#;     NAME                                               NAME    -------------------------------------------------- --------------------------------------------------    SYSTEM                                             /u01/app/oracle/oradata/orcl/system01.dbf    UNDOTBS1                                           /u01/app/oracle/oradata/orcl/undotbs01.dbf    SYSAUX                                             /u01/app/oracle/oradata/orcl/sysaux01.dbf    USERS                                              /u01/app/oracle/oradata/orcl/users01.dbf    EXAMPLE                                            /u01/app/oracle/oradata/orcl/example01.dbf /*    scott-->emp(table)-->数据定义(位于)-->system表空间                      数据(位于)  -->user表空间(逻辑存储)-->表段-->区间-->内存块                                                    -->索引段等-->区间-->内存块                                user表空间(物理存储)-->user01.dbf                                   -->采用本地管理,包含头部信息,可用、已用等位图信息                                       当databuffer缓冲区满则调用dbwr进程将数据写入到物理文件当中 */    /* 三、创建表空间     --简要语法:    CREATE [BIGFILE | SMALLFILE] [TEMPORARY] TABLESPACE tablespace name    DATAFILE datafile spec | TEMPFILE tempfile spec    [MINIMUM EXTENT minimum extent size]    [BLOCKSIZE blocksize]    [[COMPRESS|NOCOMPRESS] DEFAULT STORAGE (default storage clause)]    [LOGGING|NOLOGGING]    [FORCE LOGGING]    [ONLINE|OFFLINE]    [EXTENT MANAGEMENT DICTIONARY |    LOCAL [AUTOALLOCATE|UNIFORM SIZE size]]    [SEGMENT SPACE MANAGEMENT MANUAL|AUTO]    [FLASHBACK ON|OFF]        --创建表空间的条件    1.具有create tablespace的权限,DBA角色具有该权限,sysdba,sysoper    2.创建的是bigfiel ,还是smallifle  超过T 级别应考虑bigfile    3.新建的表空间的I/O,是否会导致磁盘I/O不够用    4.datafile后跟的路径应该具备写的权限  */        --查看缺省是BIGFILE 还是SMALLFILE,当缺省为SMALLFILE,创建表空间不指定表空间类型则为SMALLFILE    SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME like "%TBS%";     PROPERTY_NAME                  PROPERTY_VALUE    ------------------------------ --------------------------------------------------    DEFAULT_TBS_TYPE               SMALLFILE        --修改创建表空间为大或小表空间的默认值    SQL> alter database set default bigfile tablespace;     Database altered.     SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME like "%TBS%";     PROPERTY_NAME                  PROPERTY_VALUE    ------------------------------ --------------------------------------------------    DEFAULT_TBS_TYPE               BIGFILE        --改回为缺省值    SQL> alter database set default smallfile tablespace;     Database altered.        --建议创建表空间时最好带上[BIGFILE | SMALLFILE]参数,以免参数设置导致创建了不合理的表空间    /*    注意:    大表文件(bigfile)最大可以存放个T的容量。头文件的大小达到了G-->block,普通的头文件大小为M---->block。    create bigfile tablespace <> datafile <>........;       好处:减少了数据文件的个数,管理方便,大的对象的存放得到了优化。减少了control文件的信息,控制文件定义了datafile的个数。       bigfile只能存在一个数据文件,所以要保证分配的的磁盘具有足够的空间。 */           --演示创建表空间    SQL> create tablespace TBS1 datafile "/u01/app/oracle/oradata/orcl/tbs1.dbf" size 100m;     Tablespace created.     SQL> col name format a50           SQL> select t1.name,t2.name      2  from v$tablespace t1,v$datafile t2      3  where t1.ts# = t2.ts#;     NAME                                               NAME    -------------------------------------------------- --------------------------------------------------    SYSTEM                                             /u01/app/oracle/oradata/orcl/system01.dbf    UNDOTBS1                                           /u01/app/oracle/oradata/orcl/undotbs01.dbf    SYSAUX                                             /u01/app/oracle/oradata/orcl/sysaux01.dbf    USERS                                              /u01/app/oracle/oradata/orcl/users01.dbf    EXAMPLE                                            /u01/app/oracle/oradata/orcl/example01.dbf    TBS1                                               /u01/app/oracle/oradata/orcl/tbs1.dbf        /*    创建临时表空间:    创建临时表空间,不能使用非标准数据块,另临时表空间不能存放永久对象。*/    CREATE TMEPORARY TABLESPACE tablespace_name     TEMPFILE "..." SIZE n      CREATE TEMPORARY TABLESPACE T2 TEMPFILE "/opt/oracle/oradata/orcl/t2.dbf"     size 100m;    /*    临时表空间具有以下特征:       临时数据文件不能置为只读       临时数据文件不能重命名       监时数据文件的日志方式总是NOLOGGING           临时表空间扩容:*/    --(1)重置临时文件大小         alter database tempfile "/opt/oracle/oradata/orcl/t2.dbf" resize 150m;     --(2)让临时文件能自动扩展       alter database  tempfile "/opt/oracle/oradata/orcl/t2.dbf"        autoextend on next 10m maxsize 50m;     --(3)增加临时文件       alter tablespace t2 add tempfile "/disk8/oracle/t2b.dbf" size 50m;     --查看临时文件       select TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 "SIZE(MB)"        from dba_temp_files;     --默认临时表空间:        select * from database_properties;     --修改默认临时表空间:       ALTER DATABASE DEFAULT TEMPORARY TABLESPACE T2;       /*        默认临时表空间最好要指定一下,如果没有指定默认的临时表空间,那么将使用system表空间作为排       序区        默认临时表空间有一定的限制:           默认临时表空间不能删除           默认临时表空间不能脱机                获得创建表空间的语句:*/       SELECT dbms_metadata.get_ddl("TABLESPACE","SYSTEM") FROM dual;     /*    临时表空间组:       10G引入的,是一组临时表空间,只能由临时表空间组成。组名不能与临时表空间同名       临时表空间不能显示的创建和删除,当把第一个临时表空间分配给某个临时表空间组的时候,自动创建       临时表空间组,将最后一个临时表空间,删除时,组也将自动删除。      创建临时表空间组:       1、创建临时表空间的时候 */        CREATE TEMPORARY TABLESPACE tablespace_name TEMPFILE "..." SIZE n        TABLESPACE GROUP group_name;         ALTER TABLESPACE tablespace_name TABLESPACE GROUP group_name;           ALTER TABLESPACE T3 TABLESPACE GROUP TEMP_GRP;     --查看临时表空间组的信息:       dba_tablespace_groups        SELECT * FROM DBA_TABLESPACE_GROUPS;     --将临时表空间组成员移除:       ALTER TABLESPACE tablespace_name TABLESPACE GROUP "";     --可将系统默认的临时表空间设为临时表空间组:       ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name;     --删除临时表空间:       --将所有成员全移出去,便自动删除     --创建UNDO表空间(还原表空间):    /*    创建语法:*/       CREATE UNDO TABLESPACE tablespace_name DATAFILE "..." SIZE n     SQL> CREATE UNDO TABLESPACE undo2        DATAFILE "/opt/oracle/oradata/orcl/undo2_01.dbf" SIZE 200M,       "/opt/oracle/oradata/orcl/undo2_02.dbf" size 100m;     --修改当前系统的UNDO表空间:       ALTER SYSTEM SET UNDO_TABLESPACE=tablespace_name     /*      UNDO表空间扩容:       ()重置DATAFILE大小       ()让DATAFILE能AUTOEXTEND       ()添加数据文件     删除UNDO表空间 */       DROP TABLESPACE tablespace_name        /*       注:当前的UNDO表空间不能删除           系统只能使用一个UNDO表空间 */      --创建表空间的详细语法:http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_7003.htm#SQLRF01403                   /*
  • 1
  • 2
  • 3
  • 下一页
RMAN 还原与恢复Oracle 密码文件相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数