• JonTechTips

    Jonny Hu

    Oracle数据库上线检查小记

    2024-09-08
    Oracle数据库上线检查小记

    查找 Oracle 数据库的实例名

    方法一:查看 oratab 文件

    1. 通常,Oracle 数据库的实例信息保存在 /etc/oratab 文件中。你可以使用以下命令查看该文件的内容:

      cat /etc/oratab
    2. 该文件的格式通常为:

      ORACLE_SID:ORACLE_HOME:<N|Y>

      其中,ORACLE_SID 就是数据库实例名。

    方法二:使用 ps 命令

    1. 你可以使用 ps 命令来查找当前运行的 Oracle 进程并从中提取实例名:

      ps -ef | grep smon
    2. 输出通常类似于:

      oracle   1234     1  0 Aug29 ?        00:00:02 ora_smon_<SID>

      这里的 <SID> 就是实例名。

    show parameter

    是 Oracle SQL*Plus 中的一个命令,用于显示当前 Oracle 数据库实例中的参数配置。通过这个命令,数据库管理员和用户可以快速查看数据库的各种初始化参数及其当前设置,这些参数控制了数据库的运行行为。

    show parameter 的主要用途包括:

    1. 查看特定参数的值:你可以通过 show parameter 查看单个参数的当前值。例如:

      show parameter open_cursors;

      这将显示 open_cursors 参数的当前设置。

    2. 查看一组参数:你可以使用通配符(如 %)来查看一组相关的参数。例如:

      show parameter log;

      这将显示所有名称中包含 log 的参数及其值。

    3. 检查配置状态:通过 show parameter,你可以快速检查某些关键参数是否已正确配置,这对排查问题和优化数据库性能非常重要。

    show parameter 输出的信息包括:

    • NAME:参数的名称。

    • TYPE:参数的类型(如字符串、整数、布尔值等)。

    • VALUE:参数的当前值。

    常见的使用场景:

    • 性能优化:检查和调整参数(如 sga_target, pga_aggregate_target)以优化数据库性能。

    • 问题排查:通过查看相关参数的设置来排查数据库的配置问题或错误。

    • 数据库配置审核:定期查看和记录数据库的参数设置,确保配置符合业务需求和最佳实践。

    示例

    show parameter audit_trail;

    输出类似于:

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    audit_trail                          string      NONE

    这个输出表明 audit_trail 参数的当前值为 NONE,即没有启用审计功能。

    show parameter 是数据库管理中非常有用的工具,用于了解和控制 Oracle 数据库的配置和行为。

    查找拥有SYSDBA权限的用户

    设置适当的列格式

    你可以调整列的显示宽度,确保输出内容在一行内显示。例如:

    SET LINESIZE 100
    COL USERNAME FORMAT A20
    COL SYSDBA FORMAT A5
    ​
    SELECT USERNAME, SYSDBA
    FROM V$PWFILE_USERS
    WHERE SYSDBA = 'TRUE';

    示例输出

    在上述调整后,输出将会变得更加简洁和清晰,例如:

    USERNAME             SYSDBA
    -------------------- -----
    SYS                  TRUE
    ADMIN                TRUE

    查找拥有DBA权限的用户

    SET LINESIZE 100
    COL USERNAME FORMAT A20
    COL GRANTED_ROLE FORMAT A20
    ​
    SELECT GRANTEE AS USERNAME, GRANTED_ROLE 
    FROM DBA_ROLE_PRIVS 
    WHERE GRANTED_ROLE = 'DBA';

    解释:

    • GRANTEE AS USERNAME: 将 GRANTEE 列重命名为 USERNAME 以便于理解,这是持有 DBA 角色的用户或角色名称。

    • GRANTED_ROLE: 显示授予的角色名称。

    • DBA_ROLE_PRIVS: 视图存储了所有用户和角色的授予信息。

    示例输出:

    运行该查询后,你可能会看到如下的结果:

    USERNAME             GRANTED_ROLE
    -------------------- --------------------
    SYS                  DBA
    SYSTEM               DBA
    ADMIN_USER           DBA