Close Menu
  • Home
  • Databases
    • Oracle
      • ASM
      • Data Guard
      • RAC
  • Performance
  • Tools
  • Troubleshooting
  • Python
  • Shell Script
Search

Oracle RAC 12.2 no VMware Workstation — Post 3: Instalação do Grid Infrastructure

2026-04-05 Oracle By Henrique

Oracle RAC 12.2 no VMware Workstation — Post 1: Configuração do VMware e Openfiler

2026-04-05 Oracle By Henrique

Oracle RAC 12.2 no VMware Workstation – Post 2: Configuração do Oracle Linux e iSCSI

2026-04-05 Oracle By Henrique
YouTube LinkedIn RSS
  • Sobre
  • Contato
  • Legal
    • Aviso Legal
    • Política de Cookies
    • Política de Privacidade
    • Termos de Uso
  • RSS
  • Português
    • Inglês
Execute StepExecute Step
YouTube LinkedIn RSS
  • Home
  • Databases
    • Oracle
      • ASM
      • Data Guard
      • RAC
  • Performance
  • Tools
  • Troubleshooting
  • Python
  • Shell Script
Execute StepExecute Step
Home » ORA-12777 — Como Corrigir “Non-Continuable Error” com ORACLE_BASE Unset Após Copiar Oracle Home
Oracle Oracle Troubleshooting

ORA-12777 — Como Corrigir “Non-Continuable Error” com ORACLE_BASE Unset Após Copiar Oracle Home

HenriqueBy Henrique2026-03-197 Mins Read
Share
Facebook Twitter LinkedIn Pinterest Email Telegram WhatsApp

This post is also available in: English (Inglês)

Ao tentar iniciar um banco de dados Oracle a partir de uma Oracle Home copiada manualmente com cp -pR, o seguinte erro pode aparecer:

$ srvctl start database -d mydb

PRCR-1079 : Failed to start resource ora.mydb.db
CRS-5017: The resource action "ora.mydb.db start" encountered the following error:
ORA-12777: A non-continuable error encountered. Check the error stack for
additional information [ksm_check_ob_paths:1], [ORACLE_BASE], [], [].
ORA-08275: Environment variable unset
CRS-2674: Start of 'ora.mydb.db' on 'node1' failed

O erro ORA-12777 é genérico — significa “erro não-continuável”. Mas a pista real está na linha seguinte: ORA-08275: Environment variable unset referenciando ORACLE_BASE. Isso aponta diretamente para um arquivo específico dentro do Oracle Home: o orabasetab.

Neste artigo, vou explicar por que esse erro ocorre ao copiar um Oracle Home, o que é o orabasetab, como corrigir e quais outros arquivos podem precisar de ajuste.

💡 Na prática: Encontrei esse erro ao tentar aplicar o RU 19.26 em um banco de dados. Após diversas tentativas falharem, copiei a Oracle Home 19.25 para um novo diretório 19.26 com cp -pR, apliquei o patch e tentei subir o banco na nova home. O banco não iniciou porque o orabasetab ainda apontava para a home antiga.


Por Que o Erro Ocorre

O Oracle Database precisa saber onde está o Oracle Base — o diretório raiz para logs, audit, diag e outros arquivos de runtime. Essa informação fica registrada no arquivo:

$ORACLE_HOME/install/orabasetab

O que é o orabasetab

O orabasetab é um arquivo de texto que mapeia o Oracle Home ao Oracle Base e ao Home Name no inventário. Formato:

/u01/app/oracle/product/19.25.0.0/dbhome_1:/u01/app/oracle:Orasidb19c_home1:N:
CampoValorSignificado
1/u01/app/.../dbhome_1Caminho do Oracle Home
2/u01/app/oracleOracle Base
3Orasidb19c_home1Nome da home no inventário
4NFlag de leitura (N = normal)

O que acontece quando você copia a home

Quando você faz cp -pR de uma Oracle Home para outro diretório, todos os arquivos são copiados com o conteúdo original — incluindo o orabasetab. O resultado:

  • O novo diretório é /u01/app/oracle/product/19.26.0.0/dbhome_1
  • Mas o orabasetab dentro dele ainda diz: 19.25.0.0/dbhome_1
  • O Oracle lê esse arquivo, não encontra o caminho correto e falha com ORA-12777 + ORA-08275

Diagnóstico

1. Verificar o erro completo

A combinação de erros que identifica este cenário:

ORA-12777: ... [ksm_check_ob_paths:1], [ORACLE_BASE], [], []
ORA-08275: Environment variable unset

