Instance Management
Overview
• 实例管理主要讨论以下方面的内容:
 – 数据库初始化参数的设置
 – 数据库的启动和关闭
 – 数据库告警日志和跟踪文件
 – 数据字典和动态性能视图
实例的管理对于数据库的性能调优 和 灾难
恢复均十分重要, 一个好的oracle DBA应当十
分熟悉这些内容.
Initialization Parameters
             - Overview
• 初始化参数控制了oracle数据库的各个方面, 这
  些参数中大概有300个是支持DBA进行设定的,
  它们又分为基础参数(大概33个, 根据版本不同)
  和高级参数, 通常而言DBA需要考虑的是那些基
  础参数; 另外还有1500个左右的隐藏参数, 这些
  参数是不支持DBA进行设定的;
• 初始化参数分为静态的和动态两种类型, 前者
  在实例启动之后不能被修改, 大部分参数都是
  动态的, 这些参数的设置保存在pfile或者动态
  的spfile中; 除了DB_NAME参数之外所有的参数
  都有默认值, 如果没有在参数文件中进行设置,
  则会使用它们的默认值.
Initialization Parameters
                    - Parameter file
•   oracle数据库可以使用pfile或者spfile作为启动参数文件, pfile的命名格式为:
     – init${ORACLE_SID}.ora 或者 init.ora
    spfile是在oracle的后期版本引入的, 命名格式为:
     – spfile${ORACLE_SID}.ora 或者 spfile.ora
    spfile相比pfile的好处在于:
     – 动态改变参数, 无需重启数据库;
     – spfile不能被人工编辑, 从而减少错误的发生;
     – 可以使用RMAN对spfile进行备份.
•   实例在启动时会查看${ORACLE_HOME}/dbs(Unix, linux)或者
    ${ORACLE_HOME}/database目录, 并按照如下顺序读取参数文件:
     –   spfile${ORACLE_SID}.ora             (SPFILE = Server Parameter File)
     –   spfile.ora                          (SPFILE)
     –   init${ORACLE_SID}.ora               (PFILE)
     –   init.ora                            (PFILE)
    使用下面的sql语句查看当前使用的是pfile还是spfile:
    SELECT DECODE (value, NULL, 'PFILE', 'SPFILE') "Init File Type", value
          FROM sys.v_$parameter WHERE name = 'spfile';
•   使用如下语句创建pfile或者spfile
    create spfile [='spfilename'] from pfile [='pfilename'];
    create pfile [='pfilename'] from spfile [='spfilename'];
Initialization Parameters
         - Static vs. Dynamic
• 可以通过视图v$parameter和v$spparameter查
  看当前的启动参数的设置, 前者返回的是当前
  实例运行时参数设置, 后者则是spfile中保存的
  参数设置, 通常情况下两者相同. 不同的情况可
  能发生在: DBA修改了某个静态参数的值, 并且
  写入了spfile; 或者修改某个动态参数的值, 但未
  写入spfile.
• 通过如下sql语句判断参数是静态的还是动态的:
   select NAME, ISSES_MODIFIABLE, ISSYS_MODIFIABLE
    from v$parameter where name like '%%';
Initialization Parameters
        - Alter Parameter Value
• 使用alter system语句修改初始化参数, 该语句会在系统级别修改
  参数的值, 格式如下:
   alter system set pname=pvalue
             [scope=both|memory|spfile]
 scope选项各个值的含义分别是:
  – both       同时修改内存和spfile
  – memory 仅修改内存
  – spfile     仅修改spfile
  默认情况下scope值为both. 需要注意以下情况会导致
  该语句失败:
  – 修改静态参数但scope未指定为spfile;
  – 使用pfile启动数据库但指定scope为spfile;
• 根据不同的参数, 可以在system级别, session级别或者同时允许在
  这两个级别进行设置. 比如optimizer_mode参数既可以在system级
  别也可以在session级别设置, nls_date_format参数则只允许在会
  话级别进行设置. 会话级别设置则使用alter session 语句, 该语句
  的格式: alter session set pname=pvalue
Initialization Parameters
            - Basic Parameters
• 通常DBA需要考虑的是基础启动参数, 使用如下sql
  查询有哪些基础参数:
 select name,value from v$parameter
      where isbasic='TRUE' order by name;
 下面是基础参数的一个列表(这些参数将分别在之
 后的章节中讨论):
Initialization Parameters
    - Basic Parameters
Initialization Parameters
    - Basic Parameters
