Monitoring and Managing Exadata Storage Servers with ExaCLI

The ExaCLI command line utility allows you to perform monitoring and management functions on Exadata storage servers in an Exadata Cloud Infrastructure instance.

About the ExaCLI Command

The ExaCLI command provides a subset of the commands found in the on-premises Exadata command line utility.

ExaCLI offers a subset of the commands found in the on-premises Exadata command line utility CellCLI utility. The utility runs on the database virtual machines in the Exadata Cloud Service.

See the ExaCLI Command list in this topic to learn what commands are available.

Exadata Storage Server Username and Password

You need a username and password to connect to the Exadata Storage Server.

On Exadata Cloud Infrastructure, the preconfigured user for Exadata Storage Server is cloud_user_clustername, where clustername is the name of the virtual machine (VM) cluster that is being used.

You can determine the name of the VM cluster by running the following crsctl command as the grid user on any cluster node:
crsctl get cluster name

IThis command returns CRS-6724: Current cluster name is <cluster_name>

The password for cloud_user_clustername is initially set to a random value, which you can view by running the following command as the root user on any cluster node:
/opt/exacloud/get_cs_data.py

This returns a password <pwd>

Then test with ExaCLI as root:
exacli -l cloud_user_<clusternmae> -c 192.168.136.14
Password: ****************************
exacli cloud_user_<cluster_name>@192.168.136.14>

ExaCLI Command Syntax

For Exadata Storage Server targets, construct your commands using the syntax that follows.

Note that the syntax example assumes you are the opc user on a compute node.
exacli -c [username@]remotehost[:port] [-l username] [--xml] [--cookie-jar filename] [-e {command | 'command; command' | @batchfile}]
This example shows the user on an Exadata compute node issuing the command to log in to ExaCLI start an interactive ExaCLI session on a storage server:
[opc@exacs-node1 ~]$ exacli -l cloud_user_clustername -c 192.168.136.7

See Connecting to a Storage Server with ExaCLI for information on determining your storage server's IP address.

Once logged in, run additional commands as follows:
exacli cloud_user_clustername@192.168.136.7> LIST DATABASE
ASM
HRCDB
Example 2

This example shows a single command issued on a compute node that does the following:

  • Connects to a storage server
  • Performs a LIST action
  • Exits the session (specified with the "-e" flag)
[opc@exacs-node1 ~]$ exacli -l cloud_user_clustername -c 192.168.136.7 --xml --cookie-jar -e list griddisk detail
Option Description

-c [username@]remotehost or

--connect [username@]remotehost[:port]

Specifies the remote node to which you want to connect. ExaCLI prompts for the user name if not specified.

-l username or

--login-name username

Specifies the user name to log into the remote node. The preconfigured user is cloud_user_clustername.
--xml Displays the output in XML format.
--cookie-jar [filename]

Specifies the filename of the cookie jar to use. If filename is not specified, the cookie is stored in a default cookie jar located at HOME/.exacli/cookiejar, where HOME is the home directory of the OS user running the ExaCLI command.

The presence of a valid cookie allows the ExaCLI user to execute commands without requiring to login in subsequent ExaCLI sessions.

-e command or

-e 'command[; command]' or

-e @batchFile

Specifies either the ExaCLI commands to run or a batch file. ExaCLI exits after running the commands.

If specifying multiple commands to run, enclose the commands in single quotes to prevent the shell from interpreting the semi-colon.

Omit this option to start an interactive ExaCLI session.

--cert-proxy proxy[:port] Specifies the proxy server to use when downloading certificates. If port is omitted, port 80 is used by default.

-n or

--no-prompt

Suppresses prompting for user input.
  • Notes for the --cookie-jar option:

    • The user name and password are sent to the remote node for authentication. On successful authentication, the remote node issues a cookie (the login credentials) that is stored in the specified filename on the database node. If filename is not specified, the cookie is stored in a default cookie jar located at HOME/.exacli/cookiejar, where HOME is the home directory of the operating system user running the ExaCLI command. For the opc user, the home is /home/opc.
    • The operating system user running the ExaCLI command is the owner of the cookie-jar file.
    • A cookie jar can contain multiple cookies from multiple users on multiple nodes in parallel sessions.
    • Cookies are invalidated after 24 hours.
    • If the cookie is not found or is no longer valid, ExaCLI prompts for the password. The new cookie is stored in the cookie jar identified by filename, or the default cookie jar if filename is not specified.
    • Even without the --cookie-jar option, ExaCLI still checks for cookies from the default cookie jar. However, if the cookie does not exist or is no longer valid, the new cookie will not be stored in the default cookie jar if the --cookie-jar option is not specified.

  • Notes for the -e option:

    • ExaCLI exits after running the commands.
    • If specifying multiple commands to run, be sure to enclose the commands in single quotes to prevent the shell from interpreting the semi-colon.
    • The batch file is a text file that contains one or more ExaCLI commands to run.
  • Notes for the -n (--no-prompt) option:

    • If ExaCLI needs additional information from the user, for example, if ExaCLI needs to prompt the user for a password (possibly because there were no valid cookies in the cookie-jar) or to prompt the user to confirm the remote node’s identity, then ExaCLI prints an error message and exits.

