Oracle 数据库云服务器命令参考

第 4 部分:量度和报告

作者:Arup Nanda

了解如何使用各种可用的量度和报告测量数据库云服务器环境的效率和效力。

> 返回系列目录

(本指南用于培训;它无意替代 Oracle 提供的官方手册或其他文档。本指南中的信息未经 Oracle 验证,不受 Oracle 支持,您在使用时只能风险自负。)

要对 Oracle 数据库云服务器的可靠性和效率进行控制,需要测量一些运行情况量度。监视这些量度很可能是您最经常的活动,但即使这样,在系统出问题时您可能还是希望得到提示。在这最后一部分,您将了解如何检查这些量度(可以通过 CellCLI 接口,也可以通过 Oracle Enterprise Manager Grid Control),以及如何基于某些条件接收警报。

使用 CellCLI 获取量度

首先来看如何通过 CellCLI 获取量度。要检查当前量度,只需使用以下命令:

CellCLI> list metriccurrent

 

此命令将显示所有量度,这样很快就会变得无法阅读。您可能只希望关注某些特定量度。例如,要显示名为 GD_IO_RQ_W_SM 的特定量度,可将其用作修饰符。(如果您不知道此量度的含义,很快您就会了解。)

 

CellCLI> list metriccurrent gd_io_rq_w_sm
         GD_IO_RQ_W_SM   PRODATA_CD_00_cell01    2,665 IO requests
         GD_IO_RQ_W_SM   PRODATA_CD_01_cell01    5,710 IO requests
         GD_IO_RQ_W_SM   PRODATA_CD_02_cell01    2,454 IO requests
… output truncated …

 

该量度显示对不同单元磁盘的 I/O 请求数。尽管这对于快速浏览某个参数很有益,但对于对所有其他量度的通盘检查,就不是非常有用了。要获取较长的量度列表,请使用 detail 选项。

 

CellCLI> list metriccurrent gd_io_rq_w_sm detail

 

 

         name:                   GD_IO_RQ_W_SM
         alertState:             normal
         collectionTime:         2011-05-26T11:25:33-04:00
         metricObjectName:       PRODATA_CD_02_cell01
         metricType:             Cumulative
         metricValue:            2,456 IO requests
         objectType:             GRIDDISK

 

 

         name:                   GD_IO_RQ_W_SM
         alertState:             normal
         collectionTime:         2011-05-26T11:25:33-04:00
         metricObjectName:       PRODATA_CD_03_cell01
         metricType:             Cumulative
         metricValue:            2,982 IO requests
         objectType:             GRIDDISK

 

 

         name:                   GD_IO_RQ_W_SM
         alertState:             normal
         collectionTime:         2011-05-26T11:25:33-04:00
         metricObjectName:       PRODATA_CD_04_cell01
         metricType:             Cumulative
         metricValue:            1,631 IO requests
         objectType:             GRIDDISK
… output truncated …

 

输出显示量度的名称、定义了该量度的对象(如 PRODATA_CD_02_cell01)、该对象的类型(如网格磁盘)、量度的收集时间以及当前值等等。

定义了量度的对象类型广泛。例如,以下是 I/O 数据包接收速率的量度,它是在 Cell 对象类型中定义的。

 

CellCLI> list metriccurrent n_nic_rcv_sec detail
         name:                   N_NIC_RCV_SEC
         alertState:             normal
         collectionTime:         2011-05-26T11:23:28-04:00
         metricObjectName:       cell01
         metricType:             Rate
         metricValue:            3.7 packets/sec
         objectType:             CELL

 

属性

当前量度显示哪些其他信息?要获知答案,请使用以下命令。

 

CellCLI> describe metriccurrent                 
        name
        alertState
        collectionTime
        metricObjectName
        metricType
        metricValue
        objectType

 

注意名为 alertState 的属性,它对于您来说可能是最重要的。如果量度位于定义的安全范围内,则 alertState 被设置为 normal。您可以使用此命令显示已触发警报(即 alertState 为非零值)的感兴趣的属性:

 

CellCLI> list metriccurrent attributes name,metricObjectName,metricType,metricValue,objectType -

 

 

> where alertState != 'normal'

 

也可以选择有关其他类型对象的当前量度。例如,下面是一个检查有关互连的量度的示例。

 

CellCLI> list metriccurrent attributes name,metricObjectName,
         metricType,metricValue,alertState -

 

 

> where objectType = 'HOST_INTERCONNECT'                                                            
         N_MB_DROP               proddb01.xxxx.xxxx      Cumulative      0.0 MB  normal
         N_MB_DROP               proddb02.xxxx.xxxx      Cumulative      0.0 MB  normal
         N_MB_DROP               proddb03.xxxx.xxxx      Cumulative      0.0 MB  normal
         N_MB_DROP               proddb04.xxxx.xxxx      Cumulative      0.0 MB  normal
… outout truncated …

 

和往常一样,请参照 describe 命令以了解属性的顺序,因为输出没有标题。还可以跳过命名属性,直接使用“ALL”,这将显示所有属性。我们来看一个单元的量度。由于是在 cell01 上运行该命令,因此仅显示该单元的量度:

 

