zoukankan      html  css  js  c++  java
  • Oracle中的表空间

    一、表空间和表概述
    ORACLE物理上是由磁盘上的以下几种文件:数据文件控制文件LOGFILE构成的
    oracle中的表就是一张存储数据的表。表空间是逻辑上的划分,方便管理的。
    数据表空间(Tablespace):存放数据总是需要空间,Oracle把一个数据库按功能划分若干空间来保存数据。当然数据存放在磁盘最终是以文件形式,所以一盘一个数据表空间包含一个以上的物理文件。
    数据表:在仓库,我们可能有多间房子,每个房子又有多个货架,每架又有多层。 我们在数据库中存放数据,最终是数据表的单元来存储与管理的。
    数据文件:以上几个概念都是逻辑上的,而数据文件则是物理上的。就是说,数据文件是真正“看得着的东西”,它在磁盘上以一个真实的文件体现。

    创建表空间和表的步骤:
    (1)、创建表空间:
    格式: create tablespace 表空间名 datafile '数据文件名' size 表空间大小
    如:
    create tablespace data_test datafile 'e:oracleoradata estdata_1.dbf' size 2000M;
    create tablespace idx_test datafile 'e:oracleoradata estidx_1.dbf' size 2000M;
    --数据文件名 包含全路径, 表空间大小2000M表是2000兆
    (2)、建好tablespace, 就可以建用户了
    格式: create user 用户名 identified by 密码 default tablespace 表空间名
    如:
    create user study identified by study default tablespace data_test;
    --我们创建一个用户名为 study,密码为 study, 缺省表空间为 data_test
    --缺省表空间表示用户study今后的数据如果没有专门指出,其数据就保存在 data_test中,也就是保存在对应的物理文件 e:oracleoradata estdata_1.dbf中

    创建用户并指定表空间
    CREATE USER cici IDENTIFIED BY cici
    PROFILE DEFAULT
    DEFAULT TABLESPACE CICI ACCOUNT UNLOCK;

    create user jykl identified by jykl
    default tablespace jykl_data
    temporary tablespace jykl_temp;

    授权给新用户
    GRANT connect, resource TO cici;
    grant create session to cici;
    (3)、授权给新用户
    grant connect,resource to study;
    --表示把 connect,resource权限授予study用户
    grant dba to study;
    --表示把 dba权限授予给 study
    (4)、创建数据表
    在上面,我们已建好了用户 study 我们现在进入该用户
    sqlplusw study/study@test 然后就可以在用户study中创建数据表了
    格式: create table 数据表名

    二、表空间详解
    1、建立表空间
    CREATE TABLESPACE data01
    DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M
    UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k
    2、建立UNDO表空间
    CREATE UNDO TABLESPACE UNDOTBS02
    DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M
    #注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间:
    ALTER SYSTEM SET undo_tablespace=UNDOTBS02;
    3、建立临时表空间
    CREATE TEMPORARY TABLESPACE temp_data
    TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M
    4、改变表空间状态
    (1)使表空间脱机
    ALTER TABLESPACE game OFFLINE;
    如果是意外删除了数据文件,则必须带有RECOVER选项:
    ALTER TABLESPACE game OFFLINE FOR RECOVER;
    (2)使表空间联机
    ALTER TABLESPACE game ONLINE;
    (3)使数据文件脱机
    ALTER DATABASE DATAFILE 3 OFFLINE;
    (4)使数据文件联机
    ALTER DATABASE DATAFILE 3 ONLINE;
    (5)使表空间只读
    ALTER TABLESPACE game READ ONLY;
    (6)使表空间可读写
    ALTER TABLESPACE game READ WRITE;
    5、删除表空间
    DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
    6、扩展表空间
    (1)首先查看表空间的名字和所属文件
    select tablespace_name, file_id, file_name,
    round(bytes/(1024*1024),0) total_space
    from dba_data_files
    order by tablespace_name;
    (2)表空间扩容
    方法1:增加数据文件
    ALTER TABLESPACE game
    ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;
    方法2:手动增加数据文件尺寸:
    ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
    RESIZE 4000M;
    方法3:设定数据文件自动扩展
    ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
    AUTOEXTEND ON NEXT 100M
    MAXSIZE 10000M;
    (3)设定后查看表空间信息
    SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,
    (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"
    FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C
    WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE

    转自:https://www.cnblogs.com/kkxwze/articles/10794544.html

  • 相关阅读:
    Flutter——Text组件(文字组件)
    Dart的导包
    Dart 面向对象 类 方法
    Dart中的匿名方法与自执行方法
    Dart的List比较特殊的几个API
    SearchView监听关闭正确方案
    Android选择多图上传
    ListView嵌套ScrollView会出现的问题
    禁用ViewPager的滑动事件
    SQLite相关异常
  • 原文地址:https://www.cnblogs.com/shujk/p/12493493.html
Copyright © 2011-2022 走看看