Oracle内常用命令

发布于:2025-03-31 ⋅ 阅读:(25) ⋅ 点赞:(0)

使用 sqlplus / as sysdba 登录到 Oracle 数据库后,你可以执行一系列命令来检查数据库的状态、配置和性能。以下是一些常用的命令和操作,帮助你检查 Oracle 数据库的健康状况:


1. 检查数据库状态

  • 查看数据库是否已启动:

    SELECT status FROM v$instance;
    • 正常状态应为 OPEN
  • 查看数据库的启动时间:

    SELECT startup_time FROM v$instance;

2. 检查表空间使用情况

  • 查看表空间的使用情况:
    SELECT tablespace_name,        ROUND(SUM(bytes) / 1024 / 1024, 2) AS total_mb,        ROUND(SUM(bytes - NVL(free_bytes, 0)) / 1024 / 1024, 2) AS used_mb,        ROUND(SUM(free_bytes) / 1024 / 1024, 2) AS free_mb FROM (SELECT tablespace_name, file_id, SUM(bytes) AS bytes       FROM dba_data_files       GROUP BY tablespace_name, file_id) LEFT JOIN (SELECT tablespace_name, file_id, SUM(bytes) AS free_bytes            FROM dba_free_space            GROUP BY tablespace_name, file_id) USING (tablespace_name, file_id) GROUP BY tablespace_name;
    • 关注 free_mb,确保表空间有足够的空闲空间。

3. 检查数据库日志

  • 查看告警日志(Alert Log):
    SELECT value FROM v$diag_info WHERE name = 'Diag Trace';
    • 然后到返回的路径下查看 alert_<SID>.log 文件,检查是否有错误或警告信息。

4. 检查数据库性能

  • 查看当前会话的等待事件:

    SELECT event, total_waits, time_waited FROM v$session_event WHERE sid = (SELECT sid FROM v$mystat WHERE rownum = 1);
    • 关注 time_waited,识别性能瓶颈。
  • 查看当前活动的 SQL 语句:

    SELECT sid, serial#, sql_id, sql_text FROM v$session WHERE status = 'ACTIVE' AND sql_id IS NOT NULL;

5. 检查数据库参数

  • 查看当前数据库参数:
    SHOW PARAMETER;
    • 或者查看特定参数:
      SHOW PARAMETER <parameter_name>;

6. 检查数据库对象状态

  • 检查无效对象:

    SELECT owner, object_name, object_type FROM dba_objects WHERE status = 'INVALID';
  • 检查索引的状态:

    SELECT index_name, table_name, status FROM dba_indexes WHERE status = 'UNUSABLE';

7. 检查数据库备份

  • 查看最近的 RMAN 备份信息:
    SELECT * FROM v$rman_backup_job_details ORDER BY start_time DESC;

8. 检查数据库连接

  • 查看当前连接的会话:

    SELECT sid, serial#, username, status, machine, program FROM v$session;
  • 查看数据库的最大连接数和当前连接数:

    SELECT resource_name, current_utilization, max_utilization FROM v$resource_limit WHERE resource_name = 'processes';

9. 检查数据库版本

  • 查看数据库版本:
    SELECT * FROM v$version;

10. 检查数据库锁

  • 查看当前锁的信息:

    SELECT sid, serial#, username, lockwait, status FROM v$session WHERE lockwait IS NOT NULL;
  • 查看锁定的对象:

    SELECT * FROM dba_locks;

11. 检查数据库存储

  • 查看数据文件的状态:

    SELECT file_name, status, bytes / 1024 / 1024 AS size_mb FROM dba_data_files;
  • 查看控制文件的状态:

    SELECT name, status FROM v$controlfile;

12. 检查数据库统计信息

  • 查看统计信息的收集时间:
    SELECT table_name, last_analyzed FROM dba_tables WHERE owner = '<schema_name>';

13. 检查数据库角色和权限

  • 查看当前用户的角色:

    SELECT * FROM session_roles;
  • 查看当前用户的权限:

    SELECT * FROM session_privs;

14. 检查数据库错误

  • 查看数据库中的错误信息:
    SELECT * FROM dba_errors;

15. 退出 SQL*Plus

  • 退出 SQL*Plus:
    EXIT;

通过以上命令,你可以全面检查 Oracle 数据库的健康状况,识别潜在问题并采取相应的措施。


网站公告

今日签到

点亮在社区的每一天
去签到