dba_data_files & dba_free_space

本文介绍了Oracle数据库中数据文件的基本信息,包括数据文件的属性、如何查看表空间使用情况、获取表空间创建语句的方法,以及如何增加或删除数据文件。
dba_data_files

Column

Datatype

NULL

Description

FILE_NAME

VARCHAR2(513)

 

Name of the database file 

---数据文件名称

FILE_ID

NUMBER

NOT NULL

File identifier number of the database file

----数据文件标识ID

TABLESPACE_NAME

VARCHAR2(30)

NOT NULL

Name of the tablespace to which the file belongs

----数据文件归属的表空间

BYTES

NUMBER

 

Size of the file in bytes

----数据文件的空间大小

BLOCKS

NUMBER

NOT NULL

Size of the file in Oracle blocks

----数据文件的块数BYTES = BLOCKS * 8 *1024

STATUS

VARCHAR2(9)

 

File status: AVAILABLE or INVALID (INVALID means that the file number is not in use, for example, a file in a tablespace that was dropped)

----文件状态

RELATIVE_FNO

NUMBER

 

Relative file number

--

· FILE_ID被称为 绝对文件号,RELATIVE_FNO被称为相当文件号

· 二者在大部分的时候,都是相等的

· FILE_ID在整个数据库中是唯一的;RELATIVE_FNO在整个TABLESPACE中是唯一的,在数据库中不唯一

· 一个TABLESPACE中的最大文件数量为1023,所以,一旦超过该极限,则RELATIVE_FNO将重新计算

AUTOEXTENSIBLE

VARCHAR2(3)

 

Autoextensible indicator

---自动扩展的标记

可以设定数据文件随着表空间内的方案对象增长而动态的增长

MAXBYTES

NUMBER

 

Maximum file size in bytes

----最大的数据文件的大小

MAXBLOCKS

NUMBER

 

Maximum file size in blocks

---最大的块数

INCREMENT_BY

NUMBER

 

Autoextension increment

----数据文件自动扩展数据块的个数

USER_BYTES

NUMBER

 

Corresponding number of bytes

---user_blocks and user_bytes are the space  users can use, usually equal to datafile size minus
overhead used by DMT or LMT.

数据文件的可用空间,等于数据文件的大小减去数据块头的大小

USER_BLOCKS

NUMBER

 

Number of blocks which can be used by the data

 


dba_free_space

Column

Datatype

NULL

Description

TABLESPACE_NAME

VARCHAR2(30)

 

Name of the tablespace containing the extent

FILE_ID

NUMBER

 

File identifier number of the file containing the extent

BLOCK_ID

NUMBER

 

Starting block number of the extent

 

BYTES

NUMBER

 

Size of the extent (in bytes)

BLOCKS

NUMBER

 

Size of the extent (in Oracle blocks)

RELATIVE_FNO

NUMBER

 

Relative file number of the file containing the extent


--1查看表空间已经使用的百分比
select   a.tablespace_name,a.bytes/1024/1024 "sum MB",(a.bytes-b.bytes)/1024/1024   "used MB",b.bytes/1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
from
(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name)   a,
(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name)   b
where   a.tablespace_name=b.tablespace_name
order   by   ((a.bytes-b.bytes)/a.bytes)   desc

“sum MB”表示表空间所有的数据文件总共在操作系统占用磁盘空间的大小
比如:test表空间有2个数据文件,datafile1300MBdatafile2400MB,那么test表空间的“Sum MB”就是700MB
“userd MB”
表示表空间已经使用了多少
“free MB”
表示表空间剩余多少
“percent_user”
表示已经使用的百分比

2获取创建表空间的语句:
select   dbms_metadata.get_ddl('TABLESPACE','SYSTEM’)   from   dual;

3确认磁盘空间足够,增加一个数据文件
alter   tablespace   MLOG_NORM_SPACE
add   datafile   '/oracle/oms/oradata/mlog/****001.dbf'
size   10M   autoextend   on   maxsize   20G

4如果删除表空间数据文件,如下:
alter   tablespace   MLOG_NORM_SPACE
drop    datafile '/oracle/oms/oradata/mlog*****001.dbf'


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9390331/viewspace-691886/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9390331/viewspace-691886/

`DBA_FREE_SPACE` 是 Oracle 数据库中的一个视图,主要用于查询表空间的空闲空间信息。通过该视图可以获取各个表空间内空闲数据块的详细情况,有助于数据库管理员监控表空间的使用状况,合理规划存储空间。 ### 功能 - **监控表空间使用情况**:能够帮助数据库管理员了解每个表空间中还有多少空闲空间,从而判断是否需要进行表空间的扩展或收缩操作。例如,当某个表空间的空闲空间不足时,可能需要添加数据文件来扩大表空间容量。 - **优化存储分配**:通过分析空闲空间的分布情况,可以优化数据库对象(如表、索引等)的存储分配,避免出现碎片化问题,提高数据库的性能。 ### 使用方法 以下是一个常见的使用示例,用于查询每个表空间的总空间、已使用空间、使用率和空闲空间: ```sql SELECT D.TABLESPACE_NAME, SPACE, (SPACE - NVL(FREE_SPACE, 0)) AS USED_SPACE, ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) AS USAGE_PERCENTAGE, FREE_SPACE FROM ( SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) AS SPACE, SUM(BLOCKS) AS BLOCKS FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME ) D, ( SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) AS FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME ) F WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+); ``` 在这个示例中,首先通过子查询从 `DBA_DATA_FILES` 视图中计算每个表空间的总空间,然后从 `DBA_FREE_SPACE` 视图中计算每个表空间的空闲空间,最后将两个结果进行关联,得到每个表空间的详细使用情况。 ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值