首页 > 数据库 > Oracle > 正文
3.6 存储管理工具CellCLI
2015-11-03 16:02:29     我来说两句      
收藏    我要投稿

CellCLI也许远远并没有你想象中的那么复杂,因为它仅仅是一个管理Exadata Cell存储节点的命令行工具。这个工具有点类似于Oracle数据库中的SQLPLUS,它是用户与Exadata Cell之间交互的一个接口(如图3-13所示)。


 

1. CellCLI的语法

CellCLI在设计之初就考虑到了其语法的移植性,所以CellCLI的语法与sqlplus及SQL的语法非常类似,具有SQLPLUS和SQL经验的dba无需经过一个新的语法学习过程就能使用它。下面举例说明CellCLI的语法。

CellCLI具有SQLPLUS中同样的命令:

EXIT/QUIT:退出CellCLI命令行;

HELP:CellCLI的语法帮助;

SET:设置CellCLI的环境变量;

SPOOL:将命令行结果写入到本地一个日志文件;

START/@:运行CellCLI的脚本。

CellCLI的语法结构:CellCLI命令行语法基本结构如下:

<verb> <object-type>  [ALL |object-name] [<options>]

其中CellCLI verb(动词)包括:ALTER、CREATE、DROP和LIST,分别代表修改、创建、删除和查看。

CellCLI的object-type(对象类型)一共包括三类:

资源配置相关的对象

CELL, CELLDISK, GRIDDISK, IORMPLAN, KEY, LUN, PHYSICALDISK,

性能指标相关的对象

ACTIVEREQUEST, METRICCURRENT, METRICDEFINITION, METRICHISTORY

失败告警相关的对象

ALERTDEFINITION, ALERTHISTORY,THRESHOLD.

以上加粗的属性不可修改或者删除,只能用于查看(list)。

在root用户或者celladmin用户下执行cellcli便进入到CellCLI命令提示符。CellCLI提供了非常全面的帮助文档供用户参考,输入help就能看到所有CellCLI的帮助文档,如下所示:
CellCLI> help

 

HELP [topic]
   Available Topics:
        ALTER
        ALTER ALERTHISTORY
        ALTER CELL
        ALTER CELLDISK
        ALTER FLASHCACHE
        ALTER GRIDDISK
        ALTER IBPORT
        ALTER IORMPLAN
        ALTER LUN
        ALTER PHYSICALDISK
        ALTER QUARANTINE
        ALTER THRESHOLD
        ASSIGN KEY
        CALIBRATE
        CREATE
        CREATE CELL
        CREATE CELLDISK
        CREATE FLASHCACHE
        CREATE FLASHLOG
        CREATE GRIDDISK
        CREATE KEY
        CREATE QUARANTINE
        CREATE THRESHOLD
        DESCRIBE
        DROP
        DROP ALERTHISTORY
        DROP CELL
        DROP CELLDISK
        DROP FLASHCACHE
        DROP FLASHLOG
        DROP GRIDDISK
        DROP QUARANTINE
        DROP THRESHOLD
        EXPORT CELLDISK
        IMPORT CELLDISK
        LIST
        LIST ACTIVEREQUEST
        LIST ALERTDEFINITION
        LIST ALERTHISTORY
        LIST CELL
        LIST CELLDISK
        LIST FLASHCACHE
        LIST FLASHCACHECONTENT
        LIST FLASHLOG
        LIST GRIDDISK
        LIST IBPORT
        LIST IORMPLAN
        LIST KEY
        LIST LUN
        LIST METRICCURRENT
        LIST METRICDEFINITION
        LIST METRICHISTORY
        LIST PHYSICALDISK
        LIST QUARANTINE
        LIST THRESHOLD
        SET
        SPOOL
        START

如果需要查询某一命令具体的帮助文档,可以在此命令之前加上HELP,如下命令表示查看list的帮助文档。

CellCLI> HELP LIST

  Enter HELP LIST <object_type> for specif?ic help syntax.
    <object_type>:  {ACTIVEREQUEST | ALERTHISTORY | ALERTDEFINITION | CELL
               | CELLDISK | FLASHCACHE | FLASHLOG | FLASHCACHECONTENT | GRIDDISK
               | IBPORT | IORMPLAN | KEY | LUN
               | METRICCURRENT | METRICDEFINITION | METRICHISTORY
               | PHYSICALDISK | QUARANTINE | THRESHOLD }

当然还可以更具体化,如下命令表示查看LIST CELLDISK的帮助文档。

