v_sys_disk_info¶
文件所在磁盘信息
如果Linux系统中文件所在的挂载点相同或Windows系统中文件所在盘符相同,那么表示其所在同一个磁盘,统计磁盘的信息就会相同,即DISK_TOTAL_SIZE、DISK_FREE_RATIO、DISK_FREE_STATUS、DISK_IO_SCHEDULE列显示的内容完全相同。
若创建文件时不指定文件的绝对路径,那么所有的文件均保存在数据库主目录中,数据库主目录的大小就是整个数据库的大小。
| 列名 | 类型 | 描述 |
|---|---|---|
| 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();