动态性能视图,Oracle数据库维护的好帮手(一)

动态性能视图,Oracle数据库维护的好帮手(一),第1张

动态性能视图主要是Oracle数据的库自动收集并记录当前例程的活动信息 当数据库管理员启动某个例程时 数据库会自动建立动态性能视图当停止某个例程时 数据库又会自动删除这些动态性能视图 这表面看起来跟数据字典有异曲同工之妙 但是 两者信息的来源还是有很大差异的 数据字典的信息是从数据文件中取得而动态性能视图的信息则是从SGA内存以及控制文件中取得 所以 两者所反映的信息还是有很大差异的 数据库管理员利用这些动态性能视图 可以了解数据库运行的一些基本信息 为我们进行数据库维护以及数据库性能优化提供一些数据上的支持 一般情况下 我们可以通过动态性能数据掌握两类重要的数据库运行信息 一是了解数据库运行相关的性能数据 如内存的使用量 磁盘排序发生的机率等等 二是取得与磁盘和内存结构相关的其他信息 这些信息将是我们进行数据库维护与数据库性能调整的主要参考依据

为了便于数据库管理员查询这些动态视图 Oracle数据库中的动态性能视图跟其他数据库对象有着不同的命名规则 通常情况下 动态性能视图都是以V_$前缀开头的 并且Oracle数据库维每个动态性能视图提供了相应的同义词 下面笔者就介绍一些动态性能视图查询中的一些技巧以 帮助广大数据库管理员提高对Oracle数据库动态性能视图的认识

一 知道可用的动态性能视图

因为动态性能视图是随着例程的启动而启动 随着例程的消亡而消亡 其是动态变化的 所以 对于一些动态性能视图不怎么了解的数据库管理员来说 第一步就是需要了解 现在数据库中到底有哪些动态性能视图可以用 Oracle数据库中有一张V_$fixed_table动态性能视图 这张视图中纪录著当前所有可用的动态性能视图 当数据库管理员对动态性能不怎么了解的话 可以先通过这张视图了解动态性能视图的概况 并了解哪些动态性能视图当前是可用的 数据库管理员可以通过下面的命令查询当前可用的所有动态性能视图

在通常情况下 数据库不同的状态其动态性能视图还是有比较大的差异 数据库管理员掌握这些差异 对于他们借助这些视图来管理数据库可能会有更大的帮助

一是数据库处于 NOMOUNT 状态 数据库启动例程时 Oracle数据库会打开参数文件 分配SGA内存并启动后台进程 此时 其实数据库还没有挂栽 此时 动态性呢视图收集的信息来源只有是SGA 而不会从控制文件中收集相关的信息 所以 动态性能视图的数量要少得多

二是当数据库处于MOUNT状态时 数据库会根据初始化参数打开所有的控制文件 所以 当例程处于Mount状态时 动态性能视图其收集到的信息就要第一个状态多的多 因为此时 动态性能视图还会去收集控制文件的相关信息 不过 此时动态性能视图所收集到的资料还不是最全的

三是当用户打开数据库时 Oracle系统会根据控制文件所记载的信息去打开所有的数据库文件以及重做日志 此时 数据库管理员除了可以从SGA和控制文件中获取信息的动态性能视图外 还可能访问与Oracle数据库性能相关的动态性能视图 如会话等待时间等视图 另外需要注意一点 就是只有在这个状态时 我们才能够访问数据库的数据字典视图

lishixinzhi/Article/program/Oracle/201311/17253

在Oracle数据库系统中 用户如果要以特权用户身份(INTERNAL/SYSDBA/SYSOPER)登录Oracle 数据库可以有两种身份验证的方法 即使用与 *** 作系统集成的身份验证或使用Oracle数据库的密码文件进行身份验证 因此 管理好密码文件 对于控制授权用户从远端或本机登录Oracle数据库系统 执行数据库管理工作 具有重要的意义

Oracle数据库的密码文件存放有超级用户INTERNAL/SYS的口令及其他特权用户的用户名/口令 它一般存放在ORACLE_HOME\DATABASE目录下

一 密码文件的创建

在使用Oracle Instance Manager创建一数据库实例的时侯 在ORACLE_HOME\DATABASE目录下还自动创建了一个与之对应的密码文件 文件名为PWDSID ORA 其中SID代表相应的Oracle数据库系统标识符 此密码文件是进行初始数据库管理工作的基础 在此之后 管理员也可以根据需要 使用工具ORAPWD EXE手工创建密码文件 命令格式如下

C:\ >ORAPWD FILE=< FILENAME > PASSWORD =< PASSWORD >

ENTRIES=<MAX_USERS >

各命令参数的含义为

FILENAME 密码文件名

PASSWORD 设置INTERNAL/SYS帐号的口令

MAX_USERS 密码文件中可以存放的最大用户数 对应于允许以SYSDBA/SYSOPER权限登录数据库的最大用户数 由于在以后的维护中 若用户数超出了此限制 则需要重建密码文件 所以此参数可以根据需要设置得大一些

有了密码文件之后 需要设置初始化参数REMOTE_LOGIN_PASSWORDFILE来控制密码文件的使用状态

二 设置初始化参数REMOTE_LOGIN_PASSWORDFILE

