Oracle 数据库巡检检查清单

Oracle 数据库巡检检查清单

本文档整理了Oracle数据库日常巡检的核心检查项,涵盖数据库状态、性能、空间、安全等多个维度。


一、数据库基础状态检查

1.1 数据库状态

  • 检查目的:确认数据库实例运行状态、日志模式、打开模式等关键信息
  • 涉及视图gv$database
sql 复制代码
SELECT inst_id, dbid, name, created, log_mode, open_mode, database_role, platform_name
FROM gv$database
ORDER BY inst_id;

1.2 实例状态

  • 检查目的:检查实例名称、主机名、状态、版本、启动时间
  • 涉及视图gv$instance
sql 复制代码
SELECT instance_number, INSTANCE_NAME, host_name, status, version, STARTUP_TIME
FROM gv$instance
ORDER BY 1;

1.3 组件状态

  • 检查目的:检查数据库各组件的注册状态和版本信息
  • 涉及视图dba_registry
sql 复制代码
SELECT comp_id, status, version, comp_name
FROM dba_registry
ORDER BY comp_id;

二、内存与资源检查

2.1 SGA(系统全局区)

  • 检查目的:检查SGA各组件的内存分配情况
  • 涉及视图gv$sgainfo
sql 复制代码
SELECT inst_id, name, ROUND(bytes/1024/1024) MBytes, resizeable
FROM gv$sgainfo
ORDER BY 3 DESC;

2.2 PGA(程序全局区)

  • 检查目的:检查PGA统计信息和使用情况
  • 涉及视图gv$pgastat
sql 复制代码
SELECT inst_id, name, ROUND(value/1024/1024/1024, 2) value_gb, unit
FROM gv$pgastat
ORDER BY 1, 3 DESC;

2.3 Shared Pool

  • 检查目的:检查共享池中大于50MB的内存对象
  • 涉及视图gv$sgastat
sql 复制代码
SELECT inst_id, pool, name, TRUNC(bytes/1024/1024/1024, 4) size_gb
FROM gv$sgastat
WHERE pool = 'shared pool'
  AND TRUNC(bytes/1024/1024, 4) > 50
ORDER BY 1, 3 DESC, 2;

2.4 用户连接数

  • 检查目的:统计各实例不同状态、类型的会话数量及偏差
  • 涉及视图gv$session
sql 复制代码
WITH a AS (
    SELECT inst_id, status, type, COUNT(*) CNT
    FROM gv$session
    GROUP BY ROLLUP(inst_id, status, type)
    ORDER BY 1, 2, 3
),
b AS (
    SELECT inst_id, status, type, MAX(cnt) cnt, AVG(cnt) avg
    FROM a
    GROUP BY inst_id, status, type
    ORDER BY 1, 2, 3
)
SELECT b.*, ROUND(ABS(cnt - avg) / avg * 100, 2) piancha
FROM b;

三、日志与告警检查

3.1 最近日志(最近10天)

  • 检查目的:查看最近1000条数据库告警日志
  • 涉及视图v$diag_alert_ext, v$database, v$diag_info
sql 复制代码
SELECT *
FROM (
    SELECT TO_CHAR(originating_timestamp, 'YYYY-MM-DD HH24:MI:SS') alert_date,
           message_text,
           a.HOST_ID,
           a.HOST_ADDRESS,
           a.PROCESS_ID,
           a.RECORD_ID,
           a.FILENAME,
           DENSE_RANK() OVER(PARTITION BY 1 ORDER BY a.RECORD_ID DESC) RN
    FROM v$diag_alert_ext a
    WHERE TRIM(a.COMPONENT_ID) = 'rdbms'
      AND A.FILENAME = (
          SELECT D.VALUE ||
                 (SELECT CASE
                             WHEN D.PLATFORM_NAME LIKE '%Microsoft%' THEN CHR(92)
                             ELSE CHR(47)
                         END PLATFORM
                  FROM V$DATABASE D) || 'log.xml'
          FROM V$DIAG_INFO D
          WHERE D.NAME = 'Diag Alert'
      )
      AND originating_timestamp >= SYSDATE - 10
      AND TRIM(a.MESSAGE_TEXT) IS NOT NULL
)
WHERE rn <= 1000
ORDER BY record_id;

四、性能分析检查

4.1 AWR 数据库报告

  • 检查目的:生成DB Time异常的AWR报告SQL语句
  • 涉及视图dba_hist_snapshot, dba_hist_sys_time_model, v$parameter