CellCLI> list metriccurrent attributes all where objectType = 'CELL'                                       
         CL_BBU_CHARGE           normal  2011-05-26T11:37:10-04:00       cell01  Instantaneous   93.0 %                  CELL
         CL_BBU_TEMP             normal  2011-05-26T11:37:10-04:00       cell01  Instantaneous   41.0 C                  CELL
         CL_CPUT                 normal  2011-05-26T11:37:10-04:00       cell01  Instantaneous   2.4 %                   CELL
         CL_FANS                 normal  2011-05-26T11:37:10-04:00       cell01  Instantaneous   12                      CELL
         CL_MEMUT                normal  2011-05-26T11:37:10-04:00       cell01  Instantaneous   41 %                    CELL
         CL_RUNQ                 normal  2011-05-26T11:37:10-04:00       cell01  Instantaneous   0.7                     CELL
         CL_TEMP                 normal  2011-05-26T11:37:10-04:00       cell01  Instantaneous   25.0 C                  CELL
         IORM_MODE               normal  2011-05-26T11:36:34-04:00       cell01  Instantaneous   0                       CELL
         N_NIC_NW                normal  2011-05-26T11:37:28-04:00       cell01  Instantaneous   3                       CELL
         N_NIC_RCV_SEC           normal  2011-05-26T11:37:28-04:00       cell01  Rate            3.2 packets/sec         CELL
         N_NIC_TRANS_SEC         normal  2011-05-26T11:37:28-04:00       cell01  Rate            3.6 packets/sec         CELL

 

下面详述这些量度的含义:

CL_BBU_CHARGE

磁盘控制器上的电池电量

CL_BBU_TEMP

磁盘控制器电池的温度

CL_CPUT

CPU 利用率

CL_FANS

工作风扇的数量

CL_FSUT

文件系统利用率百分比

CL-MEMUT

内存使用百分比

CL_RUNQ

运行队列

CL_TEMP

单元温度

IORM_MODE

使用 I/O 资源管理模式

N_NIC_NW

*未*工作互连数

N_NIC_RCV_SEC

I/O 数据包接收速率

N_NIC_TRANS_SEC

I/O 数据包传输速率


说到当前量度,它们的名称都是什么呢?您之前已经见过其中几个了:N_MB_DROP 等。要获取完整列表,请使用以下命令:

 

