SELECT t.tablespace_name,
ROUND(SUM(bytes)/1024/1024,0) AS ts_size_mb
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
SELECT tablespace_name, file_id, file_name,
ROUND(bytes/1024/1024,0) AS file_size_mb
FROM dba_data_files
ORDER BY tablespace_name, file_id;
SELECT r.segment_name, r.tablespace_name, r.status,
r.initial_extent/1024 AS init_kb,
r.next_extent/1024 AS next_kb,
r.max_extents,
v.curext AS current_extents
FROM dba_rollback_segs r, v$rollstat v
WHERE r.segment_id = v.usn(+)
ORDER BY r.segment_name;
SELECT name FROM v$controlfile;
SELECT member FROM v$logfile;
SELECT a.tablespace_name,
ROUND(a.bytes/1024/1024,1) AS total_mb,
ROUND(b.bytes/1024/1024,1) AS used_mb,
ROUND(c.bytes/1024/1024,1) AS free_mb,
ROUND(100*b.bytes/a.bytes,1) AS pct_used,
ROUND(100*c.bytes/a.bytes,1) AS pct_free
FROM (SELECT tablespace_name, SUM(bytes) bytes FROM dba_data_files GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) bytes FROM dba_segments GROUP BY tablespace_name) b,
(SELECT tablespace_name, SUM(bytes) bytes FROM dba_free_space GROUP BY tablespace_name) c
WHERE a.tablespace_name = b.tablespace_name
AND a.tablespace_name = c.tablespace_name
ORDER BY pct_used DESC;
SELECT owner, object_type, status, COUNT(*)
FROM all_objects
GROUP BY owner, object_type, status
ORDER BY owner, object_type;
SELECT version FROM product_component_version
WHERE SUBSTR(product,1,6) = 'Oracle';
SELECT created, log_mode FROM v$database;
COL username FORMAT A12
COL opname FORMAT A20
COL progress FORMAT A10
SELECT s.username, s.sid, s.opname,
ROUND(s.sofar*100/NULLIF(s.totalwork,0),1) || '%' AS progress,
s.time_remaining, q.sql_text
FROM v$session_longops s, v$sql q
WHERE s.time_remaining > 0
AND s.sql_address = q.address
AND s.sql_hash_value = q.hash_value;
SELECT partition_name, high_value, tablespace_name,
pct_free, pct_used, ini_trans, max_trans,
initial_extent, next_extent, min_extent, max_extent,
num_rows, blocks, avg_row_len, last_analyzed
FROM dba_tab_partitions
WHERE table_owner = :owner AND table_name = :tname
ORDER BY partition_position;
-- 鎖對象
SELECT * FROM v$locked_object;
-- 活躍事務
SELECT s.sid, s.serial#, s.username, t.start_time, t.used_ublk, t.used_urec
FROM v$session s, v$transaction t
WHERE s.taddr = t.addr;
創建 dba_check.sql,包含上述所有查詢,巡檢時一鍵運行:
@dba_check > dba_check_$(date +%F).lst