CellCLI> HELP LIST CELLDISK

  Usage: LIST CELLDISK [ | ] [<attribute_list>] [DETAIL]

  Purpose: Displays specif?ied attributes for cell disks.

  Arguments:
    :  The name of the cell disk to be displayed.
    :  an expression which determines which cell disks should
                be displayed.
    <attribute_list>: The attributes that are to be displayed.
                      ATTRIBUTES {ALL | attr1 [, attr2]... }

  Options:
    [DETAIL]: Formats the display as an attribute on each line, with
              an attribute descriptor preceding each value.

  Examples:
    LIST CELLDISK cd1 DETAIL
    LIST CELLDISK where freespace > 100M

接下来通过几个例子来说明如何使用CellCLI命令行工具。

列举对象类型的属性可以使用describe命令,但是无法使用Oracle数据库的语法desc。

CellCLI> describe griddisk
        name                    modifiable
        availableTo             modifiable
        cellDisk
        comment                 modif?able
        creationTime
        errorCount
        id
        offset
        size                    modifiable
        status

列举资源对象的名称及状态,直接使用list命令就可以了:

CellCLI> list physicaldisk
         34:0            xxxxxx                  normal
         34:1            xxxxxx                  normal
......

如果需要查看详细信息,则需要加上关键字detail:

CellCLI> list physicaldisk detail
         name:                   34:0
         deviceId:               33
         diskType:               HardDisk
         enclosureDeviceId:      34
         errMediaCount:          0
         errOtherCount:          0
         foreignState:           false
         luns:                   0_0
         makeModel:              "SEAGATE ST360057SSUN600G"
         physicalFirmware:       0805
         physicalInsertTime:     2012-10-14T18:38:12+08:00
         physicalInterface:      sas
         physicalSerial:         XXXXXX
         physicalSize:           558.9109999993816G
         slotNumber:             0
         status:                 normal
......

如果要列出此资源对象的所有属性,则需要加上关键字all:


CellCLI> list physicaldisk attributes all
         34:0            33              HardDisk        34                      0       0                               false   0_0                     "SEAGATE ST360057SSUN600G"      0805                    2012-10-14T18:38:12+08:00       sas     xxxxxx  558.9109999993816G      0       normal
......

如果只需要列举出部分所需要的属性,则可以使用关键字attributes和属性名称,多个属性用逗号隔开:

CellCLI> list physicaldisk attributes name, disktype, makemodel, physicalrpm, physicalport, status
         34:0            HardDisk        "SEAGATE ST360057SSUN600G"      normal
......

如果要使用过滤条件,则需要使用关键字where和过滤条件:

list physicaldisk attributes name, physicalInterface, physicalInsertTime  where disktype = 'HardDisk'

         34:0    sas 2012-10-14T18:38:12+08:00
......

《Expert Oracle Exadata》的作者之一Kerry Osborne甚至还总结了CellCLI与sqlplus/SQL的相似之处,并列举出需要知道CellCLI 命令行工具的十大规律。

2. CellCLI的解析过程

以下是使用伪代码描述CellCLI解析用户发送命令行的过程:

BEGIN
IF command IN ('help', 'describe', 'set', 'spool', 'start')
THEN send to cellcli;
ELSE IF command IN ('alter cell startup services', 'alter cell shutdown services')
THEN send to rs;
ELSE IF command ==  ('calibrate')
THEN send to orion;
ELSE
send to ms;
END

根据上述伪代码,如果用文字进行描述可以分为以下四个步骤:

1)如果命令行是'help'、'describe'、'set'、'spool'、'start',则将其发送给CellCLI本身来处理。

2)如果命令行是启动、关闭或者重启cell服务,则将其发送给rs(Restart Server)。

3)如果命令行是calibrate,则将其服务发送给orion。

4)其他情况将其发送给ms(Management Server)。

3. CellCLI命令选项

CellCLI可以直接在shell下进行调用,所以进入CELLCLI>命令提示符并不是必须的,这主要是为了方便使用脚本对其进行管理。例如在shell下,我们可以使用cellcli -e “list physicaldisk”,其产生的结果与在CELLCLI>下运行list physicaldisk效果一样。其中e代表执行(execute)。除了-e选项以外,还有-n代表非交互模式(non-interactive),port-number代表端口号,默认端口为8888,但是实际这个端口是可以在cellinit中自定义的。

当然CellCLI绝对不止这三个选项,还有一些文档没有记录的隐藏选项:例如-d,代表debug模式,-v代表verbose。

目前CellCLI只能在存储服务器的本机运行,如果需要通过远程对存储服务器Cell软件进行管理,可以借助DCLI工具。例如以下就是一个使用DCLI工具来重启所有存储节点上cellsrv服务的命令:

[root@dm01db01 ~]# dcli -g /opt/oracle.SupportTools/onecommand/cell_group  -g root "cellcli –e alter cell restart services all"

点击复制链接 与好友分享!回本站首页
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.5 多主机管理工具DCLI
下一篇:3.7 小结
相关文章
图文推荐
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站