在Oracle数据库实例的初始化参数文件中 此参数控制着密码文件的使用及其状态 它可以有以下几个选项 NONE 指示Oracle系统不使用密码文件 特权用户的登录通过 *** 作系统进行身份验证 EXCLUSIVE 指示只有一个数据库实例可以使用此密码文件 只有在此设置下的密码文件可以包含有除INTERNAL/SYS以外的用户信息 即允许将系统权限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户 SHARED 指示可有多个数据库实例可以使用此密码文件 在此设置下只有INTERNAL/SYS帐号能被密码文件识别 即使文件中存 有其他用户的信息 也不允许他们以SYSOPER/SYSDBA的权限登录 此设置为缺省值

在REMOTE_LOGIN_PASSWORDFILE参数设置为EXCLUSIVE SHARED情况下 Oracle系统搜索密码文件的次序为 在系统注册库中查找ORA_SID_PWFILE参数值(它为密码文件的全路径名) 若未找到 则查找ORA_PWFILE参数值 若仍未找到 则使用缺省值ORACLE_HOME\DATABASE\PWDSID ORA 其中的SID代表相应的Oracle数据库系统标识符

三 向密码文件中增加 删除用户

当初始化参数REMOTE_LOGIN_PASSWORDFILE设置为EXCLUSIVE时 系统允许除INTERNAL/SYS以外的其他用户以管理员身份从远端或本机登录到Oracle数据库系统 执行数据库管理工作 这些用户名必须存在于密码文件中 系统才能识别他们 由于不管是在创建数据库实例时自动创建的密码文件 还是使用工具ORAPWD EXE手工创建的密码文件 都只包含INTERNAL/SYS用户的信息 为此 在实际 *** 作中 可能需要向密码文件添加或删除其他用户帐号

由于仅被授予SYSOPER/SYSDBA系统权限的用户才存在于密码文件中 所以当向某一用户授予或收回SYSOPER/SYSDBA系统权限时 他们的帐号也将相应地被加入到密码文件或从密码文件中删除 由此 向密码文件中增加或删除某一用户 实际上也就是对某一用户授予或收回SYSOPER/SYSDBA系统权限

要进行此项授权 *** 作 需使用SYSDBA权限(或INTERNAL帐号)连入数据库 且初始化参数REMOTE_LOGIN_PASSWORDFILE的设置必须为EXCLUSIVE 具体 *** 作步骤如下 创建相应的密码文件 设置初始化参数REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE 使用SYSDBA权限登录 CONNECT SYS/internal_user_passsword AS SYSDBA 启动数据库实例并打开数据库 创建相应用户帐号 对其授权(包括SYSOPER和SYSDBA) 授予权限 GRANT SYSDBA TO user_name 收回权限 REVOKE SYSDBA FROM user_name 现在这些用户可以以管理员身份登录数据库系统了

四 使用密码文件登录

有了密码文件后 用户就可以使用密码文件以SYSOPER/SYSDBA权限登录Oracle数据库实例了 注意初始化参数REMOTE_LOGIN_PASSWORDFILE应设置为EXCLUSIVE或SHARED 任何用户以SYSOPER/SYSDBA的权限登录后 将位于SYS用户的Schema之下 以下为两个登录的例子

以管理员身份登录

假设用户scott已被授予SYSDBA权限 则他可以使用以下命令登录

CONNECT scott/tiger AS SYSDBA

以INTERNAL身份登录

CONNECT INTERNAL/INTERNAL_PASSWORD

五 密码文件的维护

查看密码文件中的成员

可以通过查询视图V$PWFILE_USERS来获取拥有SYSOPER/SYSDBA系统权限的用户的信息 表中SYSOPER/SYSDBA 列的取值TRUE/FALSE表示此用户是否拥有相应的权限 这些用户也就是相应地存在于密码文件中的成员

扩展密码文件的用户数量

当向密码文件添加的帐号数目超过创建密码文件时所定的限制(即ORAPWD EXE工具的MAX_USERS参数)时 为扩展密码文件的用户数限制 需重建密码文件 具体步骤如下

a) 查询视图V$PWFILE_USERS 记录下拥有SYSOPER/SYSDBA系统权限的用户信息

b) 关闭数据库

c) 删除密码文件

d) 用ORAPWD EXE新建一密码文件

e) 将步骤a中获取的用户添加到密码文件中

修改密码文件的状态

密码文件的状态信息存放于此文件中 当它被创建时 它的缺省状态为SHARED 可以通过改变初始化参数REMOTE_LOGIN_PASSWORDFILE的设置改变密码文件的状态 当启动数据库事例时 Oracle系统从初始化参数文件中读取REMOTE_LOGIN_PASSWORDFILE参数的设置 当加载数据库时 系统将此参数与口令文件的状态进行比较 如果不同 则更新密码文件的状态 若计划允许从多台客户机上启动数据库实例 由于各客户机上必须有初始化参数文件 所以应确保各客户机上的初始化参数文件的一致性 以避免意外地改变了密码文件的状态 造成数据库登陆的失败

修改密码文件的存储位置

密码文件的存放位置可以根据需要进行移动 但作此修改后 应相应修改系统注册库有关指向密码文件存放位置的参数或环境变量的设置

删除密码文件

lishixinzhi/Article/program/Oracle/201311/16961


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6691326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存