Connecting to a Storage Server with ExaCLI

To use ExaCLI on storage servers, you will need to know your target storage server's IP address.

If you do not know the IP address of the node you want to connect to, you can find it by viewing the contents of the cellip.ora file.

The following example illustrates how to do so on the UNIX command line for a quarter rack system. (Note that a quarter rack has three storage cells, and each cell has two connections, so a total of six IP addresses are shown.)
cat /etc/oracle/cell/
network-config/cellip.oracle
cell="192.168.136.5;cell="192.168.136.6"
cell="192.168.136.7;cell="192.168.136.8"
cell="192.168.136.9;cell="192.168.136.10"
If you are connecting to a storage cell for the first time using ExaCLI, you may be prompted to accept an SSL certificate. The ExaCLI output in this case will look like the following:
exacli -l cloud_user_clustername -c 192.168.136.7 --cookie-jar
No cookies found for cloud_user_clustername@192.168.136.7
Password: *********
EXA-30016: This connection is not secure. You have asked ExaCLI to connect to cell 192.168.136.7 securely. The identity of 192.168.136.7 cannot be verified.
Got certificate from server:
C=US,ST=California,L=Redwood City,O=Oracle Corporation,OU=Oracle Exadata,CN=ed1cl03clu01-priv2.usdc2.oraclecloud.com
Do you want to accept and store this certificate? (Press y/n)

Accept the self-signed Oracle certificate by pressing "y" to continue using ExaCLI.

ExaCLI Command Reference

You can execute various ExaCLI commands to monitor and manage Exadata Storage Servers associated with your Oracle Cloud Infrastructure Exadata DB system. ExaCLI allows you to get up-to-date, real-time information about your Exadata Cloud Service.

