--查询表空间使用情况
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1
--查询表空间的free space
select tablespace_name,
count(*) as extends,
round(sum(bytes) / 1024 / 1024, 2) as MB,
sum(blocks) as blocks
from dba_free_space
group by tablespace_name;
--查询表空间的总容量
select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_data_files
group by tablespace_name;
--查询表空间使用率
select total.tablespace_name,
round(total.MB, 2) as Total_MB,
round(total.MB - free.MB, 2) as Used_MB,
round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct
from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_free_space
group by tablespace_name) free,
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_data_files
group by tablespace_name) total
where free.tablespace_name = total.tablespace_name;
1.建立表空间:create tablespace test datafile '/u01/test.dbf' size 10M uniform size 128k #指定区尺寸为128k ,块大小为默认8K #大文件表空间 create bigfile tablespace big_tbs datafile '/u01/big_tbs.dbf ' size 100G
2.建非标准表show parameter db alter system set db_2k_cache_size=10M create tablespace test datafile '/u01/test.dbf' size 10M blocksize 2K uniform size 128k #常见错误 SQL> alter system set db_2k_cache_size=2M; alter system set db_2k_cache_size=2M ERROR at line 1: ORA-02097: parameter cannot be modified because specified value is invalid ORA-00384: Insufficient memory to grow cache #解决 SQL> alter system set sga_max_size=400M scope=spfile; SQL> shutdown immediate; SQL> startup SQL> alter system set db_2k_cache_size=10M; System altered.
3.查看区大小与块大小#区大小 conn y / 123 create table t(i number) tablespace test; Insert into t values(10) select bytes/1024 from user_segments where segment_name=upper('t'); #块大小 Show parameter block(默认64K) #非标准表空间的blocksize SQL> select * from v$dbfile; SQL> select name,block_size,status from v$datafile; SQL> select block_size from v$datafile where file#=14;
4.删除表空间drop tablespace test including contents and datafiles
5.查表空间:#查数据文件 select * from v$dbfile; #所有表空间 select * from v$tablespace; #表空间的数据文件 select file_name,tablespace_name from dba_data_files;
6.建立undo表空间create undo tablespace undotbs01 datafile '/u01/undotbs01.dbf' size 5M; #切换到新建的undo表空间 alter system set undo_tablespace=undotbs01;
7.建立临时表空间create temporary tablespace temp_data tempfile '/u01/temp.db' size 5M; create bigfile temporary tablespace bigtem tempfile '/u01/bigtemp.db' size 5M;
8.改变表空间状态
(0.)查看状态#表空间状态 select tablespace_name,block_size,status from dba_tablespaces; #数据文件状态 select name,block_size,status from v$datafile;
(1.)表空间脱机alter tablespace test offline #如果意外删除了数据文件 alter tablespace test offline for recover
(2.)表空间联机alter tablespace test online
(3.)数据文件脱机select * from v$dbfile; alter database datafile 3 offline
(4.)数据文件联机recover datafile 3; alter database datafile 3 online;
(5.)使表空间只读alter tablespace test read only
(6.)使表空间可读写alter tablespace test read write;
9.扩展表空间#首先查看表空间的名字和所属文件及空间 select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name; #三种扩展方法 1.alter tablespace test add datafile '/u01/test02.dbf' size 10M(自动加一个datafile) 2.alter database datafile '/u01/test.dbf' resize 20M; 3.alter database datafile '/u01/test.dbf' autoextend on next 10M maxsize 1G; #设定后查看表空间信息 select a.tablespace_name,a.bytes total,b.bytes used,c.bytes free,(b.bytes*100)/a.bytes "% used",(c.bytes*100)/a.bytes "% free" from sys.sm$ts_avail a,sys.sm$ts_used b,sys.sm$ts_free c where a.tablespace_name=b.tablespace_name and a.tablespace_name=c.tablespace_name;
10.移动表空间的数据文件#先确定数据文件据在表空间 SQL>select tablespace_name,file_name from dba_data_files where file_name='/u01/test.dbf'; #open状态 SQL>alter tablespace test offline; SQL>host move /u01/test.dbf /u01/oracle/test.dbf; SQL>alter tablespace test rename datafile '/u01/test.dbf' to '/u01/oracle/test.dbf'; SQL>alter tablespace test offline; #mount状态 SQL>shutdown immediate; SQL>startup mount SQL>host move /u01/test.dbf /u01/oracle/test.dbf; SQL>alter database rename file '/u01/test.dbf' to '/u01/oracle/test.dbf';
11.表空间和数据文件常用的数据字典与动态性能视图v$dbfile v$datafile dba_segments user_segments dba_data_files v$tablespace dba_tablespaces user_tablespaces
表空间扩充参考:http://www.dbmotive.com/oracle_error_codes.php?errcode=1658
分享到:
相关推荐
查询oracle表空间使用情况,表空间文件详情,创建或者变更表空间大小
Oracle查询表空间使用情况(经典篇)
分析表空间使用情况,oracle查询表空间使用情况,方便确认数据是否还能插入,检查数据文件是否已满。
### Oracle查询表碎片知识点详解 在Oracle数据库管理与优化的过程中,了解并处理表碎片是非常重要的一个环节。本文将详细介绍如何通过SQL查询来检测Oracle表的碎片情况,并对给出的SQL查询语句进行深入解析。 ####...
### Oracle 查看表空间使用情况 在Oracle数据库管理中,了解和监控表空间的状态是非常重要的。这不仅能帮助管理员及时发现存储资源不足的情况,还能优化数据分布、提高性能。本文将详细介绍如何通过SQL查询来查看...
### Oracle表空间使用情况查询知识点 #### 一、概述 在Oracle数据库管理中,了解表空间的使用情况是非常重要的。这有助于我们优化存储资源、预防空间不足等问题。本篇文章将详细介绍如何通过SQL语句来查询Oracle表...
#### 二、查询表空间使用情况 为了有效地管理和监控Oracle数据库,了解各个表空间的使用情况至关重要。以下SQL查询语句可以帮助我们获取关于表空间的信息: ```sql SELECT fs.tablespace_name "Tablespace", (df....
oracle查询表空间状态,包括表空间名、表空间大小、已使用空间、使用比、空闲空间。
此外,查询表空间的自动扩展状态: ```sql SELECT file_id, file_name, tablespace_name, autoextensible, increment_by FROM dba_data_files WHERE tablespace_name = 'USER_DATA' ORDER BY file_id DESC; ``` ...
解决 Oracle 临时表空间满的问题需要通过查看当前数据库的默认临时表空间、查看当前临时表空间的大小、创建新的临时表空间、将新建的临时表空间设置为数据库的默认临时表空间、删除原来的临时表空间、创建新的临时表...
帮助您查看oracle的表空间大小,已使用百分比,剩余大小,总大小,表空间名
**查询表空间状态**: 要查询Oracle数据库的表空间状态,你可以使用以下SQL查询: ```sql SELECT t.tablespace_name AS "表空间名", ROUND(SUM(df.bytes) / 1024 / 1024, 2) AS "总大小(MB)", ROUND(SUM(NVL(tf...
总结来说,查询Oracle表空间使用情况是数据库管理的关键环节,涉及到表空间的基本概念、数据文件、自由空间、临时表空间以及扩展和段空间管理。通过理解和掌握这些知识,数据库管理员能够更好地维护数据库的健康状态...
select b.tablespace_name 表空间, c.owner 用户, c.segment_name 表名, b.file_name 物理文件名, sum(nvl(b.bytes, 0)) / 1024 / 1024 总共大小M, round((sum(nvl(b.bytes, 0)) - sum(nvl(a.bytes, 0))) ...
#### 三、查询表空间使用情况 在开始任何操作前,我们首先需要查询表空间的当前使用情况。可以使用以下SQL语句来获取相关信息: ```sql SELECT total.tablespace_name, Round(total.MB,2) AS Total_MB, Round...
- 设置警告阈值:在告警日志中设置适当的阈值,当Temp表空间使用率达到一定程度时,触发警告,提醒管理员进行处理。 5. **临时表空间自动扩展**: - 配置自动扩展:Oracle允许你配置数据文件的自动扩展功能。这样...
二是便于管理和监控,因为你可以跟踪这个特定表空间的使用情况,以便在需要时进行调整;三是可以更好地控制存储资源,例如通过设置不同的表空间配额,限制用户的临时空间使用。 在分配用户单独的临时表空间时,应...
在Oracle数据库管理系统中,创建表空间是管理数据库存储空间的关键操作。表空间是数据库中用于存储数据对象(如表、索引、视图等)的逻辑结构。它将物理磁盘上的一个或多个数据文件组织成一个逻辑单元,使得数据库...
本文将详细介绍如何查询Oracle数据库中的表空间和数据文件信息。 一、查看Oracle数据库中表空间信息的方法 1. 工具方法: 使用Oracle Enterprise Manager Console(EM Console)是一种直观的方式。在Windows环境...
oracle表空间相关查询语句-查询表空间大小,表空间剩余大小,表空间使用大小,表空间大小(G),表空间剩余大小(G),表空间使用大小(G),使用率 %,查看Oracle用户占了哪几个表空间及大小