Database Control
                     - Overview
• Database Control是oracle提供的一个基于Java & Perl编写的工
  具, 用于实现对数据库服务器的远程控制, 需要通过web浏览器
  进行操作. 以oracle系统用户登录, 使用以下命令启动/停止/查
  看Database Control的状态(执行命令之前确保正确设置了
  ORACLE_HOME, ORACLE_SID, PATH等环境变量):
 emctl start|stop|status dbconsole
  使用类似如下的链接进行登录: https://hostname:port/em/, 会
  打开下面的页面. 默认端口为1158, 具体可以查看
  $ORACLE_HOME/install/portlist.ini文件.
• Database Control是oracle推荐用于数据库管理的方式, 可以用
  于执行如下动作:
  – 启动和关闭数据库以及监听器;
  – 查看数据库运行状态, 数据库配置状态;
  – 查看数据库性能信息.
Database Listener
• oracle数据库监听器用于接收对数据库的连接请求,
  有3中方式启动监听器:
 – 使用lsnrctl工具命令
   使用oracle用户登录后, 运行lsnrctl start|stop|status命令
 – 使用database control
    在相关的页面中可以找到启动与停止监听器的链接




 – windows平台上可注册为系统服务
SYSDBA vs. SYSOPER
• SYSDBA 和 SYSOPER是oracle数据库的角色, 角色是一
  个权限控制的概念在以后会讲到. 通过操作系统或
  者密码文件验证, 用户可以以SYSDBA或者SYSOPER角
  色登录. SYSOPER角色可以在sql*plus中执行如下命令:
   startup
   shutdown
   alert database mount|open|close|dismount
   alter [database|tablespace] begin|end backup
   recover
 SYSDBA角色拥有对数据库的最高控制权限, 比如以
 SYSDBA登录的用户可以创建用户, 创建数据库等; 默
 认情况下只有SYS用户拥有SYSDBA/SYSOPER角色, SYS
 用户可以将这些角色分配给其他的用户.
Database Startup
                    - Overview
• 可以通过两种方式启动oracle数据库:
  – 通过SQL*PLUS命令行工具
    SQL*PLUS是oracle自带的一个oracle客户端工具, 可以通过该工具连
    接本地或者远程数据库, 并进行相应的操作. DBA通常使用如下的两
    个步骤登录数据库:
    sqlplus /nolog # 进入sqlplus, 不提示验证信息
    connect username/passwd [as sysdba] # 登录数据库
    startup # 运行startup命令
  – 使用Database ControL
• Logon by OS Auth
  如果可以访问数据库所在的操作系统并且具备相应的权限, 那么
  则可以绕过数据库的验证直接以SYSDBA的身份登录, 这要求系
  统用户在dba系统用户组中. 在创建数据库时, 我们创建了oracle
  用户并将它设置在dba用户组中, 因此该用户可以直接以SYSDBA
  身份登录, 通过以下命令: sqlplus / as sysdba. 当用户以这种方式
  登录数据库时实际上是以SYS用户登录.
Database Startup
 - Startup: nomount, mount and open
• oracle数据库的启动可以分为这些阶段: 启动实例(内存+
  进程), 挂载数据库(mount), 打开数据库(open). 数据库具
  有如下状态:
  – SHUTDOWN(关闭)
  – NOMOUNT
    此时数据库实例已经启动但数据库没有被挂载.
  – MOUNT
    此时数据库实例已经启动, 并且已读取控制文件.
  – OPEN
    数据库实例已经启动, 数据文件被打开, 等待客户端用户连接.
• 在不同的数据库启动阶段需要读取相应的文件, 那么
  oracle是如何读取到这些文件的呢? 下面按照数据库启动
  的各个阶段进行介绍.
  – NOMOUNT
  此阶段需要读取数据库初始化参数文件, 参考《 Parameter file》
Database Startup
- Startup: nomount, mount and open
 – MOUNT
 此阶段需要读取控制文件, 控制文件是通过前一
 阶段读取的CONTROL_FILES参数进行定位的. 这一
 阶段会读取数据库数据文件/在线重做日志文件
 的位置信息, 但此时不会定位和读取这些文件.
 – OPEN
 此阶段会根据前一阶段读取的文件位置信息对这
 些文件进行定位和打开.