sql 复制代码
WITH a AS (
    SELECT snap_id, dbid,
           (SELECT startup_time FROM dba_hist_snapshot hs
            WHERE hs.instance_number = hstm.instance_number
              AND hs.snap_id = hstm.snap_id) startup_time,
           (SELECT end_interval_time FROM dba_hist_snapshot hs
            WHERE hs.instance_number = hstm.instance_number
              AND hs.snap_id = hstm.snap_id) end_time,
           instance_number, stat_name, value
    FROM (SELECT * FROM (SELECT * FROM dba_hist_sys_time_model
                          WHERE stat_name IN ('DB time')
                          ORDER BY snap_id DESC)
          WHERE ROWNUM < 500) hstm
    ORDER BY snap_id
),
timeinv AS (
    SELECT ROUND(
               (SELECT value FROM v$parameter WHERE name = 'cpu_count') *
               (EXTRACT(HOUR FROM snap_interval) * 60 + EXTRACT(MINUTE FROM snap_interval)) * 0.7, 2) inv
    FROM dba_hist_wr_control
),
base AS (
    SELECT a.dbid, a.snap_id bsnap, b.snap_id esnap, b.instance_number,
           a.end_time, b.stat_name,
           ROUND((b.value - a.value) / 1000000, 2) db_time
    FROM a a, a b
    WHERE a.snap_id = b.snap_id - 1
      AND a.instance_number = b.instance_number
      AND a.stat_name = b.stat_name
      AND a.STARTUP_TIME = b.startup_time
      AND ROUND((b.value - a.value) / 1000000 / 60, 2) > (SELECT inv FROM timeinv)
    ORDER BY 1
)
SELECT b.*,
       'select * from table(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(' || dbid || ',' ||
       instance_number || ',' || bsnap || ',' || esnap || '))' awrsql
FROM base b;
sql 复制代码
-- 实操案例
SET PAGESIZE 0
SET LINESIZE 32767       -- Oracle 最大行宽
SET LONG 1000000
SET TRIMSPOOL ON
SET FEEDBACK OFF
SET HEADING OFF

SPOOL \\10.xxx.xx.xx6\network_folder\TsDomain\testUser01\My Documents\202602file\0611-awr_report.html

SELECT output
FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(
    l_dbid      => 1494364764,   -- 替换v$database查到的dbid
    l_inst_num  => 2,           -- 单实例填1
    l_bid       => 5037,        -- 起始snap_id
    l_eid       => 5038         -- 结束snap_id
));

SPOOL OFF

4.2 慢 SQL

  • 检查目的:查找执行时间超过60秒的长操作SQL
  • 涉及视图v$session_longops, v$sql
sql 复制代码
SELECT DISTINCT MAX(target) target,
       MAX(LAST_UPDATE_TIME) LAST_UPDATE_TIME,
       MAX(elapsed_seconds) elapsed_seconds,
       sl.sql_id, s.child_number,
       sql_plan_operation, sql_plan_options,
       MAX(DBMS_LOB.SUBSTR(SQL_FULLTEXT, 3000, 1)) sqltext
FROM v$session_longops sl, v$sql s
WHERE s.sql_id = sl.sql_id
  AND s.HASH_VALUE = sl.sql_hash_value
  AND NOT REGEXP_LIKE(message, 'EXPORT|RMAN|Gather|Advisor')
  AND elapsed_seconds > 60
GROUP BY sl.sql_id, sql_plan_operation, sql_plan_options, s.child_number
ORDER BY LAST_UPDATE_TIME, elapsed_seconds, sl.sql_id;

五、参数与统计信息检查

5.1 非默认参数

  • 检查目的:查看所有非默认值的初始化参数
  • 涉及视图gv$parameter
sql 复制代码
SELECT inst_id, name, type, value, display_value
FROM gv$parameter
WHERE ISDEFAULT = 'FALSE'
ORDER BY 2, 1;

5.2 统计信息相关参数

  • 检查目的:查看与统计信息收集相关的参数设置
  • 涉及视图gv$parameter
sql 复制代码
SELECT num, name, type, value, DISPLAY_VALUE, ISDEFAULT, DESCRIPTION
FROM v$parameter
WHERE name LIKE '%statistic%';

5.3 表统计信息

  • 检查目的:检查表的统计信息锁定和过时情况
  • 涉及视图dba_tab_statistics