CellCLI> list metricdefinition
         CD_IO_BY_R_LG
         CD_IO_BY_R_LG_SEC
         CD_IO_BY_R_SM
         CD_IO_BY_R_SM_SEC
         CD_IO_BY_W_LG
         CD_IO_BY_W_LG_SEC
         CD_IO_BY_W_SM
         CD_IO_BY_W_SM_SEC
         CD_IO_ERRS
         CD_IO_ERRS_MIN
         CD_IO_LOAD
         CD_IO_RQ_R_LG
         CD_IO_RQ_R_LG_SEC
         CD_IO_RQ_R_SM
         CD_IO_RQ_R_SM_SEC
         CD_IO_RQ_W_LG
         CD_IO_RQ_W_LG_SEC
         CD_IO_RQ_W_SM
         CD_IO_RQ_W_SM_SEC
         CD_IO_ST_RQ
         CD_IO_TM_R_LG
         CD_IO_TM_R_LG_RQ
         CD_IO_TM_R_SM
         CD_IO_TM_R_SM_RQ
         CD_IO_TM_W_LG
         CD_IO_TM_W_LG_RQ
         CD_IO_TM_W_SM
         CD_IO_TM_W_SM_RQ
         CG_FC_IO_BY_SEC
         CG_FC_IO_RQ
         CG_FC_IO_RQ_SEC
         CG_FD_IO_BY_SEC
         CG_FD_IO_LOAD
         CG_FD_IO_RQ_LG
         CG_FD_IO_RQ_LG_SEC
         CG_FD_IO_RQ_SM
         CG_FD_IO_RQ_SM_SEC
         CG_IO_BY_SEC
         CG_IO_LOAD
         CG_IO_RQ_LG
         CG_IO_RQ_LG_SEC
         CG_IO_RQ_SM
         CG_IO_RQ_SM_SEC
         CG_IO_UTIL_LG
         CG_IO_UTIL_SM
         CG_IO_WT_LG
         CG_IO_WT_LG_RQ
         CG_IO_WT_SM
         CG_IO_WT_SM_RQ
         CL_BBU_CHARGE
         CL_BBU_TEMP
         CL_CPUT
         CL_FANS
         CL_FSUT
         CL_MEMUT
         CL_RUNQ
         CL_TEMP
         CT_FC_IO_BY_SEC
         CT_FC_IO_RQ
         CT_FC_IO_RQ_SEC
         CT_FD_IO_BY_SEC
         CT_FD_IO_LOAD
         CT_FD_IO_RQ_LG
         CT_FD_IO_RQ_LG_SEC
         CT_FD_IO_RQ_SM
         CT_FD_IO_RQ_SM_SEC
         CT_IO_BY_SEC
         CT_IO_LOAD
         CT_IO_RQ_LG
         CT_IO_RQ_LG_SEC
         CT_IO_RQ_SM
         CT_IO_RQ_SM_SEC
         CT_IO_UTIL_LG
         CT_IO_UTIL_SM
         CT_IO_WT_LG
         CT_IO_WT_LG_RQ
         CT_IO_WT_SM
         CT_IO_WT_SM_RQ
         DB_FC_IO_BY_SEC
         DB_FC_IO_RQ
         DB_FC_IO_RQ_SEC
         DB_FD_IO_BY_SEC
         DB_FD_IO_LOAD
         DB_FD_IO_RQ_LG
         DB_FD_IO_RQ_LG_SEC
         DB_FD_IO_RQ_SM
         DB_FD_IO_RQ_SM_SEC
         DB_IO_BY_SEC
         DB_IO_LOAD
         DB_IO_RQ_LG
         DB_IO_RQ_LG_SEC
         DB_IO_RQ_SM
         DB_IO_RQ_SM_SEC
         DB_IO_UTIL_LG
         DB_IO_UTIL_SM
         DB_IO_WT_LG
         DB_IO_WT_LG_RQ
         DB_IO_WT_SM
         DB_IO_WT_SM_RQ
         FC_BYKEEP_OVERWR
         FC_BYKEEP_OVERWR_SEC
         FC_BYKEEP_USED
         FC_BY_USED
         FC_IO_BYKEEP_R
         FC_IO_BYKEEP_R_SEC
         FC_IO_BYKEEP_W
         FC_IO_BYKEEP_W_SEC
         FC_IO_BY_R
         FC_IO_BY_R_MISS
         FC_IO_BY_R_MISS_SEC
         FC_IO_BY_R_SEC
         FC_IO_BY_R_SKIP
         FC_IO_BY_R_SKIP_SEC
         FC_IO_BY_W
         FC_IO_BY_W_SEC
         FC_IO_ERRS
         FC_IO_RQKEEP_R
         FC_IO_RQKEEP_R_MISS
         FC_IO_RQKEEP_R_MISS_SEC
         FC_IO_RQKEEP_R_SEC
         FC_IO_RQKEEP_R_SKIP
         FC_IO_RQKEEP_R_SKIP_SEC
         FC_IO_RQKEEP_W
         FC_IO_RQKEEP_W_SEC
         FC_IO_RQ_R
         FC_IO_RQ_R_MISS
         FC_IO_RQ_R_MISS_SEC
         FC_IO_RQ_R_SEC
         FC_IO_RQ_R_SKIP
         FC_IO_RQ_R_SKIP_SEC
         FC_IO_RQ_W
         FC_IO_RQ_W_SEC
         GD_IO_BY_R_LG
         GD_IO_BY_R_LG_SEC
         GD_IO_BY_R_SM
         GD_IO_BY_R_SM_SEC
         GD_IO_BY_W_LG
         GD_IO_BY_W_LG_SEC
         GD_IO_BY_W_SM
         GD_IO_BY_W_SM_SEC
         GD_IO_ERRS
         GD_IO_ERRS_MIN
         GD_IO_RQ_R_LG
         GD_IO_RQ_R_LG_SEC
         GD_IO_RQ_R_SM
         GD_IO_RQ_R_SM_SEC
         GD_IO_RQ_W_LG
         GD_IO_RQ_W_LG_SEC
         GD_IO_RQ_W_SM
         GD_IO_RQ_W_SM_SEC
         IORM_MODE
         N_MB_DROP
         N_MB_DROP_SEC
         N_MB_RDMA_DROP
         N_MB_RDMA_DROP_SEC
         N_MB_RECEIVED
         N_MB_RECEIVED_SEC
         N_MB_RESENT
         N_MB_RESENT_SEC
         N_MB_SENT
         N_MB_SENT_SEC
         N_NIC_NW
         N_NIC_RCV_SEC
         N_NIC_TRANS_SEC
         N_RDMA_RETRY_TM

 

您可以在 metricType 中使用其中任何一种量度。

我想您的下一个问题是关于这些量度的说明。要了解每个量度的更多信息,请使用该量度的名称和 detail 修饰符执行以下命令:

 

CellCLI> list metricdefinition cl_cput detail
         name:                   CL_CPUT
         description:            "Cell CPU Utilization is the percentage of time over the
                                  previous minute that the system CPUs were not idle (from /proc/stat)."
         metricType:             Instantaneous
         objectType:             CELL
         unit:                   %
 

 

对象类型
并非所有量度在所有对象上都可用。例如,温度是单元的量度,但不是磁盘的量度。注意以上输出中的 objectType 属性;它显示对象的类型。您可以了解特定对象类型的量度。

首先,查看所有可以选择的属性:

 

CellCLI> describe metricdefinition             
        name
        description
        metricType
        objectType
        persistencePolicy
        unit

 

这将允许您使用 attributes all 关键字并让您了解输出的标题。

 