Se o erro ORA-12777 tiver outros parâmetros (ex: [ksbcti_child:8], [LOG_ARCHIVE_DEST]), a causa é outra — este artigo não se aplica.

2. Verificar o orabasetab

bash

cat $ORACLE_HOME/install/orabasetab

Se o primeiro campo não corresponder ao $ORACLE_HOME atual, essa é a causa.

Exemplo do problema:

bash

# ORACLE_HOME atual
echo $ORACLE_HOME
# /u01/app/oracle/product/19.26.0.0/dbhome_1

# Mas o orabasetab diz:
cat $ORACLE_HOME/install/orabasetab
# /u01/app/oracle/product/19.25.0.0/dbhome_1:/u01/app/oracle:Orasidb19c_home1:N:
#                          ^^^^^^ versão antiga!

3. Verificar se a home está no inventário

bash

cat /etc/oraInst.loc
# inventory_loc=/u01/app/oraInventory

cat /u01/app/oraInventory/ContentsXML/inventory.xml | grep -i "HOME NAME"

Se a nova home não estiver listada no inventário, ela precisa ser registrada.


Solução

Passo 1 — Registrar a nova home no inventário

Use o runInstaller -attachhome para registrar a home copiada no Oracle Inventory:

bash

$ORACLE_HOME/oui/bin/runInstaller -attachhome \
  ORACLE_HOME=/u01/app/oracle/product/19.26.0.0/dbhome_1 \
  ORACLE_HOME_NAME=OraDB19Home_1926

Nota: Escolha um ORACLE_HOME_NAME único que não conflite com homes existentes no inventário.

Esse comando atualiza automaticamente:

  • O Oracle Inventory (inventory.xml)
  • O orabasetab dentro da nova home

Passo 2 — Verificar o orabasetab atualizado

bash

cat /u01/app/oracle/product/19.26.0.0/dbhome_1/install/orabasetab

Resultado esperado:

/u01/app/oracle/product/19.26.0.0/dbhome_1:/u01/app/oracle:OraDB19Home_1926:N:

O primeiro campo agora aponta para a home correta.

Passo 3 — Iniciar o banco de dados

bash

srvctl start database -d mydb

Passo 4 — Validar

bash

# Verificar processos
ps -ef | grep pmon

# Verificar pelo srvctl
srvctl status database -d mydb

O Que Mais Pode Estar Errado Após cp -pR

Copiar uma Oracle Home com cp -pR é uma prática não recomendada pela Oracle. Além do orabasetab, outros arquivos podem conter caminhos hardcoded da home antiga:

ArquivoO que verificar
$ORACLE_HOME/install/orabasetabCaminho do Oracle Home (corrigido acima)
$ORACLE_HOME/network/admin/listener.oraParâmetro ORACLE_HOME no SID_LIST
$ORACLE_HOME/network/admin/tnsnames.oraCaminhos se houver referências locais
$ORACLE_HOME/network/admin/sqlnet.oraPaths de wallet, logs
/etc/oratabEntrada do banco apontando para a home correta
$ORACLE_HOME/dbs/init<SID>.ora / spfileParâmetros com caminhos absolutos
$ORACLE_HOME/install/oraInst.locReferência ao inventário

Verificação rápida:

bash

# Procurar referências à home antiga em todos os configs
grep -r "19.25.0.0" $ORACLE_HOME/network/admin/ <strong>2</strong>>/dev/null
grep -r "19.25.0.0" $ORACLE_HOME/dbs/ <strong>2</strong>>/dev/null
grep "19.25.0.0" /etc/oratab

Ajuste qualquer referência encontrada para o novo caminho.


Outras Causas Comuns do ORA-12777

O ORA-12777 é um erro guarda-chuva que pode ter diversas causas. Se o seu cenário não envolve cópia de Oracle Home, verifique:

  • ORACLE_BASE não definido no ambiente — exporte no .bash_profile
  • Permissões incorretas no Oracle Home ou Oracle Base — chown -R oracle:oinstall
  • Oracle Home corrompido — reclonar ou reinstalar
  • Problemas no CRS/Grid Infrastructure — verificar logs do ohasd_oraagent
  • Variáveis de ambiente inconsistentes — comparar env com o esperado

O log detalhado está sempre em:

bash

cat /u01/app/oracle/diag/crs/<hostname>/crs/trace/ohasd_oraagent_oracle.trc

Método Correto para Clonar um Oracle Home

Em vez de cp -pR, use o método suportado pela Oracle:

bash

