查询Oracle数据库表空间和数据文件方法

我喜欢的你别碰

我喜欢的你别碰

2016-02-19 18:48

今天图老师小编要跟大家分享查询Oracle数据库表空间和数据文件方法,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

  表空间是oracle数据库中最大的逻辑单位与存储空间单位,数据库系统通过表空间为数据库对象分配空间。表空间在物理上体现为磁盘数据文件,每一个表空间由一个或多个数据文件组成,一个数据文件只可与一个表空间相联系,这是逻辑与物理的统一。了解表空间和数据文件的的属性及使用率,是数据库管理员的一项重要职责。下面以oracle9i为例,详细介绍查询Oracle数据库表空间信息和数据文件信息的方法。

  一、查看Oracle数据库中表空间信息的方法

  1、查看Oracle数据库中表空间信息的工具方法:

  使用oracle enterprise manager console工具,这是oracle的客户端工具,当安装oracle服务器或客户端时会自动安装此工具,在windows操作系统上完成oracle安装后,通过下面的方法登录该工具:开始菜单——程序——Oracle-OraHome92——Enterprise Manager Console(单击)——oracle enterprise manager console登录——选择‘独立启动’单选框——‘确定’ —— ‘oracle enterprise manager console,独立’ ——选择要登录的‘实例名’ ——弹出‘数据库连接信息’ ——输入’用户名/口令’ (一般使用sys用户),’连接身份’选择选择SYSDBA——‘确定’,这时已经成功登录该工具,选择‘存储’ ——表空间,会看到如下的界面,该界面显示了表空间名称,表空间类型,区管理类型,以”兆”为单位的表空间大小,已使用的表空间大小及表空间利用率。

  图1 表空间大小及使用率

  2、查看Oracle数据库中表空间信息的命令方法:

  通过查询数据库系统中的数据字典表(data dictionary tables)获取表空间的相关信息,首先使用客户端工具连接到数据库,这些工具可以是SQLPLUS字符工具、TOAD、PL/SQL等,连接到数据库后执行如下的查询语句:

  select
  a.a1表空间名称,
  c.c2类型,
  c.c3区管理,
  b.b2/1024/1024表空间大小M,
  (b.b2-a.a2)/1024/1024已使用M,
  substr((b.b2-a.a2)/b.b2*100,1,5)利用率
  from
  (selecttablespace_namea1,sum(nvl(bytes,0))a2fromdba_free_spacegroupbytablespace_name)a,
  (selecttablespace_nameb1,sum(bytes)b2fromdba_data_filesgroupbytablespace_name)b,
  (selecttablespace_namec1,contentsc2,extent_managementc3fromdba_tablespaces)c
  wherea.a1=b.b1andc.c1=b.b1;

  该语句通过查询dba_free_space,dba_data_files,dba_tablespaces这三个数据字典表,得到了表空间名称,表空间类型,区管理类型,以”兆”为单位的表空间大小,已使用的表空间大小及表空间利用率。dba_free_space表描述了表空间的空闲大小,dba_data_files表描述了数据库中的数据文件,dba_tablespaces表描述了数据库中的表空间。

  上面语句中from子句后有三个select语句,每个select语句相当于一个视图,视图的名称分别为a、b、c,通过它们之间的关联关系,我们得到了表空间的相关信息。

  语句执行结果如下:

  上面描述中分别介绍了查看Oracle数据库中表空间信息的工具方法和命令方法。

  二、查询Oracle数据库中数据文件信息的方法

  1、查看Oracle数据库中数据文件信息的工具方法:

  使用上面介绍过的方法登录oracle enterprise manager console工具,选择‘存储’ ——数据文件,会看到如下的界面,该界面显示了数据文件名称,表空间名称,以”兆”为单位的数据文件大小,已使用的数据文件大小及数据文件利用率。

  2、查看Oracle数据库中数据文件信息的命令方法:

  通过查询数据库系统中的数据字典表(data dictionary tables)获取数据文件的相关信息,首先使用客户端工具连接到数据库,这些工具可以是SQLPLUS字符工具、TOAD、PL/SQL等,连接到数据库后执行如下的查询语句:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  select
  b.file_name物理文件名,
  b.tablespace_name表空间,
  b.bytes/1024/1024大小M,
  (b.bytes-sum(nvl(a.bytes,0)))/1024/1024已使用M,
  substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5)利用率
  fromdba_free_spacea,dba_data_filesb
  wherea.file_id=b.file_id
  groupbyb.tablespace_name,b.file_name,b.bytes
  orderbyb.tablespace_name

  语句执行结果如下:

  上明描述中分别介绍了查看Oracle数据库中数据文件信息的工具方法和命令方法。

  三、查看临时表空间和数据库文件的方法

  在oracle数据库中,临时表空间主要用于用户在使用order by 、group by语句进行排序和汇总时所需的临时工作空间。要查询数据库中临时表空间的名称,大小及数据文件,可以查询数据字典dba_tablespaces及dba_data_files。命令如下:

  select
  a.talbespace_name表空间名称,
  b.bytes大小bytes,
  b.file_name数据文件名
  fromdba_tablespacesa,dba_data_filesb
  Wherea.talbespace_name=b.talbespace_nameanda.contents=’TEMPORARY’;

  查询结果如下:

  从oracle 9i开始,可以创建Temporary tablespace类表空间,即“临时“表空间,这类表空间使用临时文件。临时文件的信息被存储在数据字典V$tempfile中。命令如下:

  Select file#,status,name from V$tempfile;

  查询数据字典V$tempfile结果如下:

  在上面介绍的方法中,建议掌握命令方法,因为你的环境可能没有图形工具,而SQLPLUS一般情况下都是可以使用的,有了命令脚本,很容易得到表空间和数据文件的相关信息。另外,数据库管理员应该多整理命令脚本,在需要时直接执行脚本以提高工作效率。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  在数据库管理员的日常工作中,应该经常查询表空间的利用率,按照数据库系统的具体情况估算表空间的增长量,当表空间的利用率超过90%时,要及时采取措施,如清理历史表、历史数据以释放空间,向表空间中添加新的数据文件,扩展现有数据文件大小等方法来降低表空间的利用率,避免表空间利用率接近100%时,将产生空间不够的错误。

展开更多 50%)
分享

猜你喜欢

查询Oracle数据库表空间和数据文件方法

编程语言 网络编程
查询Oracle数据库表空间和数据文件方法

用MySQL创建数据库和数据库表

编程语言 网络编程
用MySQL创建数据库和数据库表

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

更改Oracle数据库表的表空间

编程语言 网络编程
更改Oracle数据库表的表空间

Oracle数据库手工扩大表空间

编程语言 网络编程
Oracle数据库手工扩大表空间

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用MySQL创建数据库和数据库表代码

编程语言 网络编程
用MySQL创建数据库和数据库表代码

Oracle数据库数据导入方法

编程语言 网络编程
Oracle数据库数据导入方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Oracle数据库视图管理经验技巧

Oracle数据库视图管理经验技巧

不要冒昧的对我关心,不然我以为我还有机会

不要冒昧的对我关心,不然我以为我还有机会
下拉加载更多内容 ↓