CellCLI> list metricdefinition attributes all where objecttype='CELL'               
         CL_BBU_CHARGE    "Disk Controller Battery Charge"                                             Instantaneous   CELL    %
         CL_BBU_TEMP      "Disk Controller Battery Temperature"                                        Instantaneous   CELL  
         CL_CPUT          "Cell CPU Utilization is the percentage of time over the previous minute
                           that the system CPUs were not idle (from /proc/stat)."                      Instantaneous   CELL    %
         CL_FANS          "Number of working fans on the cell"                                         Instantaneous   CELL    Number
         CL_MEMUT         "Percentage of total physical memory on the cell that is currently used"     Instantaneous   CELL    %
         CL_RUNQ          "Average number (over the preceding minute) of processes in the Linux
                           run queue marked running or uninterruptible (from /proc/loadavg)."          Instantaneous   CELL    Number
         CL_TEMP          "Temperature (Celsius) of the server, provided by the BMC"                   Instantaneous   CELL    C
         IORM_MODE        "I/O Resource Manager objective for the cell"                                Instantaneous   CELL    Number
         N_NIC_NW         "Number of non-working interconnects"                                        Instantaneous   CELL    Number
         N_NIC_RCV_SEC    "Total number of IO packets received by interconnects per second"            Rate            CELL    packets/sec
         N_NIC_TRANS_SEC  "Total number of IO packets transmitted by interconnects per second"         Rate            CELL    packets/sec

 

使用此命令可以获取有关任何量度的说明。有些量度值为 0。我们来看看所有大于 0 的网格磁盘量度:

 

CellCLI> list metriccurrent attributes all where objectType = 'GRIDDISK' -

 

 

> and metricObjectName = 'PRODATA_CD_09_cell01' -

 

 

> and metricValue > 0 
       GD_IO_BY_R_LG   normal  2011-05-26T11:38:34-04:00  PRODATA_CD_09_cell01    Cumulative      3.9MB               GRIDDISK
       GD_IO_BY_R_SM   normal  2011-05-26T11:38:34-04:00  PRODATA_CD_09_cell01    Cumulative      29.3MB              GRIDDISK
       GD_IO_BY_W_LG   normal  2011-05-26T11:38:34-04:00  PRODATA_CD_09_cell01    Cumulative      797MB               GRIDDISK
       GD_IO_BY_W_SM   normal  2011-05-26T11:38:34-04:00  PRODATA_CD_09_cell01    Cumulative      73.3MB              GRIDDISK
       GD_IO_RQ_R_LG   normal  2011-05-26T11:38:34-04:00  PRODATA_CD_09_cell01    Cumulative      4 IO requests       GRIDDISK
       GD_IO_RQ_R_SM   normal  2011-05-26T11:38:34-04:00  PRODATA_CD_09_cell01    Cumulative      1,504 IO requests   GRIDDISK
       GD_IO_RQ_W_LG   normal  2011-05-26T11:38:34-04:00  PRODATA_CD_09_cell01    Cumulative      3,230 IO requests   GRIDDISK
       GD_IO_RQ_W_SM   normal  2011-05-26T11:38:34-04:00  PRODATA_CD_09_cell01    Cumulative      3,209 IO requests   GRIDDISK

 

当前量度就像单元的脉搏 — 它们能指出单元在此时的运行状况和效力。

量度历史记录

有时您可能对量度的历史记录感兴趣。例如,您可能希望了解量度值的变化趋势。使用以下命令:

 

CellCLI> list metrichistory

 

它会为您提供所有内容,实际上这样的输出可能并不实用。您可能只想查看特定对象的量度,因为量度可能与上下文高度相关。在以下示例中,您可以查看单元的所有量度值的历史记录。

 

CellCLI> list metrichistory where objectType = 'CELL'
         IORM_MODE               cell01  0                       2011-05-26T12:59:39-04:00
         CL_BBU_TEMP             cell01  41.0 C                  2011-05-26T13:00:10-04:00
         CL_CPUT                 cell01  0.6 %                   2011-05-26T13:00:10-04:00
         CL_FANS                 cell01  12                      2011-05-26T13:00:10-04:00
         CL_MEMUT                cell01  41 %                    2011-05-26T13:00:10-04:00

 

不知道各列所代表的含义?只需执行命令 describe metrichistory 即可查看属性。

尽管输出显示了量度的历史记录,但分析起来有点困难。您可能希望查看单项统计信息,而不是一大串数据。下面的示例显示了单元温度的历史记录。

 

CellCLI> list metrichistory where objectType = 'CELL' -

 

 

> and name = 'CL_TEMP'
         CL_TEMP         cell01  25.0 C  2011-05-26T13:00:10-04:00
         CL_TEMP         cell01  25.0 C  2011-05-26T13:01:10-04:00
         CL_TEMP         cell01  25.0 C  2011-05-26T13:02:10-04:00
         CL_TEMP         cell01  25.0 C  2011-05-26T13:03:10-04:00
         CL_TEMP         cell01  25.0 C  2011-05-26T13:04:10-04:00
         CL_TEMP         cell01  25.0 C  2011-05-26T13:05:10-04:00
… output truncated …

 

有两个常常被遗忘的 CellCLI 特性,就是您可以使用 –x 选项调用,这样可以不显示标题;以及 –n 选项,这样可以不显示命令行。

 

# cellcli -x -n -e "list metrichistory where objectType = 'CELL' and name = 'CL_TEMP'"
         CL_TEMP         prodcel01       24.0 C  2011-05-27T02:00:47-04:00
         CL_TEMP         prodcel01       24.0 C  2011-05-27T02:01:47-04:00
         CL_TEMP         prodcel01       24.0 C  2011-05-27T02:02:47-04:00
