当前位置:  数据库>oracle

Oracle 表空间——简单管理永久表空间

    来源: 互联网  发布时间:2017-05-02

    本文导语: 本文内容 创建表空间 查看表空间 修改表空间可用性/可读写性 删除表空间 假设数据库为 Oracle 11g,在 SQL *PLUS 下,用 SYS 用户登录。本文演示创建(永久)表空间,之后,查看表空间信息,再修改表空间的配置,最后,删...

本文内容
  • 创建表空间
  • 查看表空间
  • 修改表空间可用性/可读写性
  • 删除表空间

假设数据库为 Oracle 11g,在 SQL *PLUS 下,用 SYS 用户登录。本文演示创建(永久)表空间,之后,查看表空间信息,再修改表空间的配置,最后,删除表空间。

 

创建表空间

Oracle 按照区和段空间进行管理表空间。

区管理方式 - 针对区的分配方式的不同,有两种方式:字典管理方式(dictionary-managed tablespace,DMT)和本地管理方式(local-managed tablespace,LMT)。Oracle 10g开始强烈建议使用 LMT 方式。从 Oracle 9i 开始,创建表空间时默认使用 LMT。

其中,LMT 区的分配方式:

  • 统一(UNIFORM)- 统一分配。指定表空间中所有区的大小都相同。默认值是 1MB。
  • 自动(AUTOALLOCATE 或 SYSTEM)- 自动分配。指定有 Oracle 系统来自动管理区的大小。这是默认设置。

段管理方式 – LMT 方式,除了可以指定区的分配方式外,还可以指定段的管理方式。段空间管理方式主要是指 Oracle 用来管理段中已用数据块和空闲数据块的机制。分为两种:

  • 手动(MANUAL)- Oracle 将使用空闲列表(free list)管理段的已用数据块和空闲数据块。这是传统的段空间管理方式,为了与以前的版本兼容。
  • 自动(AUTO)- Oracle 将使用位图(bitmap)来管理段的已用数据块和空闲数据块。通过位图中单元的取值判断段中的数据块是否可用。

字典管理方式不存在段管理。

下面示例演示用本地管理方式创建表空间。

示例 1:使用 AUTOALLOCATE 区分配方式创建表空间 mytbs01,数据文件是 D:oracledatamytbs01_1.dbf,大小为 2M。

create tablespace mytbs01
datafile 'D:oracledatamytbs01_1.dbf' size 2M
autoallocate;

示例 2:使用 UNIFORM 区分配方式创建表空间 mytbs02,数据文件是 D:oracledatamytbs02_1.dbf 和 D:oracledatamytbs02_2.dbf,有两个文件,大小分别为 1M 和 2M。

create tablespace mytbs02
datafile 'D:oracledatamytbs02_1.dbf' size 1M,
         'D:oracledatamytbs02_2.dbf' size 2M
uniform size 128k;

示例 3:创建表空间 mytbs03,并指定数据文件扩展方式为自动增长,每次 1M,最大扩展到 11M。

create tablespace mytbs03
datafile 'D:oracledatamytbs03_1.dbf' size 1M
autoextend on next 2M maxsize 11M;

此时,就不能再指定 UNIFORM。

示例 4:使用 AUTO 段管理方式。创建表空间 mytbs04,采用 UNIFORM 区分配管理方式,大小为默认值;用 segment space management 指定段管理方式。

create tablespace mytbs04
datafile 'D:oracledatamytbs04_1.dbf' size 3M reuse
uniform
segment space management auto;

 

查看表空间

可以通过下面 Oracle 系统表查看上面创建的表空间的相关信息。

  • dba_tablespaces - 数据库表空间管理信息。
  • dba_data_files - 数据库表空间文件管理信息。
  • dba_free_space - 数据库表空间文件使用信息。

示例 5:表空间使用情况,包括表空间名称、DBF 文件个数、总大小、剩余/占用大小等等。

