From 5a746990ced82b1c0c3a2c3c1e45dd196d7a0ca1 Mon Sep 17 00:00:00 2001 From: Marius Date: Tue, 25 Aug 2026 20:57:23 +0300 Subject: [PATCH] feat(oracle): instalare ROA in doua faze, licente, IIS si export zilnic Adauga FAZA1.cmd/FAZA2.cmd, care despart migrarea in partea care se poate face in timpul programului (contafin, obiecte SYS, sinonime, licente, IIS) si partea de seara (schemele de firma). Scripturi noi: 09 pentru licentele din SYS.AUTH_SERII/AUTH_DETALII, 10 pentru publicarea D:\ROAUPDATE in IIS, 11 pentru exportul zilnic cu backupora.exe, drop-contafin pentru reimport. backupora.exe si sabloanele sale intra in repo ca sa fie kitul autonom. Pasul 07 primeste verificarile corespunzatoare pentru licente, IIS si task. Nerulat inca pe o baza reala - vezi docs/handoff_instalare-doua-faze.md. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01SzF1hf4aFS1tmJWpPMiwGp --- docs/handoff_instalare-doua-faze.md | 150 ++ .../docs/instalare-si-migrare-oracle.md | 25 +- .../lxc108-oracle/roa-windows-setup/FAZA1.cmd | 327 ++++ .../lxc108-oracle/roa-windows-setup/FAZA2.cmd | 283 ++++ .../lxc108-oracle/roa-windows-setup/README.md | 1466 +++++++---------- .../roa-windows-setup/backup/backupora.exe | Bin 0 -> 49538 bytes .../backup/changelog_backupora.txt | 33 + .../roa-windows-setup/backup/config.fpw | 2 + .../roa-windows-setup/backup/schema.tmpl | 2 + .../backup/setari.ini.template | 43 + .../roa-windows-setup/backup/setari.ini.tmpl | 17 + .../scripts/07-verify-installation.ps1 | 268 ++- .../scripts/09-copy-licenses.ps1 | 387 +++++ .../scripts/10-setup-roaupdate-iis.ps1 | 411 +++++ .../scripts/11-setup-backup-export.ps1 | 528 ++++++ .../scripts/drop-contafin.ps1 | 203 +++ .../roa-windows-setup/sql/export-licente.sql | 86 + .../scripts/build-client-kit.ps1 | 69 +- 18 files changed, 3446 insertions(+), 854 deletions(-) create mode 100644 docs/handoff_instalare-doua-faze.md create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/FAZA1.cmd create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/FAZA2.cmd create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/backup/backupora.exe create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/backup/changelog_backupora.txt create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/backup/config.fpw create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/backup/schema.tmpl create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/backup/setari.ini.template create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/backup/setari.ini.tmpl create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/scripts/09-copy-licenses.ps1 create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/scripts/10-setup-roaupdate-iis.ps1 create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/scripts/11-setup-backup-export.ps1 create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/scripts/drop-contafin.ps1 create mode 100644 proxmox/lxc108-oracle/roa-windows-setup/sql/export-licente.sql diff --git a/docs/handoff_instalare-doua-faze.md b/docs/handoff_instalare-doua-faze.md new file mode 100644 index 0000000..ffbe0b9 --- /dev/null +++ b/docs/handoff_instalare-doua-faze.md @@ -0,0 +1,150 @@ +# Handoff — instalare ROA în două faze, licențe, IIS, export zilnic + +Stare la 2026-08-25. Blocul de lucru e terminat; nimic nu e într-o stare periculoasă. +Toate modificările sunt scrise pe disc, **necomise**. + +## Ce s-a livrat + +| Fișier | Stare | +|---|---| +| `proxmox/lxc108-oracle/roa-windows-setup/FAZA1.cmd` | nou, parsare testată | +| `proxmox/lxc108-oracle/roa-windows-setup/FAZA2.cmd` | nou, parsare testată | +| `.../scripts/09-copy-licenses.ps1` | nou, **nerulat pe o bază reală** | +| `.../scripts/10-setup-roaupdate-iis.ps1` | nou, **nerulat** | +| `.../scripts/11-setup-backup-export.ps1` | nou, **nerulat**; blocat pe `backupora.exe` | +| `.../scripts/drop-contafin.ps1` | nou, **nerulat** | +| `.../sql/export-licente.sql` | nou, **nerulat** | +| `.../backup/settings.ini.template` | nou, format **presupus**, nu confirmat | +| `.../scripts/07-verify-installation.ps1` | modificat: +268 linii de verificări noi | +| `.../README.md` | rescris, 846 → 620 linii | +| `proxmox/lxc108-oracle/scripts/build-client-kit.ps1` | modificat: text `CITESTE-MA.txt` + avertisment `backupora.exe` | +| `proxmox/lxc108-oracle/docs/instalare-si-migrare-oracle.md` | modificat: tabelul pașilor + cele trei fluxuri | + +## Ce s-a verificat efectiv + +- Toate cele 13 scripturi `.ps1` din `roa-windows-setup/scripts/` plus + `build-client-kit.ps1` parsează curat (`PSParser::Tokenize`). +- `FAZA1.cmd` și `FAZA2.cmd`: parsarea argumentelor, inclusiv căile cu literă de + disc (`/roaupdate:D:\RU` ajunge întreg), flagurile fără valoare, ecranul de + utilizare, codurile de ieșire. +- Toate cele 12 linkuri relative din README-ul nou duc la fișiere existente. + +## Ce NU s-a verificat + +**Niciun script nou nu a fost rulat pe o bază Oracle.** Nu există mediu pornit — +VM 302 e oprit. Toate verificările de mai sus sunt statice. + +## Blocajul de la `backupora.exe` — REZOLVAT + +Găsit local, în `D:\ROA\EXPORT_ORADMP\` pe stația de dezvoltare. Copiat în kit +(`roa-windows-setup/backup/`): `backupora.exe` (49 KB), `config.fpw`, +`setari.ini.tmpl`, `schema.tmpl`, `changelog_backupora.txt`. + +**Presupunerile mele inițiale erau greșite pe trei puncte, toate corectate:** + +1. Fișierul de config se cheamă **`setari.ini`**, nu `settings.ini`. + Redenumit peste tot: scriptul 11, verificarea 07, README, `build-client-kit.ps1`, + `instalare-si-migrare-oracle.md`. (Referințele la `settings.ini` rămase în + `proxmox/vm201-windows/` sunt **alt fișier** — endpointul de raportare erori + din `D:\ROAUPDATE` — corect, nu se ating.) + +2. Secțiunile reale sunt `[schema]`, `[backup]`, `[oracle]`. Nu există host/port/ + service/parole în ini. Șablonul `backup/setari.ini.template` are acum formatul + real, cu 10 marcaje: `{{EXPORT_DIR}}`, `{{BACKUP_PATH}}`, `{{SCHEMA_FILE}}`, + `{{RETENTION_DAYS}}`, `{{EXPDP_EXE}}`, `{{DMPDIR_PATH}}`, `{{DMPDIR_NAME}}`, + `{{ORACLE_HOME}}`, `{{DB_SERVICE}}`, `{{DATA_GENERARII}}`. + Verificat automat: toate 10 sunt substituite de script. + +3. **`schema.txt` nu e o listă de nume de scheme.** Formatul (din `schema.tmpl`) e + `SCHEMA;PAROLA@SERVICIU`, câte una pe linie. `New-SchemaFile` citește acum și + `NOM_FIRME.parola`, nu doar `schema`. Fișierul conține parole în clar — scriptul + avertizează să nu fie scos de pe server. + +**Două capcane confirmate în sursa VFP (`main.prg`), documentate în script:** + +- programul **scrie** în ini-ul implicit cheia `delete_backups_olther_xdays` + (cu typo, `main.prg:76`) dar **citește** `delete_backups_older_xdays` + (`main.prg:117`). Șablonul o are pe cea corectă — **nu o „corecta" înapoi**. +- alege între `exp` clasic și Data Pump **după numele executabilului** din + `oracleexpfile` (changelog v3.0.0: *„Numele executabilului trebuie sa fie + expdp.exe"*). De aceea `{{EXPDP_EXE}}` arată către `\bin\expdp.exe`, + nu către stub-ul de 0 octeți din directorul programului. + +**Decizie de confirmat cu Marius:** `backuppath` (unde ajung dump-urile) e acum +implicit **egal cu `ExportPath`**, deci `D:\ROA\EXPORT_ORADMP\\`. +Pe instalarea de referință de pe stația de dezvoltare valoarea era `C:\BACKUP_ORACLE`, +cu programul în `D:\ROA\EXPORT_ORADMP`. Există parametrul `-BackupPath` pentru +convenția veche. **Nu știu care e corectă la clienți.** + +## Decizii deja luate — nu se reiau + +1. **Faza 1 importă contafin-ul REAL al clientului**, nu șablonul. Motiv: pe + `CONTAFIN_ORACLE` nu se lucrează activ, deci poate fi exportat în timpul + programului. Doar firmele se schimbă sub picioare. Șablonul rămâne ca fallback. +2. **Faza 2 înlocuiește contafin prin `DROP USER CASCADE` + import curat**, nu prin + `TABLE_EXISTS_ACTION=REPLACE`. Opțional, prin `/reimportcontafin`. +3. **Pasul 08 se reia obligatoriu în faza 2.** `SERVER_INFO` e o tabelă în + `CONTAFIN_ORACLE` (`sql/synonyms-public.sql:270`); dump-ul clientului aduce cu + el căile, parolele și SMTP-ul serverului vechi. +4. **Licențele: rețea întâi, fișier ca fallback.** `sql/export-licente.sql` produce + INSERT-uri pe stdout; `09-copy-licenses.ps1` fie îl rulează prin rețea pe + serverul vechi, fie citește rezultatul cu `-FromFile`. +5. **IIS: scriptul instalează rolul dacă lipsește** (`Install-WindowsFeature` pe + Server, `Enable-WindowsOptionalFeature` pe Windows Pro). Poate cere restart. +6. **Directoarele de modul se creează în două locuri diferite**, intenționat: + pasul 08 face `_ARHIVE\` (pentru obiectele Oracle `DIRECTORY`), pasul 10 + face `D:\ROAUPDATE\` (binarele curente, servite de IIS). Lista de 55 de + module e duplicată în ambele scripturi — **la adăugarea unui modul se modifică + ambele**. + +## Comenzi de testare, când există mediu + +```bash +ssh root@10.0.20.201 "qm start 302" +``` + +Pe VM 302, din rădăcina kitului: + +```bat +Run.cmd 99-uninstall-roa.ps1 -Force +FAZA1.cmd 999 /faralicente /farabackup +FAZA2.cmd 999 +Run.cmd 07-verify-installation.ps1 +``` + +Logurile: `roa-windows-setup\logs\