… output truncated …

 

此输出可以直接进入电子表格程序以便绘制图表或进行其他类型的分析。

警报

了解了量度之后,我们来看看如何使用量度在发生问题时给您发送警报。数据库云服务器附带了许多现成的预定义警报。要查看这些警报,请使用以下命令。要获取有关这些警报的更多信息,请使用 detail 修饰符。

 

CellCLI> list alertdefinition detail
         name:                   ADRAlert
         alertShortName:         ADR
         alertSource:            "Automatic Diagnostic Repository"
         alertType:              Stateless
         description:            "Incident Alert"
         metricName:            

 

 

         name:                   HardwareAlert
         alertShortName:         Hardware
         alertSource:            Hardware
         alertType:              Stateless
         description:            "Hardware Alert"
         metricName:            

 

 

         name:                   StatefulAlert_CD_IO_ERRS_MIN
         alertShortName:         CD_IO_ERRS_MIN
         alertSource:            Metric
         alertType:              Stateful
         description:            "Threshold Alert"
         metricName:             CD_IO_ERRS_MIN

 

 

         name:                   StatefulAlert_CG_FC_IO_BY_SEC
         alertShortName:         CG_FC_IO_BY_SEC
         alertSource:            Metric
         alertType:              Stateful
         description:            "Threshold Alert"
         metricName:             CG_FC_IO_BY_SEC
… output truncated …

 

这些警报基于前面说明过的量度。例如,警报 StatefulAlert_CG_FC_IO_BY_SEC 基于量度 CG_FC_IO_BY_SEC。只有很少几种警报是不基于量度的。下面是找到它们的方法:

 

CellCLI> list alertdefinition attributes all where alertSource!='Metric'
         ADRAlert                ADR             "Automatic Diagnostic Repository"       Stateless       "Incident Alert"           
         HardwareAlert           Hardware        Hardware                                Stateless       "Hardware Alert"           
         Stateful_HardwareAlert  Hardware        Hardware                                Stateful        "Hardware Stateful Alert"  
         Stateful_SoftwareAlert  Software        Software                                Stateful        "Software Stateful Alert"   

 

接下来,我们要定义一个基于阈值的警报。下面演示了如何位名为 PRODB 的数据库上的量度 CD_IO_ERRS_MIN 定义一个阈值。您希望在值大于 10 的时候触发警报。

 

CellCLI> create threshold cd_io_errs_min.prodb comparison=">", critical=10
Threshold DB_IO_RQ_SM_SEC.PRODB successfully created

 

当警报触发时,单元会采取通知计划上的措施 — 将发送电子邮件和/或 SNMP 陷阱。下面是通过电子邮件收到警报的一个示例。它显示单元未能连接到 NTP 或 DNS 服务器。

exadata-commands-p4f1

您可以修改阈值:

 

CellCLI> alter threshold DB_IO_RQ_SM_SEC.PRODB comparison=">", critical=100
Threshold DB_IO_RQ_SM_SEC.PRODB successfully altered

 

并且在不需要时,可以删除阈值。

 

CellCLI> drop threshold DB_IO_RQ_SM_SEC.PRODB  
Threshold DB_IO_RQ_SM_SEC.PRODDB successfully dropped

 

删除阈值时,警报(如果先前已生成)将被清除,并将生成新的警报通知该阈值已被清除。以下是含有该信息的示例电子邮件。

exadata-commands-p4f2

使用 Grid Control

正如您在前面学习过的,可以通过以下几种方式管理数据库云服务器:使用命令行工具 CellCLI(或通过 DCLI 同时针对多个单元)、使用 SRVCTL 和 CRSCTL 以及通过普通传统 SQL 命令。但最轻松的办法,是使用 Oracle Enterprise Manager Grid Control。其图形化界面使得命令界面非常直观、易读。如果您已经具备 Grid Control 基础架构,很容易做决定,只需向该架构添加数据库云服务器。如果您尚未安装 Grid Control,现在也许该认真考虑安装了。

安装

要通过 Grid Control 管理数据库云服务器,您需要:

我们来详细介绍每种方法。该插件是一个 jarfile,下载并保存在 OMS 服务器上。Grid Control 代理按照与普通数据库服务器相同的方式安装在数据库计算节点上。您可以从 Grid Control 控制台推入代理,也可以将代理软件下载到数据库计算节点并在其上安装。在安装过程中,系统将询问 OMS 服务器的地址和端口号,然后完成安装。

