Gasite la instalarea de productie VADECO (Oracle 21c XE, Windows Server 2019).
1. Pe serverul VADECO procesul Oracle nu poate atinge nicio cale de pe C:,
nici macar C:\Windows\Temp, desi ACL-urile sunt corecte si serviciul ruleaza
ca NT SERVICE\OracleServiceXE. D: merge cu exact acelasi grant. Calea DMP
era insa hardcodata "C:\DMPDIR" in 01, 02, 05, 06 si in biblioteca, deci
instalarea nu se putea muta. Acum e parametrul -DmpDir, expus ca /dmpdest:
in FAZA1.cmd si FAZA2.cmd si transmis tuturor pasilor.
Cel mai perfid era pasul 02: recrea DIRECTORY DMPDIR pe 'C:\DMPDIR' peste
valoarea pusa de 01. Chiar cu restul instalarii mutata, SYS.NEWSCHEMA ar fi
cautat FIRMANOUA.dmp in alta parte, iar adaugarea unei firme noi ar fi picat
peste luni, fara legatura vizibila cu instalarea.
2. New-OracleDirectory compara doar siruri de caractere: verifica ce scrie in
dba_directories, nu daca baza chiar poate scrie acolo. Acum face un
UTL_FILE round-trip si esueaza pe loc, cu explicatia cauzei. Inainte,
directorul inutilizabil trecea drept bun si importul cadea abia in impdp cu
ORA-29283, la zeci de linii distanta. Valoarea de retur nici nu era
verificata in 01/03/06 - de aici si "True" ratacit in log.
3. Instalarea ROAClient seteaza TNS_ADMIN de masina spre instantclient-ul ei.
Serviciul Oracle mosteneste variabilele de masina, deci citea sqlnet.ora de
acolo - unde nu exista niciunul - si nu din Oracle Home, unde il scria pasul
01. Compatibilitatea pentru clienti vechi nu se aplica, iar statiile ar fi
primit ORA-28040 cu fisierul scris corect, in locul gresit. Pasul 01 scrie
acum sqlnet.ora si in TNS_ADMIN cand difera.
4. Pasul 05 lega schemele de DMP-uri cu "^$schema[_\.]", deci schema DANUBE
putea primi DANUBE_20200914.dmp - datele altei firme, fara avertisment.
Numele exact are acum intaietate, prefixul se accepta doar daca e unic, iar
ambiguitatea se raporteaza.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SzF1hf4aFS1tmJWpPMiwGp