sql 复制代码
SELECT owner, stattype_locked, stale_stats, COUNT(*) cnt
FROM dba_tab_statistics
GROUP BY owner, stattype_locked, stale_stats
ORDER BY 1, 2, 3;

5.4 索引统计信息

  • 检查目的:检查索引的统计信息锁定和过时情况
  • 涉及视图dba_ind_statistics
sql 复制代码
SELECT owner, stattype_locked, stale_stats, COUNT(*) cnt
FROM dba_ind_statistics
GROUP BY owner, stattype_locked, stale_stats
ORDER BY 1, 2, 3;

六、补丁与版本检查

6.1 数据库补丁

  • 检查目的:查看数据库补丁安装历史
  • 涉及视图dba_registry_history, v$instance
sql 复制代码
SELECT action_time, ACTION, version, comments
FROM dba_registry_history
ORDER BY 1;

七、存储空间检查

7.1 共享存储(ASM)

  • 检查目的:检查ASM磁盘组的使用情况
  • 涉及视图v$asm_diskgroup
sql 复制代码
SELECT name, STATE, total_mb, free_mb,
       TRUNC((total_mb - free_mb) / total_mb * 100, 2) || ' %' pect, type
FROM v$asm_diskgroup
ORDER BY 1;

7.2 数据表空间

  • 检查目的:检查数据表空间的使用率
  • 涉及视图dba_tablespace_usage_metrics, dba_tablespaces
sql 复制代码
SELECT dt.tablespace_name AS tablespace,
       dt.contents AS type,
       TRUNC(dt.block_size * dtum.used_space / 1024 / 1024 / 1024, 2) AS used_gb,
       TRUNC(dt.block_size * dtum.tablespace_size / 1024 / 1024 / 1024, 2) AS max_gb,
       TRUNC(dt.block_size * (dtum.tablespace_size - dtum.used_space) / 1024 / 1024 / 1024, 2) AS free_gb,
       TRUNC(dtum.used_space / dtum.tablespace_size * 100, 2) used_pect
FROM dba_tablespace_usage_metrics dtum, dba_tablespaces dt
WHERE dtum.tablespace_name = dt.tablespace_name
ORDER BY tablespace;

7.3 临时表空间

  • 检查目的:检查临时表空间大小及用户分配情况
  • 涉及视图dba_users, v$tempfile, v$tablespace
sql 复制代码
WITH tff AS (
    SELECT ts.name, SUM(tf.bytes) / 1024 / 1024 / 1024 size_gb
    FROM v$tempfile tf, v$tablespace ts
    WHERE tf.ts# = ts.ts#
    GROUP BY ts.name
    ORDER BY 2
),
us AS (
    SELECT username, default_tablespace dt_name, temporary_tablespace ts_name
    FROM dba_users du
    WHERE created > (SELECT created + 1 FROM dba_users WHERE username = 'SYS')
)
SELECT us.*, tff.size_gb
FROM tff, us
WHERE tff.name = us.ts_name;

7.4 归档空间统计

  • 检查目的:检查闪回恢复区(FRA)的使用情况
  • 涉及视图v$flash_recovery_area_usage
sql 复制代码
SELECT * FROM v$flash_recovery_area_usage;

八、归档与Redo日志检查

8.1 归档日志

  • 检查目的:统计最近14天的归档日志生成情况
  • 涉及视图v$archived_log
sql 复制代码
SELECT TO_CHAR(first_time, 'yyyy-mm-dd hh24:mi') time,
       COUNT(*) cnt,
       TRUNC(SUM(blocks * block_size) / 1024, 2) size_mb
FROM v$archived_log
WHERE creator = 'ARCH'
  AND first_time > SYSDATE - 14
GROUP BY TO_CHAR(first_time, 'yyyy-mm-dd hh24:mi')
ORDER BY 1;

8.2 归档日志分析(按小时维度)

  • 检查目的:分析最近15天的归档日志按小时分布情况
  • 涉及视图gv$log_history