Database Startup
- Startup: nomount, mount and open
Database Shutdown
• 关闭数据库的顺序与打开数据库正好相反, 首先数据库被关闭,
  然后被卸载, 最后实例被终止. 在关闭数据库阶段, 所有的回话
  被终止, 活动的事务被回滚, CKPT进程被调用. 最后, 数据文件
  和在线重做日志文件被关闭; 卸载阶段, 控制文件被关闭; 最后,
  SGA内存被释放相应的后台进程被终止, 实例终止.
• Shutdown: NORMAL, TRANSACTIONAL, IMMEDIATE, and ABORT
  执行shutdown时, 可以指定为上述四个选项:
  NORMAL
  默认选项, 不允许新的会话, 当所有的用户都退出登录时, 数据库被关闭;
  TRANSACTIONAL
  不允许新的会话, 不处在事务中的会话被终止, 其它的会话在事务完成时被
  终止. 当所有的会话都终止时, 数据库被关闭;
  IMMEDIATE
  不允许新的会话, 所有当前连接的会话被终止, 活动的事务被回滚, 然后数
  据库被关闭;
  ABORT
  相当于断电(power failure), 实例被立即终止.
  TIP: ABORT操作不会损坏数据库, 但是在abort操作之后不建议对数据库作
  备份操作.
Database Shutdown
• Shutdown: NORMAL, TRANSACTIONAL, IMMEDIATE,
  and ABORT
  前三种类型的数据库关闭均被称为有序的(orderly),
  在所有的会话终止之后PMON会回滚所有未完成的
  事务, 之后CKPT进程被调用, LGWR进程将所有的重做
  日志写入文件; 最后文件句柄被关闭. 在这种情况下,
  数据库最终处在一致的(consistent)状态.
  ABORT类型的关闭被称为非有序的(disorderly), 此时
  数据库处在一种不一致的(inconsistent)状态. 在数据
  库下一次启动时, 会修复这种状态.
• 可以使用如下命令代替shutdown:
  alter database close;
  alter database dismount;
Alert Log and Trace File
• 告警日志文件(Alert log file)存放在数据库
  BACKGROUND_DUMP_DEST参数指定的位置, 按照alert_SID.log的
  格式命名, 该文件包含了对实例或者数据库采取的某些关键操作,
  具体包含:
   – 启动和停止数据库操作, 包含中间命令比如alter database mount;
   – 实例内部错误, 比如ORA-600错误;
   – 检测到的数据文件块损坏;
   – 死锁信息;
   – 影响数据库物理存储结构的操作, 比如创建或者重命名数据文件或
     者重做日志文件;
   – 修改启动参数的ALTER SYSTEM命令;
   – 重做日志切换和日志归档操作.
  关于数据库启动的告警日志会显示所有非默认配置的初始化参数, 结
  合ALTER SYSTEM/DATABASE命令的记录, 可以得到数据库/实例的所有
  历史变化, 这对于数据库问题的诊断有很大的价值.
  Tip: 对于很多的DBA而言, 告警日志是他们诊断问题的第一站.
Data Dictionary Views
• Oracle数据字典是对数据库的定义, 动态性能视图则包含
  了当前实例的运行性能信息, 这两者对于实例性能的监
  控和诊断非常具有参考价值.
• Data Dictionary Views
  数据字典包含的是数据库元数据, 它包括: 数据库的物理
  和逻辑描述, 数据库对象(表/索引/PLSQL过程)描述, 完整
  性约束, 用户定义, 安全信息, 以及性能监控信息. 数据字
  典以段(segment) 存储在SYSTEM/SYSAUX表空间中. 常用
  的数据字典视图有:
  –   DBA_OBJECTS A row for every object in the database
  –   DBA_DATA_FILES A row describing every datafile
  –   DBA_USERS      A row describing each user
  –   DBA_TABLES     A row describing each table
  –   DBA_ALERT_HISTORY     Rows describing past alert conditions
Dynamic Performance Views
• 有超过300多个的动态性能视图, 这些视图的名称以
  V$开头, 实际上它们是指向相应的V_$视图的同义词.
  动态性能视图的数据大部分基于实例, 比如
  V$INSTANCE/V$SYSSTAT是基于实例的视图, 这些视图
  的数据只要实例启动了就可以读取比如数据库处在
  nomount状态也可以读取这些视图;有一小部分则是
  根据控制文件得到的, 比如v$database, v$datafile, 这
  些视图必须等到数据库打开之后才能够被访问.
