DICA: Consultando informações do DB System OCI via terminal Linux

Uma dúvida comum que alguns colegas me perguntam é como saber se o servidor que ele está conectado é um DB System OCI.

Existem alguns artifícios, como testar a execução de comandos com o utilitário dbcli, exemplo:

# dbcli describe-component
System Version
---------------
21.2.1.3.0

Component                                Installed Version    Available Version
---------------------------------------- -------------------- --------------------
GI                                        19.9.0.0.0            19.11.0.0
DB                                        11.2.0.4.201020       11.2.0.4.210420

Mas o mais efetivo é consultar essa URL a partir do servidor em questão (a URL é sempre a mesma):

# curl -s http://169.254.169.254/opc/v1/instance/

E o resultado é esse JSON com as informações sobre o DB System, que normalmente são consultadas pela console OCI:

{
  "availabilityDomain" : "AVtn:SA-SAOPAULO-1-AD-1",
  "faultDomain" : "FAULT-DOMAIN-2",
  "compartmentId" : "ocid1.tenancy.oc1..aaaaaaaa<DADOS REAIS AQUI>",
  "displayName" : "ocid1.dbsystem.oc1.sa-saopaulo<DADOS REAIS AQUI>",
  "hostname" : "dbtst1",
  "id" : "ocid1.instance.oc1.sa-saopaulo-1<DADOS REAIS AQUI>",
  "image" : "ocid1.image.oc1.sa-saopaulo-1<DADOS REAIS AQUI>",
  "metadata" : {
    "compartmentId" : "ocid1.compartment.oc1.<DADOS REAIS AQUI>",
    "availabilityDomain" : "wZWy:SA-SAOPAULO-1-AD-1",
    "ssh_authorized_keys" : "ssh-rsa <DADOS REAIS AQUI>",
    "nodeNumber" : "0",
    "timeZone" : "America/Sao_Paulo",
    "user_data" : "<DADOS REAIS AQUI>",
    "privateIP0" : "192.168.16.18",
    "numberOfNodes" : "1",
    "sshkey-resourceID" : "<DADOS REAIS AQUI>",
    "agentAuth" : "true",
    "dbSystemShape" : "VM.Standard2.2"
  },
  "region" : "sa-saopaulo-1",
  "canonicalRegionName" : "sa-saopaulo-1",
  "ociAdName" : "sa-saopaulo-1-ad-1",
  "regionInfo" : {
    "realmKey" : "oc1",
    "realmDomainComponent" : "oraclecloud.com",
    "regionKey" : "GRU",
    "regionIdentifier" : "sa-saopaulo-1"
  },
  "shape" : "VM.Standard2.2",
  "state" : "Running",
  "timeCreated" : 1607635682390,
  "agentConfig" : {
    "monitoringDisabled" : false,
    "managementDisabled" : false,
    "allPluginsDisabled" : false
  }
}

Se quisermos obter uma informação específica, basta usar o grep:

Obtendo o shape do DB System:

# curl -s http://169.254.169.254/opc/v1/instance/ | grep shape
  "shape" : "VM.Standard2.2",

Obtendo a região do DB System:

# curl -s http://169.254.169.254/opc/v1/instance/ | grep region
"region" : "sa-saopaulo-1",
"regionInfo" : {
"regionKey" : "GRU",
"regionIdentifier" : "sa-saopaulo-1"

Testei o comando também em um Exadata Cloud Service (ExaCS). O exemplo abaixo retorna o shape do Exadata:

# curl -s http://169.254.169.254/opc/v1/instance/ | grep Shape
    "dbSystemShape" : "Exadata.Base.48"

Então podemos identificar as especificações na documentação:

Exadata.Base.48: Provides a 2-node Exadata DB system with up to 48 CPU cores, and 74 TB of usable storage.

Marcus Vinicius escreveu um blog post recente demonstrando como consultar esse Endpoint diretamente do banco de dados usando PLSQL:

Leave a Reply

Scroll to Top

Discover more from Blog do Dibiei

Subscribe now to keep reading and get access to the full archive.

Continue reading