zoukankan      html  css  js  c++  java
  • 【Oracle 】tablespace 表空间创建和管理

    1.表空间的概述

    1. 表空间是数据库的逻辑组成部分。
    2. 从物理上讲,数据库数据存放在数据文件中;  
    3. 从逻辑上讲,数据库是存放在表空间中,表空间由一个或者多个数据文件组成。

    2.oracle的逻辑组成

    1.oracle 的逻辑结构包含 表 空间 段 区 块  
    2.数据库是由表空间构成,表空间又是有段构成,段是由区构成,区是由 oracle的块构成,这样做是为了提高数据库的效率  
    3.作用  
                 A.控制数据库占用的磁盘空间   
                 B dba 可以将不同数据类型部署到不同的位置,这样 有利于i/0的性能,同时利于备份和恢复等管理  


    3.查询Oracle的表空间

    select tablespace_name from dba_tablespaces;  


    4.创建表空间的语法和步骤

    1.创建表空间采用create tablespace命令完成  
    2.需要注意的是一般情况下,建立表空间,是特权用户和dba来执行的。如果其他用户要创建必须要有 create tablespace 的系统权限 


    5.案例: 创建一个表空间

    create tablespace  data01 datafile 'd:	estdata01.dbf' size  20m uniform size 128k;
    // 说明:创建一个名称为 data01 的表空间,并为该表空间建立一个名称为data.01.dbf的数据文件,区的大小为128k

    上面是关联一个数据文件,下面是关联两个数据文件

    create tablespace data02 datafile 'd:	estdata021.dbf' size 20m,'d:	estdata022.dbf' size 20m uniform size 128k; 


    6.案例: 使用自定义的表空间

    create table mydept(deptno number(4),dname varchar2(14),loc varchar2(13)) tablespace data01;
    //如果不指定表空间,就默认放在 SYSTEM 表空间下
     
    create table emp(empno,ename) tablespace data01 as select empno,ename from scott.emp;
    //利用其他方案的表创建自己的表后放在自定义表空间下  

    7.什么是表空间的状态

    当建立表空间的时候,表空间处于联机的(online)状态,此时表空间是可以访问的,并且是可以读写,既可以在表空间上执行各种语句。
    但是在进行系统维护或者数据维护的时候,可能需要改变表空间的状态(脱机,联机,只读)。 一般由特权用户和dba来操作  

    8.表空间脱机

    alter tablespace 表空间名 offline;  


    9.使表空间联机

    alter tablespace 表空间名 online;  


    10.只读表空间

    alter tablespace 表空间 read only;
    // 当建立表空间时,表空间可以读写,如果不希望在表空间上执行update ,delete ,insert 操作,那么可以将表空间修改为只读  


    11.改为读写表空间

    alter tablespace tbs001 read write;  

    12.显示表空间中的所有表

    select * from user_tables where TABLESPACE_NAME='DATA01';
    //个人发现在oralce系统中 系统表 或者 视图 是区分大写)  

    13.查看某表所在的表空间 (知道表名)

    select tablespace_name,table_name from user_tables where table_name='EMP';

    14.删除表空间

    drop tablespace DATA01 including contents and datafiles;
    // 说明: including contents 表示删除表空间时候,删除该表空间的所有数据对象,而datafiles 表示将数据库文件也删除。  


    15. 扩展表空间 oralce 有3中方法

    1.添加数据文件  alter tablespace TBS001 add datafile 'd:	bs002.dbf' size 20m;  
    2.增加数据文件的大小 alter database datafile 'd:	bs001.dbf' resize 20m;  
    3.设置自动增长 alter database datafile 'd:	bs002.dbf' autoextend on next 10m maxsize 500m; //9i前每个数据文件是有大小的.之后的版本有人说没有大小限制(取决自己磁盘) 


    16.移动数据文件(处理磁盘损坏的时候,将数据文件进行迁移)

    1.找出数据文件对应的 表空间  
        select tablespace_name from dba_data_files where file_name='D:TBS001.DBF';  
    2.使表空间脱机 确保数据文件的一致性  
        alter tablespacce tbs001 offline;  
    3.使用命令移动数据文件到指定的目标位置 (sqlplus中能成功,PL/Sql中不能成功 应是我不知道)  
        host move d:	bs001.dbf c:	bs001.dbf;  
    4.修改表空间对应的数据文体 为新磁盘下的数据文件  
        alter tablespace TBS001 rename datafile 'D:TBS001.DBF' to 'E:TBS001.DBF';  
    5.使表空间联机  
        alter tablespace TBS001 online;  


    17.查询表空间的信息

    select * from dba_tablespaces;  


    18.查询表空间的所有的数据文件

    select file_name,bytes from dba_data_files where tablesapce_name='TBS001  


    19.表空间的状态

    offline,online, read only, read write;  


    20.其他常用的表空间

    1.索引表空间  
    2.undo表空间  
    3.临时表空间  
    4.非标准块的表空间  

    有时候我们在建表的时候,会遇到如下的命令:

    create table X_SMALL_AREA
    (
    SMALL_AREA_ID NUMBER(10) not null
    )
    tablespace TBSL_SDDQ --表段X_SMALL_AREA放在表空间TBSL_SDDQ中
    pctfree 10 --块保留10%的空间留给更新该块数据使用
    initrans 1 --初始化事务槽的个数
    maxtrans 255 --最大事务槽的个数
    storage --存储参数
    (
    initial 64k --区段(extent)一次扩展64k
    minextents 1 --最小区段数
    maxextents unlimited --最大区段无限制
    );

    关于pctfree的相关知识,可以查看文章“oracle pctfree和pctused详解

    原文链接:Oracle tablespace 表空间创建和管理

  • 相关阅读:
    SqlServer 查看数据库中所有存储过程
    SqlServer 查看数据库中所有视图
    SqlServer 查询表的详细信息
    SqlServer 遍历修改字段长度
    net core 操作Redis
    Tuning SharePoint Workflow Engine
    Open With Explorer
    Download language packs for SharePoint 2013
    Change Maximum Size For SharePoint List Template when Saving
    Six ways to store settings in SharePoint
  • 原文地址:https://www.cnblogs.com/HDK2016/p/7121167.html
Copyright © 2011-2022 走看看