`
steadyman
  • 浏览: 9515 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

TableSpace的概念及创建

阅读更多
一、TableSpace管理准则
 
1、使用多个TableSpace
 
    * 用户数据与数据字典数据分离,减少竞争
    * 应用程序之间的数据分离,防止某个TableSpace脱机后对多个程序造成影响
    * 不同磁盘驱动器上存储数据,减少I/O竞争
    * 回滚段数据与用户数据分离,防止单磁盘故障造成数据永久丢失
    * 可以控制单个TableSpace脱机,提供更高的整体可用性
    * 为特定类型数据库使用保留TableSpace,可优化TableSpace的使用
    * 可以备份单独的TableSpace
 
2、指定表空间默认的存储参数
 
    为TableSpace设置合适的参数,下文中详细介绍。
 
3、为用户指定表空间限额
 
    可以有效控制TableSpace的大小,限制用户权限防止发生意外。
 
 
 
二、创建TableSpace
 
 
1、创建本地管理TableSpace
 
    Oracle创建的TableSpace默认均是本地管理的,明确的表述应该是:
    在CREATE TABLESPACE 语句中 EXTENT MANAGEMENT 子句中指定 LOCAL
 
    然后可以用 AUTOALLOCATE 选项(默认)来使Oracle自动管理盘区
    CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
 
    也可以使用一个指定大小(UNIFORM SIZE)的同意盘区来管理该TableSpace
    CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
 
    如果未指定盘区大小,则默认为1M,说明数据文件至少要大于1MB
 
    注:如果TableSpace被期望用于包含需要不同盘区大小和拥有很多盘区的大小变动的对象,那选择AUTOALLOCATE是最好的选择。AUTOALLOCATE是一种管理TableSpace的简便方法,只是有可能会对一些空间造成浪费。如果需要准确控制未用空间,并能够精确预计为一个或多个对象要非配的空间和盘区大小,那就可以使用UNIFORM。
 
2、在本地管理TableSpace中指定段空间管理
 
    可使用 SEGMENT SPACE MANAGEMENT子句来设置端控件的管理模式,有以下几种模式:
 
    MANUAL(默认):使用段中管理空闲空间的空闲列表。
    AUTO:使用位图来管理段中的空闲空间。又称为自动段空间管理。
 
    AUTO立功了一种更加简单、有效的管理方法,完全消除了为表空间中创建的段指定和调整PCTUSED、FREELISTS、FREELISTS GROUPS属性的任何必要。
 
    CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M
    EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
 
    注:LOB类型不能指定自动段空间管理。
 
3、修改本地管理TableSpace
 
    * 不能讲本地管理TableSpace改为本地管理的temp TableSpace
    * 不能改变TableSpace的段空间管理办法
    * 本地管理TableSpace没有必要合并空闲盘区
 
    * 可以添加数据文件
    * 可以改变TableSpace状态(ONLINE/OFFLINE)
    * 修改TableSpace为只读or只写
    * rename数据文件
    * 启用/禁用该TableSpace数据文件的自动盘区大小
 
4、创建字典管理的TableSpace
 
    CREATE TABLESPACE tbsb
    DATAFILE '/u02/oracle/data/tbsb01.dbf' SIZE 50M
    EXTENT MANAGEMENT DICTIONARY
    DEFAULT STORAGE (
    INITIAL 50K
    NEXT 50K
    MINEXTENTS 2
    MAXEXTENTS 50
    PCTINCREASE 0);
 
    使用ALTER TABLESPACE语句可以进行以下操作:
 
    * 添加一个新的文件
    * 改变默认的存储参数
    * 合并TableSpace的空闲空间
    * 可以改变TableSpace状态(ONLINE/OFFLINE)
    * 修改TableSpace为只读or只写
    * rename数据文件
    * 启用/禁用该TableSpace数据文件的自动盘区大小
 
5、临时表空间
 
    临时表空间主要用于提高多个排序操作的并发能力、减小开销,或避免Oracle空间管理操作在一起进行。临时表空间创建之后,可以被多个用户共享。
    一个给定实例和表空间的所有排序操作共享一个单一的排序段。即排序段为一个给定表空间的每个执行排序操作的实例而存在。
    排序段由使用临时表空间用于排序的第一个语句创建,并在关闭时释放,一个盘区不能被多个事务共享
 
    可以使用V$SORT_SEGMENT视图来查看临时表空间排序段的空间分配和回收情况
    用V$SORT_USAGE视图查看这些段的当前排序用户
 
    注:临时表空间中不能创建明确对象。
 
6、创建本地管理的临时表空间
 
    CREATE TEMPORARY TABLESPACE lmtemp TEMPFILE '/u02/oracle/data/lmtemp01.dbf' SIZE 20M REUSE
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;
 
    注1:临时数据文件信息查询与数据文件不同,需要查询V$TEMPFILEDBA_TEMP_FILES,但结构与V$DATAFILEDBA_DATA_FILES类似。
    注2:临时表空间在初次使用时才分配空间,可以更快创建和修改大小,但要注意磁盘大小。
 
7、本地管理临时表空间的修改
 
    * 添加临时文件
    ALTER TABLESPACE lmtemp ADD TEMPFILE '/u02/oracle/data/lmtemp02.dbf' SIZE 20M REUSE;
 
    * 改变临时文件状态
    ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' ONLINE|OFFLINE;
 
    * 更改临时文件大小
    ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' RESIZE 4M;
 
    * 取消临时文件并删除相应操作系统文件
    ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' DROP
    INCLUDING DATAFILES;
 
8、创建字典管理的临时表空间
 
    CREATE TABLESPACE sort
    DATAFILE '/u02/oracle/data/sort01.dbf' SIZE 50M
    DEFAULT STORAGE (
    INITIAL 2M
    NEXT 2M
    MINEXTENTS 1
    PCTINCREASE 0)
    EXTENT MANAGEMENT DICTIONARY
    TEMPORARY;
 
    注1:不能以这种方式创建EXTENT MANAGEMENT LOCAL的临时表空间。
    注2:可以使用ALTER TABLESPACE tbsa TEMPORARY;语句将一个现有的字典管理永久表空间改为临时表空间。
分享到:
评论

相关推荐

    最全的oracle常用命令大全.txt

    如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句: SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES'; 依此类推,就可以轻松知道数据字典的详细...

    orcale常用命令

    如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句: SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES'; 依此类推,就可以轻松知道数据字典的详细...

    Oracle自学(学习)材料 (共18章 偏理论一点)

    ALTER TABLESPACE 8-25 为表空间的创建设置 ORACLE 管理文件(OMF) 8-27 使用 OMF 创建表空间 8-28 获得表空间的信息 8-29 小结 8-29 9 储存结构与关系 目标 9-2 概述 9-3 段的类型 9-4 储存子句的优先次序 9-7 片的...

    Oracle8i_9i数据库基础

    §1.2.2 数据字典概念 25 §1.3 SQL、SQL*Plus及 PL/SQL 25 §1.3.1 SQL和SQL*PLUS的差别 25 §1.3.2 PL/SQL语言 27 §1.4 登录到SQL*PLUS 27 §1.4.1 UNIX环境 27 §1.4.2 Windows NT和WINDOWS/2000环境 29 §1.5 ...

    SQL培训第一期

    1.1 基本概念 结构化查询语言(Structured Query Language)简称SQL,是一种关系数据库查询语言,用于存取数据以及查询、更新和管理关系数据库系统。 1.2 语句结构 1.2.1 数据查询语言(DQL) 对数据库进行的信息查询...

    oracle 12c 数据库 教程

    一个表空间(tablespace)由一组段组成 8 Tablespaces(表空间) 8 system sysaux temp undo 8 Segments (段) 8 extents (区) 8 Data Block (数据块) 8 3. 进程结构 9 ...

    Toad 使用快速入门

    从网络服务器读取Toad程序,在本地计算机安装一些自定义的文件,并且创建到服务器文件的快捷方式,一般不推荐使用这个方式,而且要求网络服务器已经配置。 c) TOAD to Network Server 把Toad安装到网络服务器上,...

    精髓Oralcle讲课笔记

    -- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unlock; ... --(默认全局数据库名orcl) 1、select ename, sal * 12 from ...

    Oracle从入门到精通

    1.1、基本概念:........................................... 1.2、数据库安全:......................................... 1.3、基本的SQL SELECT 语句................................ 1.4、SELECT语句...........

    oracle从入门到精通

    1.1、基本概念: ...................................................................................................................................8 1.2、数据库安全 : ..............................

Global site tag (gtag.js) - Google Analytics