fix(export): aliasul TNS lipsa facea exportul zilnic sa esueze tacut

La VADECO, backupora.exe rula in fiecare noapte, se termina cu cod 0 si scria
"DONE" pentru fiecare schema - dar directorul zilei ramanea gol. Intre 25 si
28.08.2026 nu a existat niciun export.

Cauza: schema.txt cere "@XEPDB1", iar 01-setup-database.ps1 scria in tnsnames.ora
doar aliasul ROA. expdp cadea instant cu ORA-12154, iar backupora.exe nu-i
verifica codul de iesire. Doua scripturi din acelasi kit nu erau de acord asupra
numelui bazei, si nimic nu tipa.

Indiciul din log, daca reapare: fiecare schema dura exact 16 secunde, indiferent
de marime. Timp uniform = expdp moare la conectare, nu exporta.

Reparatii, ca sa nu se repete la alt client:

- 01-setup-database.ps1 scrie acum doua aliasuri, ROA si numele serviciului,
  in ambele tnsnames.ora. Curatarea dinaintea rescrierii parcurge fiecare alias
  gestionat de noi, altfel al doilea s-ar dubla la fiecare rulare. Aliasurile
  generate de Oracle (XE, LISTENER_XE, ORACLR_CONNECTION_DATA) raman neatinse.

- 11-setup-backup-export.ps1 face tnsping inainte de a scrie schema.txt si
  opreste instalarea daca aliasul nu se rezolva. Mai bine o instalare care se
  plange decat un backup care nu exista.

- lectii-actualizare-roa-alias-tns.md capata sectiunea despre a doua victima a
  aceleiasi cauze. Lectia generala: unde un script lanseaza un proces extern
  Oracle, verifica efectul, nu raportul procesului care l-a lansat.

Include si blocul NTS din config/sqlnet.ora, ramas necomis: autentificarea OS
cere si apartenenta la ORA_OraDB21Home1_DBA, si setarea din sqlnet.ora.

Nota: CLAUDE.md apare ca modificat integral - blob-ul din git avea CRLF, iar
core.autocrlf=true il normalizeaza la LF. Modificarea reala e o singura linie.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X9Sa54oFKpE2XhD6A7NTch
This commit is contained in:
Marius
2026-08-28 17:12:41 +03:00
parent 5f770c0b60
commit 91e822eb53
5 changed files with 295 additions and 152 deletions

View File

@@ -103,3 +103,23 @@ NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
# sqlplus CONTAFIN_ORACLE/ROMFASTSOFT@//host:1521/SERVICE
#
# =============================================================================
# -----------------------------------------------------------------------------
# Autentificare OS (NTS) - Windows
# -----------------------------------------------------------------------------
# Permite "sqlplus / as sysdba" si "rman target /" de pe server, FARA parola.
# Necesar pentru task-ul de backup RMAN: altfel ar trebui tinuta parola SYS
# in clar intr-un fisier de pe disc.
#
# ATENTIE - sunt necesare AMANDOUA, una fara alta da ORA-01017:
# 1. linia de mai jos, si
# 2. contul Windows sa fie membru al grupului DBA al ACESTUI Oracle Home
# (ORA_OraDB21Home1_DBA, nu ORA_DBA generic):
# net localgroup ORA_OraDB21Home1_DBA <cont> /add
# Apartenenta se activeaza abia la o sesiune de logon noua.
#
# Verificat pe VADECO 2026-08-28: cu grupul corect dar FARA linia asta,
# "/ as sysdba" tot da ORA-01017. Nu afecteaza conectarile cu parola si nici
# clientii vechi Instant Client (ambele testate dupa modificare).
SQLNET.AUTHENTICATION_SERVICES = (NTS)