# 1. Copiar os arquivos
cp -pR /u01/app/oracle/product/19.25.0.0/dbhome_1/* /u01/app/oracle/product/19.26.0.0/dbhome_1/

# 2. Registrar no inventário (OBRIGATÓRIO)
cd /u01/app/oracle/product/19.26.0.0/dbhome_1/oui/bin
./runInstaller -clone -waitForCompletion \
  ORACLE_HOME=/u01/app/oracle/product/19.26.0.0/dbhome_1 \
  ORACLE_HOME_NAME=OraDB19Home_1926 \
  ORACLE_BASE=/u01/app/oracle

# 3. Executar root.sh
sudo /u01/app/oracle/product/19.26.0.0/dbhome_1/root.sh

O -clone cuida de atualizar o orabasetab, o inventário, os paths internos e executar os relinks necessários.


Checklist Rápido de Diagnóstico

bash

# 1. O erro contém [ORACLE_BASE] e ORA-08275?
# Se sim → problema no orabasetab

# 2. Verificar orabasetab
cat $ORACLE_HOME/install/orabasetab

# 3. O primeiro campo corresponde ao $ORACLE_HOME?
echo $ORACLE_HOME

# 4. A home está no inventário?
cat /u01/app/oraInventory/ContentsXML/inventory.xml | grep -i "home name"

# 5. Procurar caminhos antigos
grep -r "VERSAO_ANTIGA" $ORACLE_HOME/network/admin/ /etc/oratab $ORACLE_HOME/dbs/

Conclusão

O erro ORA-12777 com ORA-08275: Environment variable unset [ORACLE_BASE] é causado por um orabasetab desatualizado — quase sempre resultado de copiar uma Oracle Home com cp -pR sem registrar a nova home no inventário.

O diagnóstico é direto:

  1. Verificar se o erro contém [ORACLE_BASE] + ORA-08275
  2. Comparar o orabasetab com o $ORACLE_HOME atual
  3. Registrar a home no inventário com runInstaller -attachhome
  4. Verificar que o orabasetab foi atualizado
  5. Revisar outros arquivos com caminhos da home antiga (listener.ora, oratab, etc.)
  6. Iniciar o banco e validar

Para futuros clones de Oracle Home, use runInstaller -clone em vez de cp -pR — é o método suportado e evita esse tipo de problema.


Referências:

  • Oracle Error Help — ORA-12777
  • MOS Note 1084498.1 — ORA-12777 / ORA-08275 After Changing Oracle Home Location
  • Oracle Database Installation Guide — Cloning an Oracle Home
clusterware ora-12777 orabasetab oracle oracle-home patching patching troubleshooting
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email WhatsApp
Previous ArticleORA-01400 — Como Corrigir “Cannot Insert NULL into DVSYS.REALM_OBJECT$” no Datapatch
Next Article ORA-15221 — Como Corrigir “ASM Operation Requires compatible.asm of String or Higher”

Related Posts

Oracle

ORA-01031 — Privilégio Insuficiente ao Criar Coluna IDENTITY

2026-04-03
Read More
Oracle

ORA-12547 — TNS:lost contact ao conectar com sqlplus

2026-04-03
Read More
Oracle

Resetando Sequences no Oracle: RESTART e o Método Clássico

2026-03-31
Read More
Add A Comment
Leave A Reply Cancel Reply

Demo
Follow Me
  • Email
  • GitHub
  • LinkedIn
  • RSS
  • YouTube

INS-06006 – Passwordless SSH Connectivity Not Set Up

2026-02-2614 Views

Limpeza da biblioteca de software OEM: Purge seguro e controle de crescimento de swlib

2026-02-215 Views

ORA-29548 – Como corrigir o erro “Java System Class Reported” no Oracle Database

2026-03-053 Views
Demo
Tags
alter-sequence asm chrony compatible-asm cv-assume-distid database-vault datapatch disk-group dvsys enterprise manager grid-infrastructure how-to identity-column ins-08101 inventory java lab ntp oem oem-13c opatchauto opatchauto-72083 ora-01400 ora-15221 ora-29548 oracle oracle-rac oracle-sequence patch de dados patching prvg-01017 rhel-8 runcluvfy software-library storage troubleshooting
Execute Step
YouTube LinkedIn RSS
  • Home
  • Sobre
  • Contato
  • RSS
  • Português
    • English (Inglês)
© 2026 ExecuteStep. Designed by ThemeSphere.

Type above and press Enter to search. Press Esc to cancel.

Ad Blocker Enabled!
Ad Blocker Enabled!
Our website is made possible by displaying online advertisements to our visitors. Please support us by disabling your Ad Blocker.