select a.tablespace_name as "表空间名称",
       c.pieces as "DBF文件个数",
       a.totalspace || 'M' as "总大小",
       b.freespace || 'M' as "剩余大小",
       a.totalspace - nvl(b.freespace, 0) || 'M' as "占用大小",
       c.max_blocks as "最大块",
       c.min_blocks as "最小块",
       c.avg_blocks as "平均块",
       c.sum_blocks as "块总数"
  from (select t1.tablespace_name, sum(t1.bytes) / 1024 / 1024 as totalspace
          from dba_data_files t1
         group by t1.tablespace_name) a,
       (select t2.tablespace_name, sum(t2.bytes) / 1024 / 1024 as freespace
          from dba_free_space t2
         group by t2.tablespace_name) b,
       (select t.tablespace_name,
               count(*) as pieces,
               max(t.blocks) as max_blocks,
               min(t.blocks) as min_blocks,
               avg(t.blocks) as avg_blocks,
               sum(t.blocks) as sum_blocks
          from dba_free_space t
         group by t.tablespace_name) c
 where a.tablespace_name = b.tablespace_name
   and b.tablespace_name = c.tablespace_name

示例 6:表空间信息参看,包括表空间名称、路径、类型、管理方式、区管理方式、段管理方式和是否自动增长。

select t1.tablespace_name          as "表空间名称",
       t2.file_name                as "文件名",
       t1.contents                 as "类型",
       t1.extent_management        as "管理方式",
       t1.allocation_type          as "区管理方式",
       t1.segment_space_management as "段管理方式",
       t2.autoextensible           as "是否自动扩展",
       t1.status                   as "是否联机"
  from dba_tablespaces t1, dba_data_files t2
 where t1.tablespace_name = t2.tablespace_name

 


    
 
 

您可能感兴趣的文章:

  • Oracle中serveroutput参数一次设置永久保存方法
  • oracle查看表空间已分配和未分配空间的语句分享
  • Oracle数据库手工扩大表空间的方法 iis7站长之家
  • oracle 创建表空间步骤代码
  • oracle增加表空间大小两种实现方法
  • RedHat8上解压Oracle9磁盘丢失磁盘空间,请大虾帮忙!
  • ORACLE数据库空间整理心得
  • oracle9i 在 redhat7.3 上安装临时目录空间不够.
  • Oracle 10g创建表空间和用户并指定权限
  • Linux下Oracle传输表空间高手支招
  • Oracle释放undo表空间
  • oracle 创建表空间详细介绍
  • 在linux下装oracle9i到了最后时候,提示/tmp空间不够了,怎么增加,谢谢!
  • 查看修改Oracle10G归档日志空间的限制
  • [小技巧]手工扩大Oracle数据库表空间的方法
  • Oracle回滚段空间回收步骤
  • Oracle数据库手工扩大表空间的方法
  • Oracle tablespace表空间调整
  • 新手求助:RedHat安装oracle 11g 检测空间不足
  • Oracle安装过程中物理内存检查及临时temp空间不足问题解决
  • Oracle 10g表空间创建的完整步骤
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助:oracle9在redhat9上安装好后,oracle管理工具会在菜单工具栏上显示吗?
  • Oracle自动存储管理支持库 ASMLib
  • Oracle ASM自动管理存储管理简介
  • windows上要装什么软件才能管理到linux上的oracle?
  • 在HP Unix 下Oracle的控制和管理
  • 用Oracle管理服务器将数据导入与导出
  • Oracle管理工具 phpOraAdmin
  • Linux上管理本机Oracle的时候出现找不到ServiceName的错误
  • 有谁知道Oracle8的数据库管理工具是用什么开发工具编写的?
  • 甲骨文新推Oracle Linux管理软件包
  • oracle区管理和段空间管理详细介绍
  • Oracle 管理Undo数据
  • 关于Oracle数据库管理员认证方法简述
  • Oracle 权限管理入门
  • Oracle使用配置文件创建口令管理策略
  • Oracle中Datafiles的管理
  • Oracle 9i中自动撤销管理的优点分析
  • Oracle帐户管理
  • Oracle数据库安全性管理基本措施实例解析
  • Oracle 数据库管理脚本命名规范
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,