存储插件则与此不同。它不是存储单元上的代理;而是作为 OMS 服务器的一部分安装的。因此您需要将该插件(它是一个扩展名为 .jar 的文件)下载到您启动浏览器的计算机(通常是桌面)上,而不是下载到存储单元。之后,启动 Grid Control 浏览器并按照以下所示步骤操作。

  1. 转至 Setup 屏幕,如下所示:

     

    exadata-commands-p4f3

  2. 从左侧菜单中,选择 Management Plug-Ins
  3. 您需要将该插件导入 OMS。单击 Import 按钮。
  4. 系统将要求提供文件名。单击 Browse 按钮,这将打开文件资源管理器。
  5. 选择刚下载的 jarfile 并单击 OK
  6. jarfile 实际上是一个包含了各种插件的存档。选择 Exadata Storage Server Plugin
  7. OK 按钮。
  8. 系统将要求您输入首选凭证。确保用户 ID 和口令正确。
  9. 单击标记为 Deploy 的图标。
  10. 单击 Add Agents 按钮。
  11. 单击 Next,然后单击 Finish
  12. 从顶部菜单栏(如下所示)中单击超链接 Agents
  13. 选择部署了系统管理插件的代理。
  14. 转至 Management Agents 页面。
  15. 从下拉列表中选择 Oracle Exadata Storage Server 目标类型。
  16. 单击 Add
  17. 屏幕将请您提供存储服务器的管理 IP。输入 IP。
  18. 单击 Test Connection 按钮以确保一切运行正常。
  19. 单击 OK 按钮。

好了;现在可以通过 Grid Control 监视存储服务器了。


基本信息

完成配置后,数据库云服务器就会出现在 Grid Control 中。数据库计算节点显示为普通数据库服务器,集群显示为普通集群数据库;在这些屏幕上没有任何特定于数据库云服务器的内容。

您可能已经熟悉 Grid Control 上的普通 Oracle RAC 数据库管理特性,这同时也适用于数据库云服务器计算节点。在本文中,我们假设您已熟悉通过 Grid Control 进行数据库管理。

真正的好处在于作为 CellCLI 的替代方式来查看存储单元。要检查存储单元,请转至 Homepage > Targets > All Targets。在 Search 下拉框中,选择 Oracle Exadata Storage Server 并按下 Go。将出现搜索结果屏幕,如下图所示。注意名称已被擦除。

exadata-commands-p4f4

这是个全机架数据库云服务器,因此有 14 个单元,即前缀名为 _Cell01 至 _Cell14 的存储服务器。单击每个超链接单元名称将转至相应单元(也称“存储服务器”)的信息屏幕。单击 cell#2。这将显示单元详细信息,如以下屏幕所示。

exadata-commands-p4f5

此屏幕显示了以下三个基本但非常重要的量度:

  • CPU 利用率百分比
  • 内存利用率百分比
  • 服务器温度


此屏幕只提供这三个量度在最近大约 24 小时内的情况。注意,内存利用率保持不变,这种情况很典型。由于这是一个存储单元,唯一在此运行的软件是 Exadata Storage Server,而不是容易引起内存使用波动的数据库会话。温度一直相当稳定,只是在早上 6 点左右出现了一个小高峰。不过,CPU 的波动范围很大,这是因为单元分流(在第 1 部分中对此进行了详细介绍)所导致的对 ES 软件的需求。如果单击 CPU Utilization,您将看到一个专门显示 CPU 利用率的屏幕,如下所示。

exadata-commands-p4f6

该屏幕将以更细粒度的尺度显示有关 CPU 繁忙程度的更详细图形。通过从靠近右上角的下拉菜单 View Data 中进行选择,您可以选择量度的刷新频率。在此我选择了“Real Time:5 Minute Refresh”。这将实时获取数据,但只是每隔 5 分钟才刷新一次。这就是您会注意到该图形不平滑的原因。您还可以选择更长的间隔,如“last 7 days”,甚至“last 31 days”,但这样的信息不再是实时的。

您还可以从报告中选择同样的信息(本部分稍后将介绍)。单击 TemperatureMemory 图形将提供类似的数据。

单元信息

由于单元包含硬盘驱动器,这是机械设备,会产生许多热量,如果温度过高,它就会出故障。因此单元包含风扇,强制排出热空气,以降低温度。每个单元中有 12 个风扇。它们都正常工作吗?为了实现冗余,每个单元中有两个电源。两个都正常工作吗?要知道这些问题的答案以及获取有关单元的其他信息,请单击超链接 View Configuration,将出现类似下面的屏幕。

exadata-commands-p4f7

此处所显示的信息类似于您在 CellCLI 中的 list cell 命令中所看到的内容。我们研究一下此屏幕中的某些感兴趣的信息,以及您想了解它们的原因:

  • Status — 当然您希望了解此单元是否联机并为流量提供服务。
  • Fan Count — 工作风扇的数量
  • Power Count — 工作电源的数量(应该有两个)
  • SMTP Server — 用于发送电子邮件的电子邮件服务器。对警报非常重要。
  • IP Address — 单元的 IP
  • Interconnect Count — 单元互连的数量。默认值为 3。
  • CPU Count — CPU 内核的数量。


这只是单元的摘要。单元的用途是为数据库云服务器提供存储平台。到目前为止,我们尚未看到有关单元中实际存储的任何信息。要了解单元中的存储的有关信息,请继续往下阅读。共有 5 部分:

  • 网格磁盘
  • 单元磁盘
  • LUN
  • 物理磁盘
  • I/O 资源管理器


注意,屏幕顶部有一组(5 个)超链接,分别指向相应的部分:
 

exadata-commands-p4f8


查看这些部分时,建议不要按其布局方式查看,而是按其创建的顺序进行查看。例如,单元包含物理磁盘,根据物理磁盘创建 LUN,根据 LUN 创建单元磁盘,根据单元磁盘又创建了网格磁盘。最后,在这些磁盘上使用 IORM(I/O 资源管理器)。我们以同样的逻辑顺序来看看这些部分。

