Checking for any down data files:
select file_name, tablespace_name, status, bytes/1000000 as mb, maxbytes/1000000 as mb_max from dba_data_files where status<>'AVAILABLE';
Checking for any down control files:
select name, status from v$controlfile where status is not null;
Checking for any down tablespaces:
select tablespace_name, status, contents, extent_management from dba_tablespaces where status<>'ONLINE';
Checking to see if a tablespace is getting close to max size (less than 10% free):
select total.name as tblspace, nvl(free_space, 0) as free, nvl(total_space-free_space, 0) as used, total_space, round(nvl(free_space,0)/total_space,2)*100 as pct_free from ( select tablespace_name, sum(bytes/1024/1024) as free_Space from sys.dba_free_space group by tablespace_name ) free, ( select b.name, sum(bytes/1024/1024) as total_space from sys.v_$datafile a, sys.v_$tablespace b where a.ts# = b.ts# group by b.name ) total where free.tablespace_name(+) = total.name and total.name='TABLESPACE_NAME_HERE' and round(nvl(free_space, 0)/total_space,2)<=0.10;
Suspicious of someone stealing your system passwords and logging in remotely? Use this to check for system logins from machines you do not expect.
select username, osuser, program, machine from sys.v_$session where upper(machine) in('LIST_VALID_MACHINES_HERE','DBA_PC','BOSS_PC') and upper(username) in('SYS','SYSTEM');