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.“
Atualização 07/07/2025
Marcus Vinicius escreveu um blog post recente demonstrando como consultar esse Endpoint diretamente do banco de dados usando PLSQL: