Monitorando e Gerenciando Exadata Storage Servers com o ExaCLI

O utilitário de linha de comando ExaCLI permite que você execute funções de monitoramento e gerenciamento nos servidores de armazenamento do Exadata em uma instância do Exadata Cloud Infrastructure.

Sobre o Comando ExaCLI

O comando ExaCLI fornece um subconjunto de comandos encontrados no utilitário de linha de comando do Exadata local.

O ExaCLI oferece um subconjunto dos comandos encontrados no utilitário de linha de comando on-premises, utilitário CellCLI do Exadata. O utilitário é executado nas máquinas virtuais do banco de dados no Exadata Cloud Service.

Consulte a lista Comando ExaCLI neste tópico para saber quais comandos estão disponíveis.

Nome de Usuário e Senha do Exadata Storage Server

É necessário um nome de usuário e uma senha para estabelecer conexão com o Exadata Storage Server.

No Exadata Cloud Infrastructure, o usuário pré-configurado do Exadata Storage Server é cloud_user_clustername, em que clustername corresponde ao nome do cluster de máquinas virtuais (VMs) que está sendo usado.

Você pode determinar o nome do cluster de VMs executando o seguinte comando crsctl como usuário grid em qualquer nó de cluster:
crsctl get cluster name

Esse comando retorna CRS-6724: Current cluster name is <cluster_name>

A senha para cloud_user_clustername é definida inicialmente com um valor aleatório, que você pode exibir executando o seguinte comando como usuário root em qualquer nó de cluster:
/opt/exacloud/get_cs_data.py

Essa opção retorna uma senha <pwd>

Em seguida, teste com ExaCLI como raiz:
exacli -l cloud_user_<clusternmae> -c 192.168.136.14
Password: ****************************
exacli cloud_user_<cluster_name>@192.168.136.14>

Sintaxe de Comandos do ExaCLI

Para destinos do Exadata Storage Server, crie seus comandos usando a sintaxe a seguir.

Observe que o exemplo de sintaxe considera que você é o usuário opc em um nó de computação.
exacli -c [username@]remotehost[:port] [-l username] [--xml] [--cookie-jar filename] [-e {command | 'command; command' | @batchfile}]
Este exemplo mostra o usuário em um nó de computação Exadata emitindo o comando para fazer log-in no ExaCLI e iniciar uma sessão interativa no ExaCLI em um servidor de armazenamento:
[opc@exacs-node1 ~]$ exacli -l cloud_user_clustername -c 192.168.136.7

Consulte Conexão com um Servidor de Armazenamento com o ExaCLI para obter informações sobre como determinar o endereço IP do servidor de armazenamento.

Depois de fazer log-in, execute comandos adicionais da seguinte forma:
exacli cloud_user_clustername@192.168.136.7> LIST DATABASE
ASM
HRCDB
Exemplo 2

Este exemplo mostra um único comando emitido em um nó de computação que faz o seguinte:

  • Estabelece conexão com um servidor de armazenamento
  • Executa uma ação LIST
  • Sai da sessão (especificada com o flag "-e")
[opc@exacs-node1 ~]$ exacli -l cloud_user_clustername -c 192.168.136.7 --xml --cookie-jar -e list griddisk detail
Opção Descrição

-c [username@]remotehost ou

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

Especifica o nó remoto com o qual você deseja estabelecer conexão. O ExaCLI solicitará o nome do usuário se não for especificado.

-l username ou

--login-name username

Especifica o nome do usuário para fazer log-in no nó remoto. O usuário pré-configurado é cloud_user_clustername.
--xml Exibe a saída no formato XML.
--cookie-jar [filename]

Especifica o nome do arquivo jar do cookie a ser usado. Se o nome do arquivo não for especificado, o cookie será armazenado em um jar de cookie padrão localizado em HOME/.exacli/cookiejar, em que HOME corresponde ao diretório home do usuário do sistema operacional que executa o comando ExaCLI.

A presença de um cookie válido permite que o usuário ExaCLI execute comandos sem precisar fazer log-in em sessões ExaCLI subsequentes.

-e command ou

-e 'command[; command]' ou

-e @batchFile

Especifica os comandos ExaCLI a serem executados ou um arquivo em batch. O ExaCLI é encerrado após a execução dos comandos.

Se estiver especificando múltiplos comandos para serem executados, coloque-os entre aspas simples para impedir que o shell interprete o ponto e vírgula.

Omita esta opção para iniciar uma sessão interativa do ExaCLI.

--cert-proxy proxy[:port] Especifica o servidor proxy a ser usado durante o download dos certificados. Por padrão, se o comando port for omitido, a porta 80 será usada.

-n ou

--no-prompt

Suprime a solicitação de entrada do usuário.
  • Observações sobre a opção --cookie-jar:

    • O nome do usuário e a senha são enviados ao nó remoto para autenticação. Em uma autenticação bem-sucedida, o nó remoto emitirá um cookie (as credenciais de log-in) que será armazenado no filename especificado no nó do banco de dados. Se filename não for especificado, o cookie será armazenado em um jar de cookie padrão localizado em HOME/.exacli/cookiejar, em que HOME corresponde ao diretório home do usuário do sistema operacional que executa o comando ExaCLI. Para o usuário opc, o home é /home/opc.
    • O usuário do sistema operacional que executa o comando ExaCLI é o proprietário do arquivo jar do cookie.
    • Um jar de cookie pode conter vários cookies de vários usuários em vários nós de sessões paralelas.
    • Os cookies são invalidados após 24 horas.
    • Se o cookie não for encontrado ou não for mais válido, o ExaCLI solicitará a senha. O novo cookie será armazenado no jar de cookie identificado por filename ou no jar de cookie padrão se filename não for especificado.
    • Mesmo sem a opção --cookie-jar, o ExaCLI ainda verifica cookies no jar de cookie padrão. No entanto, se o cookie não existir ou não for mais válido, o novo cookie não será armazenado no jar de cookie padrão se a opção --cookie-jar não for especificada.

  • Observações sobre a opção -e:

    • O ExaCLI é encerrado após a execução dos comandos.
    • Se você estiver especificando a execução de vários comandos, coloque-os entre aspas simples para impedir que o shell interprete o ponto e vírgula.
    • O arquivo em batch é um arquivo de texto que contém um ou mais comandos ExaCLI para execução.
  • Observações sobre a opção -n (--no-prompt):

    • Se o ExaCLI precisar de informações adicionais do usuário, por exemplo, se o ExaCLI precisar solicitar uma senha ao usuário (possivelmente porque não havia cookies válidos no jar de cookie) ou solicitar que o usuário confirme a identidade do nó remoto, ele imprimirá uma mensagem de erro e será encerrado.

Estabelecendo Conexão com um Servidor de Armazenamento com o ExaCLI

Para usar o ExaCLI em servidores de armazenamento, você precisará saber o endereço IP do servidor de armazenamento de destino.

Se você não souber o endereço IP do nó com o qual deseja estabelecer conexão, poderá encontrá-lo exibindo o conteúdo do arquivo cellip.ora.

O exemplo a seguir ilustra como fazer isso na linha de comando do UNIX para um sistema quarter rack. (Observe que um quarter rack tem três células de armazenamento e cada célula tem duas conexões, de forma que um total de seis endereços IP é mostrado.)
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"
Se você estiver estabelecendo conexão com uma célula de armazenamento pela primeira vez usando o ExaCLI, talvez tenha de aceitar um certificado SSL. A saída do ExaCLI nesse caso será semelhante à seguinte:
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)

Aceite o certificado Oracle autoassinado pressionando "y" para continuar usando o ExaCLI.

Referência de Comandos do ExaCLI

Você pode executar vários comandos do ExaCLI para monitorar e gerenciar Exadata Storage Servers associados ao seu sistema de banco de dados Exadata do Oracle Cloud Infrastructure. O ExaCLI permite obter informações atualizadas em tempo real sobre o seu Exadata Cloud Service.

Use o comando LIST com os seguintes serviços e objetos:

  • ACTIVEREQUEST - Lista todas as solicitações ativas que estão sendo atendidas pelos servidores de armazenamento no momento.
  • ALERTDEFINITION - Lista todos os possíveis alertas e suas origens para servidores de armazenamento.
  • ALERTHISTORY - Lista todos os alertas emitidos para os servidores de armazenamento.
  • CELL - Usado para listar os detalhes de um atributo específico dos servidores de armazenamento ou das células de armazenamento. A sintaxe é a seguinte:
    LIST CELL ATTRIBUTES A,B,C
    em que A, B e C são atributos. Para ver todos os atributos de célula, use o
    LIST CELL ATTRIBUTES ALL
    .
  • CELLDISK - Lista os atributos dos discos de célula nos servidores de armazenamento. Para listar os detalhes do disco de célula, use a seguinte sintaxe:
    LIST CELLDISK cell_disk_name
              DETAIL
    .
  • DATABASE - Lista detalhes dos bancos de dados. Usa a sintaxe regular do comando LIST:
    LIST DATABASE
    e
    LIST DATABASE DETAIL
    . Você também pode usar esse comando para mostrar um atributo individual com a seguinte sintaxe:
    LIST DATABASE
              ATTRIBUTES NAME
    .
  • FLASHCACHE - Lista os detalhes do flash cache do sistema Exadata. Para esse objeto, você pode usar os seguintes padrões de sintaxe:
    LIST FLASHCACHE DETAIL
    ou
    LIST FLASHCACHE
              ATTRIBUTES attribute_name
    .
  • FLASHCACHECONTENT - Lista os detalhes de todos os objetos no flash cache ou os detalhes de um ID de objeto especificado. Para listar todos os detalhes de todos os objetos, use
    LIST FLASHCACHECONTENT DETAIL
    . Para listar detalhes de um objeto específico, use uma cláusula where como esta:
    LIST FLASHCACHECONTENT WHERE objectNumber=12345 DETAIL
    Observação: Para localizar o ID de um objeto específico, você pode consultar
    user_objects
    usando o nome do objeto para obter o
    data_object_id
    de uma partição ou tabela.
  • FLASHLOG - Lista os atributos para o Oracle Exadata Smart Flash Log.
  • GRIDDISK - Lista os detalhes de um disco de grade específico. A sintaxe é semelhante à sintaxe do comando CELLDISK. Para exibir todos os atributos:
    LIST GRIDDISK grid_disk_name
              DETAIL
    . Para exibir os atributos especificados do disco de grade:
    LIST
              GRIDDISK grid_disk_name ATTRIBUTES size,
            name
    .
  • IBPORT - Lista os detalhes das portas InfiniBand. A sintaxe é
    LIST IBPORT DETAIL
    .
  • IORMPROFILE - Lista todos os perfis do IORM definidos nos servidores de armazenamento. Você também poderá retornar ao atributo de perfil no objeto DATABASE se um banco de dados tiver um perfil do IORM. A sintaxe é
    LIST
              IORMPROFILE
    .
  • LUN - O objeto LUN (número da unidade lógica) retorna o número e os detalhes dos discos físicos nos servidores de armazenamento. Liste os LUNs dos discos com
    LIST LUN
    . Lista os detalhes de cada LUN com
    LIST LUN lun_number
              DETAIL
    .
  • METRICCURRRENT - lista as métricas atuais de um tipo de objeto específico. A sintaxe é
    LIST METRICCURRENT WHERE
                objectType = 'CELLDISK'
    . Esse comando também permite a classificação e os limites de resultados, conforme vistos no seguinte exemplo:
    LIST METRICCURRENT attributes name, metricObjectName
                ORDER BY metricObjectName asc, name desc LIMIT 5
  • METRICDEFINITION - Lista definições de métricas para o objeto do qual você pode obter detalhes. Com o comando
    LIST
              metricDefinition WHERE objectType=cell
    , você pode obter todas as métricas desse tipo de objeto. Em seguida, você pode usar o objeto de definição de métrica novamente para obter detalhes de uma das métricas específicas listadas:
    LIST metricDefinition WHERE
              name= IORM_MODE DETAIL
    .
  • METRICHISTORY - Lista métricas durante um período especificado. Por exemplo, com o comando
    LIST METRICHISTORY WHERE ageInMinutes <
              30
    , você pode listar todas as métricas coletadas nos últimos 30 minutos. Você também pode usar o predicado collectionTime para definir uma faixa de horário específico. Use collectionTime conforme mostrado no seguinte exemplo:
    LIST METRICHISTORY WHERE collectionTime
              > '2018-04-01T21:12:00-10:00'
    . O objeto de histórico de métrica também pode ser usado para ver uma métrica específica usando o nome do objeto (por exemplo,
    LIST
              METRICHISTORY CT_FD_IO_RQ_SM
    ) ou com uma cláusula "where" para obter objetos com atributos semelhantes a name (por exemplo,
    LIST METRICHISTORY WHERE
              name like 'CT_.*'
    ).
  • OFFLOADGROUP -Lista os atributos do grupo de descarregamento em execução nos servidores de armazenamento. Você pode listar todos os detalhes de todos os grupos com
    LIST OFFLOADGROUP DETAIL
    ou listar os atributos de um grupo específico, conforme mostrado no seguinte exemplo:
    LIST
              OFFLOADGROUP offloadgroup4
    . Lista atributos específicos com
    LIST OFFLOADGROUP ATTRIBUTES name
    .
  • PHYSICALDISK - Lista todos os discos físicos. Use os resultados de
    LIST PHYSICALDISK
    para identificar um disco específico a ser investigado melhor; em seguida, liste os detalhes desse disco usando o seguinte comando:
    LIST PHYSICALDISK 20:10 DETAIL
    . Para listar os detalhes de discos flash, use o seguinte comando:
    LIST PHYSICALDISK
              FLASH_1_0 DETAIL
    ).
  • PLUGGABLEDATABASE - Lista todos os PDBs. Exiba os detalhes de um PDB específico com
    LIST PLUGGABLEDATABASE pdb_name
    .
  • QUARANTINE - Lista todas as instruções SQL que você impediu de usar Smart Scans. A sintaxe é
    LIST QUARANTINE
              DETAIL
    Você também pode usar uma cláusula "where" em qualquer um dos atributos disponíveis.

Use os comandos ExaCLI CREATE, ALTER, DROP e LIST para atuar nos seguintes objetos do Exadata Storage Server:

  • DIAGPACK - Lista os pacotes de diagnóstico e seus status no sistema Exadata. A sintaxe é
    LIST DIAGPACK
                [DETAIL]
    , em que DETAIL é um atributo opcional. Use
    CREATE DIAGPACK
    com o atributo
    packStartTime
    para coletar logs e arquivos de rastreamento em um único arquivo compactado para download, como no exemplo a seguir:
    CREATE DIAGPACK
                packStartTime=2019_12_15T00_00_00
    . Você também pode usar o valor "now" com packStartTime:
    CREATE DIAGPACK packStartTime=now
    Para fazer download de um pacote de diagnóstico, use
    DOWNLOAD DIAGPACK
                  package_namelocal_directory
    . Por exemplo, o comando a seguir faz download de um pacote de diagnóstico para o diretório /tmp:
    DOWNLOAD DIAGPACK  cfclcx2647_diag_2018_06_03T00_44_24_1 /tmp
  • IORMPLAN - Você pode listar, criar, alterar e eliminar planos do IORM usando o ExaCLI. Para ver os detalhes de todos os planos do IORM, use
    LIST
              IORMPLAN DETAIL
    . Você também pode usar o comando para criar e alterar planos do IORM e aplicar planos a servidores de armazenamento.
select object_name, data_object_id from user_objects where object_name = 'BIG_CENSUS';
OBJECT_NAME               DATA_OBJECT_ID
----------------------------------------
BIG_CENSUS                29152