物理磁盘

要了解单元中可用的物理磁盘,应查看此部分。下面是部分屏幕截图。

exadata-commands-p4f9

如果此图看起来似曾相识,是因为这是 CellCLI 命令 LIST PHYSICALDISK DETAIL 或 LIST PHYSICALDISK ATTRIBUTES 的格式化输出。这里要注意的重要列是:

  • LUN/s — 该物理磁盘上创建的 LUN
  • Error Count — 这些物理磁盘上是否有任何错误
  • Physical Interface — SAS 代表硬盘,ATA 代表闪存磁盘。有些早期的数据库云服务器可能有 SATA 硬盘,则此列将显示“sas”。
  • Size — 物理磁盘的大小(以 GB 为单位)
  • Insert Time — 这些记录在信息库中记录时的日期和时间戳。

LUN

接下来,我们看看单元中的 LUN,请单击 Cell LUN Configuration 超链接。

exadata-commands-p4f10

同样,这也是 LIST LUN ATTRIBUTES 命令的图形表示。注意,这里还列出了闪存驱动器,就在靠近输出底部的位置。在 Cell Disk 中闪存驱动器以前缀 FD 命名,而不像在常规 SAS 硬盘中那样使用“CD”。LUN 是根据硬盘分区创建的,作为设备呈现给主机(存储单元)。在此显示了设备 ID,以及在 LUN 上创建的单元磁盘。您应注意的两列是“Status”和“Error Count”。

如果您只看到 10 个 LUN,请单击下拉框并选择“all 28”。

单元磁盘

单元磁盘是从物理磁盘创建的。在 CellCLI 中,可以使用 LIST CELLDISK 命令获取单元磁盘的列表。在 Grid Control 中,单击超链接 Celldisk Configuration 将以图形方式显示单元磁盘的列表,如下图所示。与上一部分一样,单击下拉列表并选择“All 28”可在同一页上显示所有 28 个单元磁盘。同样,您应注意“Error Count”和“Status”列。

exadata-commands-p4f11

网格磁盘

网格磁盘是从单元磁盘创建的,用于构建 ASM 磁盘组。显然,这些是 ASM 实例所知道的存储的实际构建块。通常单元磁盘和网格磁盘之间存在一对一的关系,但如果在您的情况中不是这样,您将在 ASM 磁盘组中看到较少的可用空间。单击 Griddisk Configuration 超链接将显示如下所示的屏幕:

exadata-commands-p4f12

在此屏幕中,需要查看的重要列为:

  • Status — 网格磁盘是否处于活动状态。如果处于非活动状态,则表示网格磁盘脱机,ASM 不能使用它。
  • Size — 大小看起来对吗?或者网格磁盘是从单元磁盘以较小的大小创建的吗?在这种情况下,ASM 实例也将看到减小的大小。
  • Error Count — 此网格磁盘上是否存在错误。

存储单元或存储服务器基本构建块的介绍就到这里。使用这些图形屏幕或 CellCLI 命令,您可以获取有关这些构建块的大部分信息。

现在我们继续介绍一些更复杂的数据需求:收集有关这些组件的性能和管理量度。例如,单元磁盘是否以最优方式运行,或者网格磁盘是否存在任何可能导致数据丢失的问题?

量度

查看这些组件的量度的最佳方式是在 Grid Control 的专用 Metrics 页中浏览它们。注意靠近该页面底部的一组超链接,单击 All Metrics。将出现如下所示的屏幕。

记住,量度是在 OMS 服务器中收集和存储的,然后按需提供。由于量度存储在 OMS 服务器中,因此它们对数据库云服务器的性能影响很小或根本无影响。上面的屏幕显示这些量度的收集频率(15 分钟、1 分钟等)。某些量度是实时的(如闪存缓存统计信息);其他量度则没有任何计划(如错误消息和警报)。收集频率显示在“Collection Schedule”列中。

收集量度时,量度将被上载至 OMS 服务器的数据库。上面的屏幕还显示量度在收集之后多久被上载(“Upload Interval”列),以及上次上载发生的日期和时间(“Last Upload”)。

量度还可以用于触发警报。例如,如果单元分流效率降至特定阈值以下,可以触发警报。稍后我们将看看如何设置这些警报,但警报阈值在本屏幕中也有显示,就在“Threshold”列下。

exadata-commands-p4f13

该屏幕显示 Grid Control 收集的量度以及收集的频率。如果您愿意,可以通过单击 Expand All 查看所有子类别和特定量度名称。

我们这里只关注一个类别 — Category Statistics。单击该类别前面的“+”以显示各种量度;您将看到类似以下的屏幕:

exadata-commands-p4f14 

单击 Category Small IO Requests/Sec

 

exadata-commands-p4f14a
 

单击“Details”列中的眼镜图标。

exadata-commands-p4f15

 

与您在前面看到的所有其他屏幕一样,可以通过从下拉菜单“View Data”中选择适当的值来选择不同的刷新频率。或者,您可以通过选择 Last 24 hours 或 Last 7 days 等来选择历史记录。

报告

