使用spool输出csv格式查看系统表空间使用情况

SET SPOOL ON pre off entmap off

SET ECHO OFF

SET TRIMOUT OFF

set feedback off

set heading on

set colsep ,

set trimspool on

set headsep off

set numw 10

set linesize 200

set pagesize 10000

col tablespace_name format a15

col total_space format a10

col free_space format a10

col used_space format a10

col used_rate format 99.99

spool /home/oracle/test.csv

select a.tablespace_name,a.total_space_Mb||‘m‘ total_space,b.free_space_Mb||‘m‘

free_space,a.total_space_Mb-b.free_space_Mb||‘m‘ used_space,

(1-(b.free_space_Mb/a.total_space_Mb))*100 used_rate,a.total_blocks,b.free_blocks from

(select tablespace_name,sum(bytes)/1024/1024 total_space_Mb,sum(blocks) total_blocks from dba_data_files

group by tablespace_name) a,

(select tablespace_name, sum((bytes)/1024/1024) free_space_Mb,sum(blocks) free_blocks from dba_free_space

group by tablespace_name) b

where a.tablespace_name=b.tablespace_name order by used_rate desc;

spool off

注(SET ECHO OFF不显示终端输入的start、@、@@等执行脚本命令、SET TERMOUT OFF在spool的时候结果不在终端显示、SET TRIMOUT OFF删除尾部空格)

结果如下:

更多Oracle精彩内容 请关注我:

时间: 2024-08-24 18:07:39

使用spool输出csv格式查看系统表空间使用情况的相关文章

三、查看Oracle表空间使用情况

1.查询表空间的总容量 select a.TABLESPACE_NAME, sum(a.BYTES) / 1024 / 1024 as MB from sys.dba_data_files a group by a.TABLESPACE_NAME 2.查询表空间的空闲容量 select b.TABLESPACE_NAME, count(1) as extends, sum(b.BYTES) / 1024 / 1024 as MB, sum(b.BLOCKS) as blocks from sys

用热备+归档恢复损坏的非系统表空间

通常,我们都是用RMAN去还原数据文件,再利用归档做恢复,如果没有有效的备份集,但是有热备份生成的文件,那么一样可以进行恢复,这里演示的是非系统表空间对应的数据文件损坏后的恢复. --首先获取热备份的语句 SQL> select 'alter tablespace '||tablespace_name|| ' begin backup;' 2  ||chr(10) 3  ||'cp '||file_name||' /u01/' 4  ||chr(10) 5  ||'alter tablespac

FAQ系列 | ibdata1系统表空间文件都包含什么内容

InnoDB系统表空间文件ibdata1中存储了以下几部分信息: Data dictionary Double write buffer Insert buffer Rollback segments UNDO space Foreign key constraint system tables 因此,我们在初始化ibdata1时,最好设置大一些,比如至少1GB以上. 此外,从MySQL 5.6版本开始,支持将UNDO Space放在独立的undo表空间里,强烈建议使用. 这样就可以避免因为在高

Oracle查看所有表空间的数据使用情况

-- 查看所有表空间的数据使用情况 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') ||

Oracle查看表空间使用情况

 查看表空间使用情况 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') "使用比

Innodb如何查看剩余表空间?

在 Myisam 和 Innodb Innodb_file_per_table 独立表空间的情况下,只需要查看磁盘剩余空间,再配合统计出来的数据增长速率就可以对磁盘空间进行预警,提前解决隐患. 那么在预分配共享表空间的情况下查看剩余表空间: USE test CREATE TABLE ivan(i int NOT NULL) engine=innodb; SHOW TABLE STATUS LIKE ‘ivan’; 结果类似: root:test> show table status like

ORA-01552 :非系统表空间 'xxxx'不能使用系统回退段

ORA-01552 :非系统表空间'XXXX'不能使用系统回退段 故障分析: UNDO表空间数据文件受损,导致执行更新操作失败. 故障解决: 创建的新的undo表空间,置为 默认,AUTO,正常打开数据库. Microsoft Windows [版本 5.2.3790] (C) 版权所有 1985-2003 Microsoft Corp. C:\Documents and Settings\Administrator>sqlplus "/as sysdba" SQL*Plus:

oracle 查看各表空间剩余量

1.查看所有表空间大小.剩余量: 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,su

Oracle查看占用表空间最大的表(排序)

场景:在做数据库巡检时,检查大表是必不可少的操作,可以查看各表占用表空间的大小 代码: 1 select t.owner,t.segment_name,t.tablespace_name,bytes/1024/1024/1024 as sizes,q.num_rows,t.segment_type 2 from dba_segments t 3 left join dba_tables q 4 on t.segment_name=q.table_name 5 and t.owner=q.owne