v_sys_disk_info

文件所在磁盘信息

如果Linux系统中文件所在的挂载点相同或Windows系统中文件所在盘符相同,那么表示其所在同一个磁盘,统计磁盘的信息就会相同,即DISK_TOTAL_SIZE、DISK_FREE_RATIO、DISK_FREE_STATUS、DISK_IO_SCHEDULE列显示的内容完全相同。

若创建文件时不指定文件的绝对路径,那么所有的文件均保存在数据库主目录中,数据库主目录的大小就是整个数据库的大小。

表185 V_SYS_DISK_INFO 结构
列名 类型 描述
FILE_TYPE VARCHAR(15)

文件类型,FOLDER,LOG,DATA

FOLDER包括数据库主目录和归档目录

LOG指在线redo日志文件

DATA包括临时数据文件、undo数据文件、审计数据文件、system数据文件、默认users数据文件以及用户自定义的数据文件

FILE_ID SMALLINT 文件id
FILE_PATH VARCHAR(1024) 文件路径
FILE_SIZE BIGINT

文件或目录大小,单位为(M)

数据库主目录的大小是指数据库主目录中所有的文件包括子文件夹的大小之和

归档目录的大小统计了所有归档文件的大小之和

MOUNTED_ON VARCHAR(1024) linux系统中显示文件所在的挂载点,windows系统显示文件所在盘符
DISK_TOTAL_SIZE BIGINT 磁盘总空间大小,单位为(M)
DISK_FREE_RATIO NUMERIC(4,2) 磁盘空闲空间百分比,计算方式为:磁盘空闲空间/磁盘总空间
DISK_FREE_STATUS VARCHAR(64)

磁盘空闲状态

DISK_FREE_RATIO<0.2时为严重不足

0.2<=DISK_FREE_RATIO<0.4时为不足

DISK_FREE_RATIO>=0.4时为充足

DISK_IO_SCHEDULE VARCHAR(64) 磁盘IO调度策略

示例

示例1: 查看数据库文件所在的所有的磁盘信息

select distinct MOUNTED_ON,DISK_TOTAL_SIZE,DISK_FREE_RATIO,DISK_FREE_STATUS,DISK_IO_SCHEDULE from v_sys_disk_info;

示例2: 查看数据库占用的磁盘大小

  --计算数据库大小
create or replace procedure db_size()
as
oscarhome text;
sql_cmd text;
db_size int;
begin
  select SYS_GET_OSRHOME() into oscarhome;
  sql_cmd:='select sum(FILE_SIZE) from V_SYS_DISK_INFO where file_path='''||oscarhome||''' or file_path not like '''||oscarhome||'%'';';
  execute sql_cmd into db_size;
  dbms_output.put_line('数据库大小为:'||db_size||'M');
end;

/

exec db_size();