报告类似于报告量度的屏幕,但有些重要区别。有些报告可能更适合查看特定量度,但报告最重要的用途是直观比较多个组件的量度。

在 Enterprise Manager 主页中,从顶部的选项卡功能区中选择 Reports 选项卡。单击 Report 选项卡并向下滚动几页到达名为“Storage”的报告集合,如下所示:

 

exadata-commands-p4f16

本部分显示您先前可能已见到的所有量度,但有一点主要区别:报告组织成独立实体,可报告任何组件的数据 — 而不是受组件自身的详细信息屏幕所驱动。例如,单击超链接 Celldisk Performance。将显示一个屏幕,要求您选择感兴趣的单元磁盘,而不是首先选择单元磁盘屏幕,然后转至该单元磁盘的性能量度。您可以通过单击手电筒图标(值列表)从列表中选择一个单元磁盘,然后将显示一个屏幕,如下所示。
 

exadata-commands-p4f17

如果单击超链接单元磁盘 Cell Disk 之一,您将看到该单元磁盘的数据。

exadata-commands-p4f16

exadata-commands-p4f18

网格磁盘性能

正如您在本系列第 2 部分中所了解的那样,网格磁盘是从单元磁盘构建的,然后用于 ASM 磁盘组。因此,网格磁盘的性能直接影响 ASM 磁盘组的性能,进而影响数据库性能。所以记录网格磁盘性能并对其进行检查以发现数据库中是否存在任何问题,是非常重要的。从前面显示的报告菜单中,转至 Storage > CELL > Grid Disk Performance。系统将请您从列表中挑选一个单元。选择 Cell 02 将显示一个类似如下的屏幕。

exadata-commands-p4f19

要检查的另一重要量度是主机互连性能:

exadata-commands-p4f20

进行比较

有时,您想知道一个组件(如单元磁盘)与其他单元磁盘相比性能如何。比较是 Grid Control 中的一个非常巧妙的特性。首先进到您感兴趣的量度的页面:

exadata-commands-p4f21

单击 Related Links 正下方的超链接 Compare Objects Celldisk Name/Cell Name/Realm Name

exadata-commands-p4f22

然后单击 OK 按钮。比较结果将显示在一个类似如下所示的屏幕上:

exadata-commands-p4f23

比较结果显示单元磁盘 CD_00_cell01 的写入吞吐量高于另两个单元磁盘。

有关领域的量度

领域 是包含在某个逻辑边界内的一组组件。领域用于将系统分隔成不同用途的系统,例如您可以为每个数据库 A、数据库 B 等各创建一个领域。默认情况下,有一个领域。由于所有单元均属于该领域,所以领域的量度针对所有单元,而不只限于当前单元。

让我们来看一个示例。如果您调出 LUN Configuration 报告,将看到以下内容:

exadata-commands-p4f24 

它显示 28 条记录,因为此单元中有 28 个 LUN。此报告的范围是当前单元,不包括其他单元。当您调出 Realm LUN Configuration 时,将显示所有单元的 LUN,如下所示。

注意这两个报告的区别:后者显示 392 行而不是 28 行。所有单元的 LUN 都显示在这里。

exadata-commands-p4f25

为报告选择领域可以使您立即了解特定领域的情况。如果只有一个领域,则所有单元都将聚集到该报告中。请看一个非常重要的报告 — Realm Performance,如下所示。

exadata-commands-p4f26

它显示该领域内所有单元的量度。这是一种快速比较各种单元以查看它们的负载是否平衡的最佳方法。

按同样的思路,您可能希望比较单元组件的性能,而不仅仅是单元的性能。从 View Report 下拉菜单中选择 Realm Celldisk Performance 将显示所有单元中的单元磁盘的性能,而不仅仅是该单元的性能。

exadata-commands-p4f27

然而,报告中的大量数据(392 行)使得报告并不是那么好用。更好的选择是比较所有单元的 1 号单元磁盘。为此您可以在 Celldisk 域中使用筛选器。

exadata-commands-p4f28

这将显示所有单元的第一个单元磁盘的性能。从上面的输出中,可以清楚地看到,Cell 05 在执行某种操作而其他单元实际上处于空闲状态。由于您不是在单元级操作,因此可以假定数据分布可能并不均匀。Cell 05 可能拥有大多数存储块。

总结

在本部分中,您学习了如何使用以下两种不同界面从存储单元检查量度:命令行工具 CellCLI 和 Enterprise Manager Grid Control。这两种方法各有自己的优势。虽然不可否认 Grid Control 具有视觉优势,但命令行工具在开发脚本和可重复过程时可能很有用。数据库云服务器附带了许多预定义警报,可以通过阈值对这些警报进行配置,以确保当量度值超出预先指定的边界条件时触发这些警报。

本系列文章到此结束。希望您通过本系列文章掌握到足够的技巧,从而轻松、快速地由 DBA 转变成 DMA!

> 返回系列目录


Arup Nanda (arup@proligence.com) 担任 Oracle DBA 已逾 14 载,处理过各方面的数据库管理工作,从性能优化到安全性和灾难恢复,无所不及。他是 Oracle ACE 总监并曾在 2003 年荣获 Oracle Magazine 的 DBA 称号。