zoukankan      html  css  js  c++  java
  • 数据库逻辑体系(1)--- 表空间

    1. 定义
    是一种层次结构,主要由表空间、段、区、块组成,面向用户的
    逻辑结构由大到小:表空间、段、区、块
    2. 表空间(Tablespace)
    五大表空间:SYSTEM SYSAUX TEMP UNDOTBS1 USERS
    查看表空间的数据字典: v$tablespace dba_tablespaces
    SQL> select tablespace_name,contents from dba_tablespaces;

    TABLESPACE_NAME CONTENTS
    ---------------        ---------------
    SYSTEM        PERMANENT
    SYSAUX        PERMANENT
    UNDOTBS1                UNDO
    TEMP            TEMPORARY
    USERS          PERMANENT
    TEST             PERMANENT
    SQL> select tablespace_name,contents,EXTENT_MANAGEMENT,SEGMENT_SPACE_MANAGEMENT from dba_tablespaces;

    TABLESPACE_NAME CONTENTS EXTENT_MANAGEMENT SEGMENT_SPACE_MANAGEMENT
    ---------------       --------------- --------------------       -------------------------
    SYSTEM        PERMANENT LOCAL            MANUAL
    SYSAUX        PERMANENT LOCAL            AUTO
    UNDOTBS1        UNDO LOCAL                     MANUAL
    TEMP            TEMPORARY LOCAL                                      MANUAL
    USERS               PERMANENT LOCAL                 AUTO
    TEST             PERMANENT LOCAL                 AUTO
    3. 分类
    PREMENENT 永久表空间
    UNDO 撤销表空间
    TEMPORARY 临时表空间
    4. 表空间和表的关系
    表空间和数据文件的关系:表空间的大小是所有数据文件大小的总和。
    SYS用户下创建的表,默认表空间是SYSTEM表空间
    SYS用户下创建的用户,默认表空间是USERS表空间
    创建表,指定默认表空间时 后面不需要加 DEFAULT,创建用户指定默认表空间时才用 default
    如果用户占用的是XXX(自定义表空间)表空间,则该用户创建的表,占用的表空间也是XXX表空间
    可以理解为:表是存放在表空间下的.dbf数据文件中
    5. 获取创建表空间/表的语句

    SQL> set serverout on
    SQL> declare a varchar2(1000); begin select dbms_metadata.get_ddl('TABLESPACE','TEST') into a from dual; dbms_output.put_line(a);
    2 end;
    3 /

    CREATE TABLESPACE "TEST" DATAFILE
    '/u01/app/oracle/oradata/OCP12C/ERP/test01.dbf' SIZE 5242880
    LOGGING ONLINE PERMANENT BLOCKSIZE 8192
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT


    NOCOMPRESS SEGMENT SPACE MANAGEMENT AUTO

    PL/SQL procedure successfully completed.

    SQL>
    6. 解决表空间不足的三种方法:(背过)
    修改原有数据文件大小:alter database datafile '/xx/xx/xx/temp.dbf' resize 10m;
    增加数据文件:alter tablespace temp add datafile '/xx/xx/xx/temp1.dbf' size 5m;
    设置表空间自动增长:alter database datafile '/xx/xx/xx/temp.dbf' autoextend next 10m maxsize 50m;
    7. 表空间的删除
    SQL> drop tablespace test including contents and datafiles;------删除整个test表空间及下面的数据文件
    SQL> alter tablespace test drop datafile ' xx/xx/xx/test01.dbf';-------删除test 表空间里的某个单独(如果有多个)的数据文件
    注意:
    数据库在OPEN状态下无法删除,SYSTEM,ACTIVE UNDO,DEFAULT TEMPORARY ,DEFAULT TABLESPACE表空间。
    数据库在OPEN状态下不能OFFLINE SYSTEM,ACTIVE UNDO,DEFAULT TEMPORARY
    大文件表空间(big file):有且只能有一个数据文件
    小文件表空间(small file):默认缺省。理论上小文件表空间和大文件表空间总容量是一致的。
    8. 临时表空间
    作用:用来排序
    可以建立多个临时表空间,但默认的临时表空间只能有一个,且不能offline和drop
    数据字典:dba_tablespaces,database_properties,dba_temp_files,v$tempfile ,dba_teblespace_groups
    创建、添加文件与删除
    创建:create temporary tablespace temp1 tempfile 'xxxxxx/xxx/xxx/temp1_1.dbf' size 10m;
    添加:alter tablespace temp1 add tempfile 'xxxxxx/xxx/xxx/temp1_2.dbf' size 10m;
    删除:alter tablespace temp1 drop tempfile 'xxxxxx/xxx/xxx/temp1_2.dbf' size 10m; 物理文件被删除后,重启系统会再次自动创建切换
    临时表空间删除后,不会自动使用默认
    手工切换:alter database default temporary tablespace temp1;
    9. 临时表空间组
    临时表空间组无法显式创建,组是通过第一个临时表空间分配时自动创建;alter tablespace temp1 tablespace group tmpgrp
    将临时表空间组设置成默认临时表空间,实现负载均衡
    要移除临时表空间组时,该组不能是缺省的临时表空间
    当组内所有的临时表空间被移除后,组也就自动删除

  • 相关阅读:
    在网页上下载文件
    sql server 分离附加
    在vue中,ref属性与$refs对象的区别
    在ES6中,export default 和 export的区别
    element-ui之Table表格el-table标签
    element-ui之Form表单el-form标签
    使用Mybatis-Generator自动生成Dao,Entity,Mapping
    linux下普通用户与root的切换
    idea插件将下划线转驼峰形式
    利用wsdl2java工具生成webservice的客户端代码
  • 原文地址:https://www.cnblogs.com/eniniemand/p/14071250.html
Copyright © 2011-2022 走看看