Use the LIST command with the following services and objects:

  • ACTIVEREQUEST: Lists all active requests that are currently being served by the storage servers.
  • ALERTDEFINITION: Lists all possible alerts and their sources for storage servers.
  • ALERTHISTORY: Lists all alerts that have been issues for the storage servers.
  • CELL: Lists the details of specific attributes of the storage servers (storage cells).
    LIST CELL ATTRIBUTES A,B,C

    where A, B, and C represent the attributes to be displayed.

    To view all cell attributes, use:

    LIST CELL ATTRIBUTES ALL
  • CELLDISK: Lists the attributes of the cell disks in the storage servers.
    LIST CELLDISK cell_disk_name DETAIL

    Displays detailed information for the specified cell disk.

  • DATABASE: Lists details of the databases.
    LIST DATABASE

    Displays a summary of all databases.

    LIST DATABASE DETAIL

    Displays detailed information for all databases.

    LIST DATABASE ATTRIBUTES NAME

    Displays the specified attribute (in this case, the NAME) for each database.

  • FLASHCACHE: Lists the details of the Exadata system’s flash cache.
    LIST FLASHCACHE DETAIL

    Displays detailed information for the flash cache.

    LIST FLASHCACHE ATTRIBUTES attribute_name

    Displays the specified attribute for the flash cache.

  • FLASHCACHECONTENT: Lists the details of all objects in the flash cache, or the details of a specified object ID.
    LIST FLASHCACHECONTENT DETAIL

    Displays detailed information for all objects in the flash cache.

    LIST FLASHCACHECONTENT WHERE objectNumber=12345 DETAIL

    Displays detailed information for the object with the specified objectNumber.

    Note

    To find the object ID of a specific object, query user_objects using the object’s name to retrieve the data_object_id of a partition or table.

  • FLASHLOG: Lists the attributes for the Oracle Exadata Smart Flash Log.
  • GRIDDISK: Lists the details of a particular grid disk. The syntax is similar to the CELLDISK command.
    LIST GRIDDISK grid_disk_name DETAIL

    Displays all attributes of the specified grid disk.

    LIST GRIDDISK grid_disk_name ATTRIBUTES size, name

    Displays only the specified attributes (size, name) of the grid disk.

  • IBPORT: Lists details of the InfiniBand ports.
    LIST IBPORT DETAIL

    Displays detailed information for all InfiniBand ports.

  • IORMPROFILE: Lists any IORM profiles that have been set on the storage servers. You can also refer to the profile attribute on the DATABASE object to see if a database has an associated IORM profile.
    LIST IORMPROFILE

    Displays the IORM profiles configured on the storage servers.

  • LUN: Represents the logical unit numbers (LUNs) of the physical disks in the storage servers.
    LIST LUN

    Displays a summary of all LUNs.

    LIST LUN lun_number DETAIL

    Displays detailed information for the specified LUN.

  • METRICCURRRENT: Lists the current metrics for a particular object type.
    LIST METRICCURRENT WHERE objectType = 'CELLDISK'

    Displays the current metrics for the specified object type (in this case, CELLDISK).

    LIST METRICCURRENT ATTRIBUTES name, metricObjectName 
    ORDER BY metricObjectName ASC, name DESC LIMIT 5

    Displays selected attributes, sorted by metricObjectName (ascending) and name (descending), limited to the top 5 results.

  • METRICDEFINITION: Lists the metric definitions available for a given object type. These definitions can then be used to retrieve details for specific metrics.
    LIST METRICDEFINITION WHERE objectType = cell

    Displays all metric definitions for the specified object type (cell).

    LIST METRICDEFINITION WHERE name = IORM_MODE DETAIL

    Displays detailed information for the specified metric (IORM_MODE).

  • METRICHISTORY: Lists metrics collected over a specified period of time.
    LIST METRICHISTORY WHERE ageInMinutes < 30

    Displays all metrics collected in the past 30 minutes.

    LIST METRICHISTORY WHERE collectionTime > '2018-04-01T21:12:00-10:00'

    Displays all metrics collected after the specified timestamp.

    LIST METRICHISTORY CT_FD_IO_RQ_SM

    Displays the history of a specific metric by name.

    LIST METRICHISTORY WHERE name LIKE 'CT_.*'

    Displays all metrics with names matching the given pattern.

  • OFFLOADGROUP: Lists the attributes of the offload groups running on the storage servers.
    LIST OFFLOADGROUP DETAIL

    Displays detailed information for all offload groups.

    LIST OFFLOADGROUP offloadgroup4

    Displays the details of a specific offload group (offloadgroup4).

    LIST OFFLOADGROUP ATTRIBUTES name

    Displays only the specified attribute(s), such as name, for all offload groups.

  • PHYSICALDISK: Lists all physical disks in the storage servers. Use the results to identify a specific disk for further investigation.
    LIST PHYSICALDISK

    Displays a summary of all physical disks.

    LIST PHYSICALDISK 20:10 DETAIL

    Displays detailed information for a specific disk (20:10).

    LIST PHYSICALDISK FLASH_1_0 DETAIL

    Displays detailed information for a specific flash disk (FLASH_1_0).

  • PLUGGABLEDATABASE: Lists all pluggable databases (PDBs) in the environment.
    LIST PLUGGABLEDATABASE

    Displays a summary of all pluggable databases.

    LIST PLUGGABLEDATABASE pdb_name

    Displays detailed information for the specified pluggable database (pdb_name).

  • QUARANTINE: Lists all SQL statements that have been prevented from using Smart Scans.
    LIST QUARANTINE DETAIL

    Displays detailed information for all quarantined SQL statements.

    LIST QUARANTINE WHERE attribute = value

    Filters results by specific attributes using a WHERE clause.

Use the ExaCLI CREATE, ALTER, DROP, and LIST commands to act on the following Exadata Storage Server objects:

  • DIAGPACK: Lists diagnostic packages and their status in the Exadata system.
    LIST DIAGPACK
    LIST DIAGPACK DETAIL

    Lists all diagnostic packages, with DETAIL providing extended information.

    CREATE DIAGPACK packStartTime=2019_12_15T00_00_00

    Creates a diagnostic package starting from the specified time. You can also use now to capture diagnostics immediately:

    CREATE DIAGPACK packStartTime=now
    DOWNLOAD DIAGPACK cfclcx2647_diag_2018_06_03T00_44_24_1 /tmp

    Downloads the specified diagnostic package to the /tmp directory (or another local path).

  • IORMPLAN: Manage I/O Resource Manager (IORM) plans on Exadata storage servers. You can list, create, alter, and drop IORM plans using ExaCLI.
    LIST IORMPLAN DETAIL

    Lists all IORM plans with detailed information.

    You can also use CREATE IORMPLAN, ALTER IORMPLAN, or DROP IORMPLAN to manage plans, and apply them to storage servers as needed.

    select object_name, data_object_id from user_objects where object_name = 'BIG_CENSUS';
    OBJECT_NAME               DATA_OBJECT_ID
    ----------------------------------------
    BIG_CENSUS                29152