How big is my oracle database?
Redo logs can be mirrored, your query does not take into account that. Controlfiles are also part of the database.

select 'Datafiles', sum(bytes)/1024/1024 from dba_data_files union all
select 'Tempfiles', sum(bytes)/1024/1024 from dba_temp_files union all
select 'Redo logs', sum(bytes)/1024/1024 from v$log l join v$logfile lf on (l.group# = lf.group#) union all
select 'Controlfiles', sum(block_size * file_size_blks)/1024/1024 from v$controlfile;


There are other files that are not critical, but they need space, for example standby redo logs and the block change tracking file:

select 'Datafiles', sum(bytes)/1024/1024 from dba_data_files union all
select 'Tempfiles', sum(bytes)/1024/1024 from dba_temp_files union all
select 'Redo logs', sum(bytes)/1024/1024 from v$log l join v$logfile lf on (l.group# = lf.group#) union all
select 'Controlfiles', sum(block_size * file_size_blks)/1024/1024 from v$controlfile union all
select 'Standby logs', sum(bytes)/1024/1024 from v$standby_log l join v$logfile lf on (l.group# = lf.group#) union all
select 'Change tracking', bytes/1024/1024 from v$block_change_tracking;