`

oracle表空间

    博客分类:
  • db
 
阅读更多
1:数据字典管理管理的表空间与本地管理的表空间
2:查询系统的所有表空间
SQL:
方法一:

select dbf.tablespace_name,
dbf.totalspace "总量(M)",
dbf.totalblocks as 总块数,
dfs.freespace "剩余总量(M)",
dfs.freeblocks "剩余块数",
(dfs.freespace / dbf.totalspace) * 100 "空闲比例"
from (select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name)

方法二:

SELECT Total.name "Tablespace Name",
Free_space, (total_space-Free_space) Used_space, total_space
FROM
(select tablespace_name, sum(bytes/1024/1024) Free_Space
from sys.dba_free_space
group by tablespace_name
) Free,
(select b.name, sum(bytes/1024/1024) TOTAL_SPACE
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by b.name
) Total
WHERE Free.Tablespace_name = Total.name
3:表空间可以按4种方式分类

一、按数据文件的类型,分为:

大文件表空间(bigfile tablespace)此为10g新增功能
小文件表空间(smallfile tablespace)此为创建时默认值

大文件表空间的优点有:

1、在一个表空间里只有一个大的数据文件,以后不需要再去管理数据文件;
2、一个大的数据文件相当于1024个小的数据文件,这样一来,在一个块大小为32K时,整个数据库可以达到(4g*32K)128TB,不过在实际环境中还是要受到操作系统的影响;
3、使用一个大的数据文件可以代替多个小数据文件,这样对数据文件的管理就少多了;
4、当打开数据库,发生检查点,执行DBWR进程时使用大文件表空间会增强性能。

大文件表空间的的需要注意有:

1、要使用在ORACLE的ASM(自动存储管理)的存储空间或者分散(striping)存储的LVM中,或者RAID阵列上;
2、不要把大文件表空间建立在不能分散(striping)存储的系统上;
3、不要把大文件表空间建立在没有空间(剩余空间少)的磁盘组上;
4、建立大文件表空间时不推荐建立在不能扩展的存储空间里;
5、大文件表空间只支持本地管理表空间(LMT)和本地段空间管理(ASSM);
6、在临时表空间与回滚段表空间,只能用手动段空间管理;
7、自动扩展数据文件必须是起用的,而且最大文件大小必须是不限制;
8、系统表空间和系统辅助(SYSAUX)表空间不能使用大文件表空间;
9、每个表空间只能包含一个数据文件。如果试图添加新的文件,则会报告 ora-32771 错误;
10、在 bft 上存储的表的 rowid 和 smallfile 表空间上的 rowid 结构有些不同的。要正确得到 rowid 信息,dbms_rowid 包增加了一个新的参数 ts_type_in 来解决这个问题。参考这个范例:

sql> select dbms_rowid.rowid_block_number (rowid, bigfile) 2 from foo;
dbms_rowid.rowid_block_number(rowid,bigfile)
----------------------------------------------
24
sql>

二、按管理方式,分为:

本地管理表空间(LMT)
数据字典管理表空间(DMT)

本地管理表空间:
  一种比较先进的管理扩展(extent)的方式;
  是用bitmap来管理表空间里的所有的extent;
  当使用本地管理表空间时是使用6个块(从第三个到第八个)来标识整个表空间里的每一个扩展(extent);
  其中的每一位(bit)来表示每个扩展的状态。1为已被分配,0为可被分配。
  在本地管理表空间的方式里可以选择每个extent的大小是固定(Uniform)的或是自动的:在自动管理,系统一般是刚开始一个extent8个block,然后逐渐增加;固定大小为每个extent都是固定大小的,推荐使用。

字典管理表空间:这种方式是为了与之前版本兼容而提供的。不推荐使用。

10G里是不能创建字典管理表空间的,被强制推荐,只能倒入老版本中的字典管理表空间。

三、按使用类型,分为:

永久段表空间()
临时段表空间()
回滚段表空间()

永久表空间:
  一般存储数据的表空间;
  系统表空间,普通用户使用的表空间都为永久表空间;
  永久表空间的状态有三种:读写,只读,脱机;
  只有在永久表空间,才能配置ASSM管理模式;
  可以设置记录日志模式。建立选yes,以便数据库出问题后进行恢复;
  以设置为系统默认表空间。这样,创建用户时,没有指定默认表空间,就自动设置为系统默认表空间;
  设置默认表空间的命令:

  ALTER DATABASE DEFAULT TABLESPACE <TABLESPACE_NAME>;

临时表空间:
  一般用来排序和创建索引时使用;
  临时表空间里不存放实际的数据,所以,即使出了问题,也不需要恢复,而且,也不需要备份,因此也不需要记录日志;
  临时表空间只能使是读写模式,而且只能为手动管理段空间模式;
  可以设置为系统默认临时表空间。这样,创建用户时,没有指定默认临时表空间,就自动设置为系统默认临时表空间,命令如下:

  ALTER DATABASE DEFAULT TEMPORARY TABLESPACE <TABLESPACE_NAME>;

回滚段表空间:
  用来存放修改中数据的原数据;
  回滚段表空间是用来保证数据读一致性的;


四、在永久表空间中按存储内容方式,分为:

系统表空间(SYSTEM TABLESPACE)
系统辅助表空间(SYSAUX TABLESPACE)
非系统表空间
-----------------------------------------------------------------------------------
space quota exceeded for tablespace(表空间不足) .
2009-02-27 14:50 562人阅读 评论(0) 收藏 举报
space quota exceeded for tablespace(表空间不足):解决之道



方法一(测试成功):SQL> alter user "用户"quota unlimited on "表空间名";
  
  User altered.


  方法二:SQL> alter user "用户" default tablespace "表空间名";   

        2  quota 0 on system
    3  quota 500M on testtablespace
    4  /
  
User altered.
  
方法三:SQL> GRANT UNLIMITED TABLESPACE TO test;
  
Grant succeeded.




  

Oracle 查看表空间


查看各表空间的使用率
select df.tablespace_name "表空间名",totalspace "总空间M",freespace "剩余空间M",round((1-freespace/totalspace)*100,2) "使用率%" from (select tablespace_name,round(sum(bytes)/1024/1024) totalspace from dba_data_files group by tablespace_name) df, (select tablespace_name,round(sum(bytes)/1024/1024) freespace from dba_free_space group by tablespace_name) fs where df.tablespace_name=fs.tablespace_name;

查看回滚段命中率情况
select rn.name,rs.gets "被访问次数",rs.waits "等待回退段块的次数",(rs.waits/rs.gets)*100 "命中率" from v$rollstat rs,v$rollname rn;

查看当前用户每个表占用空间的大小:
    Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name order by Sum(bytes);
查看每个表空间占用空间的大小:
    Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name;






分享到:
评论

相关推荐

    获取oracle表空间脚本

    ### 获取Oracle表空间脚本 #### 背景与需求 在进行数据库备份与恢复的过程中,经常需要获取当前Oracle数据库中的表空间信息及其创建脚本。这样做的目的是为了确保在恢复过程中能够快速重建原有的数据库环境,包括...

    \Oracle 表空间与数据文件

    ### Oracle表空间与数据文件详解 #### 一、Oracle表空间与数据文件的概念 在Oracle数据库中,**表空间**是存储数据的基本单位之一,它是一个或多个数据文件的逻辑集合。表空间提供了数据存储的逻辑视图,而数据...

    Oracle 表空间 收缩

    ### Oracle 表空间收缩详解 #### 一、背景与需求 在Oracle数据库管理过程中,合理地管理和优化存储空间是非常重要的工作之一。有时,我们会遇到这样的情况:某个表空间占用的实际物理空间远大于其实际需要的空间,...

    oracle 表空间创建

    "Oracle 表空间创建" Oracle 表空间创建是 Oracle 数据库中的一种基本操作,它允许用户创建一个或多个表空间,以存储数据库中的数据。表空间是 Oracle 数据库的基本存储单元,每个表空间都可以包含多个数据文件和...

    如何正确的删除Oracle表空间数据文件

    在Oracle数据库管理中,删除表空间数据文件是一项关键操作,涉及到数据的安全性和系统的稳定性。本文将详细介绍如何正确地删除Oracle表空间数据文件,探讨OFFLINE和OFFLINE DROP的区别,以及在操作系统层面删除数据...

    oracle表空间命令语句大全

    Oracle 表空间命令语句大全提供了 Oracle 数据库管理的重要操作,包括建立表空间、建立 UNDO 表空间、建立临时表空间、改变表空间状态、删除表空间、扩展表空间和查看表空间信息等。这些命令对于 Oracle 数据库管理...

    Oracle表空间

    Oracle 表空间 Oracle 表空间是 Oracle 数据库中用于存储表、索引、约束、触发器等对象的逻辑存储单元。它是 Oracle 数据库的基础组件之一,用于管理和存储数据库中的数据。 1. 创建表空间 创建表空间是指在 ...

    ORACLE 表空间的部分操作

    本文将详细介绍Oracle中关于表空间的一些关键操作,包括创建、修改、管理和删除表空间的过程,以及如何处理表空间的在线与离线状态,数据文件的管理,以及表空间的扩展策略。 #### 一、建立表空间 创建表空间是...

    oracle表空间学习整理,包括常用sql

    Oracle数据库系统是企业级数据管理的重要工具,其中表空间(Tablespace)是数据库存储结构的基础单元。本篇文章将深入探讨Oracle表空间的概念、作用、创建方法以及常用的SQL语句,帮助你更好地理解和管理数据库资源...

    创建ORACLE表空间

    ### 创建Oracle表空间知识点 #### 一、Oracle表空间概述 在Oracle数据库中,表空间是逻辑存储单元,用于组织和管理数据文件。一个表空间可以包含多个数据文件,而一个数据文件只能属于一个表空间。Oracle中的表...

    oracle表空间变动注意事项

    在Oracle数据库管理与维护过程中,表空间(tablespace)的操作是一项非常重要的工作。表空间是Oracle数据库中的逻辑存储单元,用于组织和管理数据文件。本文将详细介绍关于Oracle表空间变动时需要注意的关键点,特别...

    Oracle表空间备份及还原

    本文将深入探讨Oracle表空间的备份与恢复,这是数据库管理中至关重要的环节。 首先,了解Oracle中的表空间(Tablespace)概念。表空间是Oracle数据库中逻辑存储结构的基本单位,它由一个或多个数据文件组成,用于...

    六分钟学会创建Oracle表空间的步骤[转]

    标题与描述均提到了“六分钟学会创建Oracle表空间的步骤”,这暗示了文章旨在提供一个快速学习如何在Oracle数据库中创建表空间的教程。Oracle表空间是数据库中用于存储数据的一个逻辑容器,每个表空间由一个或多个...

    oracle表空间不足报错的解决

    oracle表空间不足报错的解决 。。。。。。。。。。。。。。。。。。。。。。

    oracle表空间详解

    Oracle 表空间详解 Oracle 表空间是 Oracle 数据库中一个非常重要的概念,它是数据库中存储空间的逻辑概念。由于 Oracle 数据库可以存储大量的数据,但是数据文件大小受操作系统的限制,而过大的数据文件对数据的...

    oracle表空间碎片整理

    利用DBMS_SPACE包对Oracle 表碎片进行监控与清理,

    Oracle 表空间与数据文件

    Oracle 表空间与数据文件 Oracle 表空间是 Oracle 数据库中一个逻辑集合,包含一个或多个数据文件。表空间是 Oracle 数据库中的一个逻辑存储对象,用于存储永久段、临时段和回滚段等数据。 Oracle 表空间分类有...

    linux系统下创建oracle表空间和用户权限查询

    linux系统下创建oracle表空间和用户权限查询,安装Oracle系统时可以用到。

    oracle表空间查询命令

    ### Oracle表空间查询与管理命令详解 #### 一、Oracle表空间概述 在Oracle数据库中,表空间是逻辑存储单元,用于组织数据文件。每个Oracle数据库至少包含一个表空间,默认情况下,系统会在创建数据库时自动创建`...

    创建Oracle表空间

    Oracle表空间是数据库的核心组成部分,用于存储数据库对象,如表、索引、视图等。表空间可以是本地管理的,也可以是字典管理的。本地管理的表空间使用位图来跟踪表空间的扩展和空闲空间,并且通常比字典管理的表空间...

Global site tag (gtag.js) - Google Analytics