• 动态性能视图在数据库启动阶段被创建, 随着实例
  的运行数据会增加或者被更新. 在数据库关闭时, 这
  些视图被删除.
  TIP: 性能视图和数据字典视图会存在一些重叠, 比如
  v$tablespace描述的是数据字典信息; 另外字典视图
  通常是复数, 而性能视图为单数.
END

3, OCP - instance management

  • 1.
  • 2.
    Overview • 实例管理主要讨论以下方面的内容: –数据库初始化参数的设置 – 数据库的启动和关闭 – 数据库告警日志和跟踪文件 – 数据字典和动态性能视图 实例的管理对于数据库的性能调优 和 灾难 恢复均十分重要, 一个好的oracle DBA应当十 分熟悉这些内容.
  • 3.
    Initialization Parameters - Overview • 初始化参数控制了oracle数据库的各个方面, 这 些参数中大概有300个是支持DBA进行设定的, 它们又分为基础参数(大概33个, 根据版本不同) 和高级参数, 通常而言DBA需要考虑的是那些基 础参数; 另外还有1500个左右的隐藏参数, 这些 参数是不支持DBA进行设定的; • 初始化参数分为静态的和动态两种类型, 前者 在实例启动之后不能被修改, 大部分参数都是 动态的, 这些参数的设置保存在pfile或者动态 的spfile中; 除了DB_NAME参数之外所有的参数 都有默认值, 如果没有在参数文件中进行设置, 则会使用它们的默认值.
  • 4.
    Initialization Parameters - Parameter file • oracle数据库可以使用pfile或者spfile作为启动参数文件, pfile的命名格式为: – init${ORACLE_SID}.ora 或者 init.ora spfile是在oracle的后期版本引入的, 命名格式为: – spfile${ORACLE_SID}.ora 或者 spfile.ora spfile相比pfile的好处在于: – 动态改变参数, 无需重启数据库; – spfile不能被人工编辑, 从而减少错误的发生; – 可以使用RMAN对spfile进行备份. • 实例在启动时会查看${ORACLE_HOME}/dbs(Unix, linux)或者 ${ORACLE_HOME}/database目录, 并按照如下顺序读取参数文件: – spfile${ORACLE_SID}.ora (SPFILE = Server Parameter File) – spfile.ora (SPFILE) – init${ORACLE_SID}.ora (PFILE) – init.ora (PFILE) 使用下面的sql语句查看当前使用的是pfile还是spfile: SELECT DECODE (value, NULL, 'PFILE', 'SPFILE') "Init File Type", value FROM sys.v_$parameter WHERE name = 'spfile'; • 使用如下语句创建pfile或者spfile create spfile [='spfilename'] from pfile [='pfilename']; create pfile [='pfilename'] from spfile [='spfilename'];
  • 5.
    Initialization Parameters - Static vs. Dynamic • 可以通过视图v$parameter和v$spparameter查 看当前的启动参数的设置, 前者返回的是当前 实例运行时参数设置, 后者则是spfile中保存的 参数设置, 通常情况下两者相同. 不同的情况可 能发生在: DBA修改了某个静态参数的值, 并且 写入了spfile; 或者修改某个动态参数的值, 但未 写入spfile. • 通过如下sql语句判断参数是静态的还是动态的: select NAME, ISSES_MODIFIABLE, ISSYS_MODIFIABLE from v$parameter where name like '%%';
  • 6.
    Initialization Parameters - Alter Parameter Value • 使用alter system语句修改初始化参数, 该语句会在系统级别修改 参数的值, 格式如下: alter system set pname=pvalue [scope=both|memory|spfile] scope选项各个值的含义分别是: – both 同时修改内存和spfile – memory 仅修改内存 – spfile 仅修改spfile 默认情况下scope值为both. 需要注意以下情况会导致 该语句失败: – 修改静态参数但scope未指定为spfile; – 使用pfile启动数据库但指定scope为spfile; • 根据不同的参数, 可以在system级别, session级别或者同时允许在 这两个级别进行设置. 比如optimizer_mode参数既可以在system级 别也可以在session级别设置, nls_date_format参数则只允许在会 话级别进行设置. 会话级别设置则使用alter session 语句, 该语句 的格式: alter session set pname=pvalue
  • 7.
    Initialization Parameters - Basic Parameters • 通常DBA需要考虑的是基础启动参数, 使用如下sql 查询有哪些基础参数: select name,value from v$parameter where isbasic='TRUE' order by name; 下面是基础参数的一个列表(这些参数将分别在之 后的章节中讨论):
  • 8.
    Initialization Parameters - Basic Parameters
  • 9.
    Initialization Parameters - Basic Parameters
  • 10.
    Database Control - Overview • Database Control是oracle提供的一个基于Java & Perl编写的工 具, 用于实现对数据库服务器的远程控制, 需要通过web浏览器 进行操作. 以oracle系统用户登录, 使用以下命令启动/停止/查 看Database Control的状态(执行命令之前确保正确设置了 ORACLE_HOME, ORACLE_SID, PATH等环境变量): emctl start|stop|status dbconsole 使用类似如下的链接进行登录: https://hostname:port/em/, 会 打开下面的页面. 默认端口为1158, 具体可以查看 $ORACLE_HOME/install/portlist.ini文件. • Database Control是oracle推荐用于数据库管理的方式, 可以用 于执行如下动作: – 启动和关闭数据库以及监听器; – 查看数据库运行状态, 数据库配置状态; – 查看数据库性能信息.
  • 11.
    Database Listener • oracle数据库监听器用于接收对数据库的连接请求, 有3中方式启动监听器: – 使用lsnrctl工具命令 使用oracle用户登录后, 运行lsnrctl start|stop|status命令 – 使用database control 在相关的页面中可以找到启动与停止监听器的链接 – windows平台上可注册为系统服务
  • 12.
    SYSDBA vs. SYSOPER •SYSDBA 和 SYSOPER是oracle数据库的角色, 角色是一 个权限控制的概念在以后会讲到. 通过操作系统或 者密码文件验证, 用户可以以SYSDBA或者SYSOPER角 色登录. SYSOPER角色可以在sql*plus中执行如下命令: startup shutdown alert database mount|open|close|dismount alter [database|tablespace] begin|end backup recover SYSDBA角色拥有对数据库的最高控制权限, 比如以 SYSDBA登录的用户可以创建用户, 创建数据库等; 默 认情况下只有SYS用户拥有SYSDBA/SYSOPER角色, SYS 用户可以将这些角色分配给其他的用户.
  • 13.
    Database Startup - Overview • 可以通过两种方式启动oracle数据库: – 通过SQL*PLUS命令行工具 SQL*PLUS是oracle自带的一个oracle客户端工具, 可以通过该工具连 接本地或者远程数据库, 并进行相应的操作. DBA通常使用如下的两 个步骤登录数据库: sqlplus /nolog # 进入sqlplus, 不提示验证信息 connect username/passwd [as sysdba] # 登录数据库 startup # 运行startup命令 – 使用Database ControL • Logon by OS Auth 如果可以访问数据库所在的操作系统并且具备相应的权限, 那么 则可以绕过数据库的验证直接以SYSDBA的身份登录, 这要求系 统用户在dba系统用户组中. 在创建数据库时, 我们创建了oracle 用户并将它设置在dba用户组中, 因此该用户可以直接以SYSDBA 身份登录, 通过以下命令: sqlplus / as sysdba. 当用户以这种方式 登录数据库时实际上是以SYS用户登录.
  • 14.
    Database Startup -Startup: nomount, mount and open • oracle数据库的启动可以分为这些阶段: 启动实例(内存+ 进程), 挂载数据库(mount), 打开数据库(open). 数据库具 有如下状态: – SHUTDOWN(关闭) – NOMOUNT 此时数据库实例已经启动但数据库没有被挂载. – MOUNT 此时数据库实例已经启动, 并且已读取控制文件. – OPEN 数据库实例已经启动, 数据文件被打开, 等待客户端用户连接. • 在不同的数据库启动阶段需要读取相应的文件, 那么 oracle是如何读取到这些文件的呢? 下面按照数据库启动 的各个阶段进行介绍. – NOMOUNT 此阶段需要读取数据库初始化参数文件, 参考《 Parameter file》
  • 15.
    Database Startup - Startup:nomount, mount and open – MOUNT 此阶段需要读取控制文件, 控制文件是通过前一 阶段读取的CONTROL_FILES参数进行定位的. 这一 阶段会读取数据库数据文件/在线重做日志文件 的位置信息, 但此时不会定位和读取这些文件. – OPEN 此阶段会根据前一阶段读取的文件位置信息对这 些文件进行定位和打开.
  • 16.
    Database Startup - Startup:nomount, mount and open
  • 17.
    Database Shutdown • 关闭数据库的顺序与打开数据库正好相反,首先数据库被关闭, 然后被卸载, 最后实例被终止. 在关闭数据库阶段, 所有的回话 被终止, 活动的事务被回滚, CKPT进程被调用. 最后, 数据文件 和在线重做日志文件被关闭; 卸载阶段, 控制文件被关闭; 最后, SGA内存被释放相应的后台进程被终止, 实例终止. • Shutdown: NORMAL, TRANSACTIONAL, IMMEDIATE, and ABORT 执行shutdown时, 可以指定为上述四个选项: NORMAL 默认选项, 不允许新的会话, 当所有的用户都退出登录时, 数据库被关闭; TRANSACTIONAL 不允许新的会话, 不处在事务中的会话被终止, 其它的会话在事务完成时被 终止. 当所有的会话都终止时, 数据库被关闭; IMMEDIATE 不允许新的会话, 所有当前连接的会话被终止, 活动的事务被回滚, 然后数 据库被关闭; ABORT 相当于断电(power failure), 实例被立即终止. TIP: ABORT操作不会损坏数据库, 但是在abort操作之后不建议对数据库作 备份操作.
  • 18.
    Database Shutdown • Shutdown:NORMAL, TRANSACTIONAL, IMMEDIATE, and ABORT 前三种类型的数据库关闭均被称为有序的(orderly), 在所有的会话终止之后PMON会回滚所有未完成的 事务, 之后CKPT进程被调用, LGWR进程将所有的重做 日志写入文件; 最后文件句柄被关闭. 在这种情况下, 数据库最终处在一致的(consistent)状态. ABORT类型的关闭被称为非有序的(disorderly), 此时 数据库处在一种不一致的(inconsistent)状态. 在数据 库下一次启动时, 会修复这种状态. • 可以使用如下命令代替shutdown: alter database close; alter database dismount;
  • 19.
    Alert Log andTrace File • 告警日志文件(Alert log file)存放在数据库 BACKGROUND_DUMP_DEST参数指定的位置, 按照alert_SID.log的 格式命名, 该文件包含了对实例或者数据库采取的某些关键操作, 具体包含: – 启动和停止数据库操作, 包含中间命令比如alter database mount; – 实例内部错误, 比如ORA-600错误; – 检测到的数据文件块损坏; – 死锁信息; – 影响数据库物理存储结构的操作, 比如创建或者重命名数据文件或 者重做日志文件; – 修改启动参数的ALTER SYSTEM命令; – 重做日志切换和日志归档操作. 关于数据库启动的告警日志会显示所有非默认配置的初始化参数, 结 合ALTER SYSTEM/DATABASE命令的记录, 可以得到数据库/实例的所有 历史变化, 这对于数据库问题的诊断有很大的价值. Tip: 对于很多的DBA而言, 告警日志是他们诊断问题的第一站.
  • 20.
    Data Dictionary Views •Oracle数据字典是对数据库的定义, 动态性能视图则包含 了当前实例的运行性能信息, 这两者对于实例性能的监 控和诊断非常具有参考价值. • Data Dictionary Views 数据字典包含的是数据库元数据, 它包括: 数据库的物理 和逻辑描述, 数据库对象(表/索引/PLSQL过程)描述, 完整 性约束, 用户定义, 安全信息, 以及性能监控信息. 数据字 典以段(segment) 存储在SYSTEM/SYSAUX表空间中. 常用 的数据字典视图有: – DBA_OBJECTS A row for every object in the database – DBA_DATA_FILES A row describing every datafile – DBA_USERS A row describing each user – DBA_TABLES A row describing each table – DBA_ALERT_HISTORY Rows describing past alert conditions
  • 21.
    Dynamic Performance Views •有超过300多个的动态性能视图, 这些视图的名称以 V$开头, 实际上它们是指向相应的V_$视图的同义词. 动态性能视图的数据大部分基于实例, 比如 V$INSTANCE/V$SYSSTAT是基于实例的视图, 这些视图 的数据只要实例启动了就可以读取比如数据库处在 nomount状态也可以读取这些视图;有一小部分则是 根据控制文件得到的, 比如v$database, v$datafile, 这 些视图必须等到数据库打开之后才能够被访问. • 动态性能视图在数据库启动阶段被创建, 随着实例 的运行数据会增加或者被更新. 在数据库关闭时, 这 些视图被删除. TIP: 性能视图和数据字典视图会存在一些重叠, 比如 v$tablespace描述的是数据字典信息; 另外字典视图 通常是复数, 而性能视图为单数.
  • 22.