sql 复制代码
SELECT a.THREAD#,
       SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'), 1, 5) Day,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '00', 1, 0)) H00,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '01', 1, 0)) H01,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '02', 1, 0)) H02,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '03', 1, 0)) H03,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '04', 1, 0)) H04,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '05', 1, 0)) H05,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '06', 1, 0)) H06,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '07', 1, 0)) H07,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '08', 1, 0)) H08,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '09', 1, 0)) H09,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '10', 1, 0)) H10,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '11', 1, 0)) H11,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '12', 1, 0)) H12,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '13', 1, 0)) H13,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '14', 1, 0)) H14,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '15', 1, 0)) H15,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '16', 1, 0)) H16,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '17', 1, 0)) H17,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '18', 1, 0)) H18,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '19', 1, 0)) H19,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '20', 1, 0)) H20,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '21', 1, 0)) H21,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '22', 1, 0)) H22,
       SUM(DECODE(SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH24:MI:SS'), 10, 2), '23', 1, 0)) H23,
       COUNT(*) TOTAL
FROM gv$log_history a
WHERE first_time >= TO_CHAR(SYSDATE - 15)
GROUP BY a.THREAD#, SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'), 1, 5)
ORDER BY a.THREAD#, SUBSTR(TO_CHAR(first_time, 'MM/DD/RR HH:MI:SS'), 1, 5) DESC;

8.3 Redo 日志状态

  • 检查目的:检查Redo日志组的状态和大小
  • 涉及视图v$log
sql 复制代码
SELECT group# group_id, thread# thread_id, sequence# sequence_id,
       bytes / 1024 / 1024 size_mb, members, status, first_time, next_time
FROM v$log
ORDER BY 2, 1, 3;

九、对象与空间分析检查

9.1 大表(>10GB)

  • 检查目的:找出占用空间超过10GB的数据库对象
  • 涉及视图dba_segments
sql 复制代码
SELECT owner, segment_name, segment_type, COUNT(*) cnt,
       TRUNC(SUM(bytes) / 1024 / 1024 / 1024, 2) size_gb
FROM dba_segments
GROUP BY owner, segment_name, segment_type
HAVING TRUNC(SUM(bytes) / 1024 / 1024 / 1024, 2) > 10
ORDER BY 5 DESC, 4 DESC;

9.2 分区表存在普通非分区索引

  • 检查目的:检查分区表上是否存在非分区普通索引(可能导致性能问题)
  • 涉及视图dba_indexes, dba_tables, dba_users
sql 复制代码
SELECT table_owner, table_name, owner, index_name, index_type, status
FROM dba_indexes
WHERE index_type <> 'LOB'
  AND partitioned = 'NO'
  AND uniqueness <> 'UNIQUE'
  AND (owner, table_name) IN (
      SELECT owner, table_name
      FROM dba_tables
      WHERE partitioned = 'YES'
        AND owner IN (
            SELECT username FROM dba_users
            WHERE created > (SELECT created + 1 FROM dba_users WHERE username = 'SYS')
        )
  )
ORDER BY 1, 2, 3, 4;

9.3 高水位过高 - 普通表

  • 检查目的:检查普通表的实际数据量与占用空间的比例,发现高水位线问题
  • 涉及视图dba_users, DBA_tables
sql 复制代码
SELECT owner, table_name,
       TRUNC(num_rows * avg_row_len / 1024 / 1024, 2) data_size_mb,
       TRUNC(blocks * 8 / 1024, 2) disk_size_mb,
       TRUNC(TRUNC(num_rows * avg_row_len / 1024 / 1024, 2) /
             (TRUNC(blocks * 8 / 1024, 2) + 1) * 100, 2) used_pect,
       empty_blocks
FROM DBA_tables
WHERE owner IN (
    SELECT USERNAME FROM dba_users
    WHERE NOT REGEXP_LIKE(account_status, 'LOCKED|EXPIRED|GRACE')
      AND USERNAME IN (
          SELECT username FROM dba_users
          WHERE created >= (SELECT created + 1 FROM dba_users WHERE username = 'SYS')
      )
)
  AND owner NOT IN ('SQLTXPLAIN')
ORDER BY disk_size_mb DESC;

9.4 高水位过高 - 分区表

  • 检查目的:检查分区表的实际数据量与占用空间的比例
  • 涉及视图DBA_TAB_PARTITIONS, dba_users
sql 复制代码
SELECT table_owner, table_name,
       TRUNC(num_rows * avg_row_len / 1024 / 1024, 2) data_size_mb,
       TRUNC(blocks * 8 / 1024, 2) disk_size_mb,
       TRUNC(TRUNC(num_rows * avg_row_len / 1024 / 1024, 2) /
             (TRUNC(blocks * 8 / 1024, 2) + 1) * 100, 2) used_pect,
       empty_blocks
FROM DBA_TAB_PARTITIONS
WHERE table_owner IN (
    SELECT USERNAME FROM dba_users
    WHERE NOT REGEXP_LIKE(account_status, 'LOCKED|EXPIRED|GRACE')
      AND USERNAME IN (
          SELECT username FROM dba_users
          WHERE created >= (SELECT created + 1 FROM dba_users WHERE username = 'SYS')
      )
)
  AND table_owner NOT IN ('SQLTXPLAIN')
ORDER BY disk_size_mb DESC;

9.5 存放在系统表空间下的表

  • 检查目的:检查用户表是否错误地存放在SYSTEM、SYS、USERS等系统表空间中
  • 涉及视图dba_segments, dba_users
sql 复制代码
SELECT owner, segment_name, partition_name, tablespace_name
FROM dba_segments
WHERE tablespace_name IN ('SYS', 'SYSTEM', 'USERS')
  AND owner IN (
      SELECT USERNAME FROM dba_users
      WHERE NOT REGEXP_LIKE(account_status, 'LOCKED|EXPIRED|GRACE')
        AND USERNAME NOT IN ('SYS', 'SYSTEM', 'SQLTXPLAIN')
  )
ORDER BY 1, 2;

9.6 用户空间统计

  • 检查目的:统计各业务用户的对象数量和占用空间大小
  • 涉及视图dba_objects, dba_segments, dba_users
sql 复制代码
WITH a AS (
    SELECT owner, COUNT(*) obj_cnt
    FROM dba_objects
    WHERE owner IN (SELECT username FROM dba_users
                    WHERE created >= (SELECT created + 1 FROM dba_users WHERE username = 'SYS'))
    GROUP BY owner
),
b AS (
    SELECT owner, TRUNC(SUM(bytes) / 1024 / 1024 / 1024, 1) size_gb
    FROM dba_segments
    WHERE owner IN (SELECT username FROM dba_users
                    WHERE created >= (SELECT created + 1 FROM dba_users WHERE username = 'SYS'))
    GROUP BY owner
)
SELECT a.owner, a.obj_cnt, b.size_gb
FROM a, b
WHERE a.owner = b.owner
ORDER BY 3, 2, 1;

十、配置与对象变更检查

10.1 表并行度

  • 检查目的:检查设置了并行度的用户表(可能影响OLTP性能)
  • 涉及视图dba_tables
sql 复制代码
SELECT owner, table_name, tablespace_name, status, degree
FROM dba_tables
WHERE TRIM(degree) > '1'
  AND owner NOT IN ('SYS', 'SYSTEM');

10.2 最近7天结构发生变化的数据库对象

  • 检查目的:追踪近期DDL变更,排查异常变更
  • 涉及视图dba_objects, dba_users
sql 复制代码
SELECT owner, object_name, object_type, object_id, created, last_ddl_time
FROM dba_objects
WHERE (created > SYSDATE - 7 OR last_ddl_time > SYSDATE - 7)
  AND owner IN (
      SELECT username FROM dba_users
      WHERE default_tablespace NOT IN ('SYSAUX', 'SYSTEM')
        AND account_status <> 'LOCKED'
  )
  AND object_type NOT LIKE '%PARTITION%'
ORDER BY owner, last_ddl_time DESC, created DESC;

10.3 序列信息

  • 检查目的:检查业务用户序列的缓存设置(缓存过小可能影响并发性能)
  • 涉及视图dba_sequences, dba_users
sql 复制代码
SELECT SEQUENCE_OWNER owner, sequence_name sname, CACHE_SIZE,
       MIN_VALUE, TO_CHAR(MAX_VALUE) MAX_VALUE, INCREMENT_BY, LAST_NUMBER
FROM dba_sequences
WHERE SEQUENCE_OWNER IN (
    SELECT username FROM dba_users
    WHERE created > (SELECT created + 1 FROM dba_users WHERE username = 'SYS')
)
  AND CACHE_SIZE < 200
ORDER BY LAST_NUMBER DESC;

十一、连接与外部对象检查

  • 检查目的:查看数据库链接配置情况
  • 涉及视图dba_db_links
sql 复制代码
SELECT owner, db_link, username, host, created
FROM dba_db_links
ORDER BY owner, created;

11.2 回收站对象

  • 检查目的:检查回收站中对象占用空间情况
  • 涉及视图DBA_RECYCLEBIN
sql 复制代码
SELECT owner, ts_name, COUNT(*) CNT, SUM(SPACE * 8) / 1024 size_mb
FROM DBA_RECYCLEBIN
GROUP BY owner, ts_name
ORDER BY 1, 2, 4;

十二、备份检查

12.1 数据库备份(RMAN)

  • 检查目的:检查RMAN备份作业的执行情况
  • 涉及视图V$RMAN_BACKUP_JOB_DETAILS
sql 复制代码
SELECT TO_CHAR(command_id, 'MM-DD hh24:mi') command_id,
       TO_CHAR(start_time, 'MM-DD hh24:mi') start_time,
       TO_CHAR(end_time, 'MM-DD hh24:mi') end_time,
       status, input_type,
       TRUNC(elapsed_seconds, 2) elapsed_seconds,
       TRUNC(compression_ratio, 2) compression_ratio,
       input_bytes_display, output_bytes_display
FROM V$RMAN_BACKUP_JOB_DETAILS
ORDER BY start_time;

检查项汇总表

序号 检查类别 检查项 涉及视图 启用状态
1 基础状态 数据库状态 gv$database
2 基础状态 实例状态 gv$instance
3 基础状态 组件状态 dba_registry
4 资源 用户连接数 gv$session
5 内存 SGA gv$sgainfo
6 内存 PGA gv$pgastat
7 内存 Shared Pool gv$sgastat
8 日志 最近日志 v$diag_alert_ext
9 性能 数据库报告(AWR) dba_hist_snapshot
10 性能 慢SQL v$session_longops, v$sql
11 参数 非默认参数 gv$parameter
12 统计信息 表统计信息 dba_tab_statistics
13 统计信息 索引统计信息 dba_ind_statistics
14 参数 统计信息相关参数 gv$parameter
15 版本 数据库补丁 dba_registry_history
16 存储 共享存储(ASM) v$asm_diskgroup
17 存储 数据表空间 dba_tablespace_usage_metrics
18 存储 临时表空间 dba_users, v$tempfile
19 存储 归档空间统计 v$flash_recovery_area_usage
20 日志 归档日志 v$archived_log
21 日志 归档日志分析 gv$log_history
22 日志 Redo状态 v$log
23 对象分析 大表 dba_segments
24 对象分析 分区表存在普通非分区索引 dba_indexes, dba_tables
25 对象分析 高水位过高-普通表 DBA_tables, dba_users
26 对象分析 高水位过高-分区表 DBA_TAB_PARTITIONS
27 对象分析 存放在系统表空间下的表 dba_segments, dba_users
28 对象分析 用户空间统计 dba_objects, dba_segments
29 配置 表并行度 dba_tables
30 配置 最近7天结构变更 dba_objects, dba_users
31 配置 序列信息 dba_sequences, dba_users
32 连接 DBLinks dba_db_links
33 对象分析 回收站对象 DBA_RECYCLEBIN
34 备份 数据库备份(RMAN) V$RMAN_BACKUP_JOB_DETAILS

说明

  • 所有SQL均基于Oracle 11g/12c/19c 动态性能视图
  • 部分SQL需要DBA权限才能执行
  • 检查项30(最近7天结构变更)当前标记为未启用(0),其余均为启用状态(1)
  • 涉及业务用户的查询均以SYS用户创建时间为基准筛选(排除系统内置用户)
相关推荐
吴声子夜歌1 小时前
SQL经典实例——插入、更新和删除
数据库·sql
基德爆肝c语言1 小时前
MySQL:数据库基础
数据库·mysql
倒流时光三十年1 小时前
PostgreSQL GREATEST 条件表达式函数详解
服务器·数据库·postgresql
山峰哥1 小时前
VBA数据结构之争:Dictionary vs Collection,性能差3倍!
服务器·数据结构·数据库·windows·sql·算法·哈希算法
火山上的企鹅11 小时前
Codex实战:APP远程升级服务搭建(三)后台管理页面(APK 上传、版本管理、多应用页签)
服务器·网络·数据库·oracle·qgc
阿狸猿12 小时前
论 NoSQL 数据库技术及其应用
数据库·nosql
FBI HackerHarry浩12 小时前
DataGrip2023.2.3默认保存的数据库和.sql文件在哪里?怎么修改默认路径?
数据库
袁小皮皮不皮12 小时前
3.HCIP OSPF补充知识(优化版)
服务器·网络·数据库·网络协议·智能路由器
运筹vivo@12 小时前
Python ContextVar 底层机制与内存模型拆解
前端·数据库·python