# Instalare și migrare Oracle pentru ROA — care director, pentru ce În `proxmox/lxc108-oracle/` există **trei** directoare cu scripturi de instalare/migrare, iar numele lor nu spun de la sine care se potrivește. Nota asta e ghidul de rutare: ce livrează fiecare, ce **nu** livrează și cum se aleg între ele. | Director | Ce e | Stare | |---|---|---| | [`roa-windows-setup/`](../roa-windows-setup/README.md) | instalare ROA completă pe **Windows** + Oracle 21c (XE sau SE) | activ, validat pe VM 302 (XE) | | [`migration/`](../migration/README.md) | migrare Oracle 10g → 21c XE cu Oracle **în Docker pe LXC 108** | activ pentru infrastructura internă | | [`new-roa-oracle-server/`](../new-roa-oracle-server/) | arhiva istorică din era Oracle 10g | **doar referință**, nu se rulează | --- ## 1. Arbore de decizie ``` Baza Oracle ajunge pe un server Windows la client? ├── DA → roa-windows-setup/ (PowerShell nativ, fără WSL) └── NU → baza ajunge în Docker pe LXC 108 / alt Linux? ├── DA → migration/ (bash, orchestrat de 00-MASTER-MIGRATION.sh) └── NU → niciunul; descrie scenariul înainte de a improviza ``` **Cazul tipic la client** — server vechi cu Oracle XE 11 (sau 10g), se mută `CONTAFIN_ORACLE` + schemele de firme pe un server nou cu Oracle 21c XE, tot Windows: → **`roa-windows-setup/`**, plus pasul de export descris la §4. --- ## 2. Ce livrează fiecare ### `roa-windows-setup/` — instalare ROA, nu doar bază de date Diferența esențială: `migration/` îți lasă o bază cu schemele înăuntru; `roa-windows-setup/` îți lasă o **instalare ROA funcțională**. | # | Script | Ce face | |---|---|---| | 01 | `01-setup-database.ps1` | tablespace `ROA`, profil, user `CONTAFIN_ORACLE`, `sqlnet.ora` cu `ALLOWED_LOGON_VERSION=8` | | 02 | `02-create-sys-objects.ps1` | obiectele SYS din `sql/sys-objects.sql` (AUTH_PACK, AUTH_DETALII, AUTH_SERII, VAUTH_SERII, INFO, pINFO, SEQ_AUTH_SERII, EXECUTESCRIPTOS, NEWSCHEMA, NEWSCHEMAJOB, UPDATESQLPLUS) | | 03 | `03-import-contafin.ps1` | import `CONTAFIN_ORACLE` (parfile: `par/import-contafin.par`) | | 04 | `04-create-synonyms-grants.ps1` | `synonyms-public.sql` + `grants-public.sql` + **`sys-grants.sql`** (granturi SYS, sinonime SYS, DMPDIR, granturi de dicționar pentru `PACK_DIAG_SPATIU`), context `SESIUNE`, ACL de rețea | | 05 | `05-import-companies.ps1` | import în lot al schemelor de firme (parfile: `par/import-company.par`) | | 06 | `06-add-company.ps1` | adaugă o firmă nouă pe un server deja instalat (opțional) | | 08 | `08-post-install-config.ps1` | 54 directoare `ROAUPDATE` (fizice + obiecte `DIRECTORY`), `SERVER_INFO`, `AUTH_DETALII` (Customer ID), joburile `UPDATEROA_ZILNIC` / `UPDATERTVAI_ZILNIC` / `SYSINFO_PURJARE_ZILNIC` | | 09 | `09-copy-licenses.ps1` | `SYS.AUTH_SERII` + `SYS.AUTH_DETALII` de pe serverul vechi, prin rețea sau din fișier (`sql/export-licente.sql`); recreează `SEQ_AUTH_SERII` peste `MAX(ID_SERIE)+1` | | 10 | `10-setup-roaupdate-iis.ps1` | directoarele de modul `D:\ROAUPDATE\`, instalarea rolului IIS dacă lipsește, aplicația `/roaupdate` către `D:\ROAUPDATE` | | 11 | `11-setup-backup-export.ps1` | `D:\ROA\EXPORT_ORADMP` cu `backupora.exe`, `setari.ini` (din șablon), `schema.txt` (din `NOM_FIRME`), `DIRECTORY BACKUP_ORACLE`, task zilnic Windows | | 07 | `07-verify-installation.ps1` | raport de verificare: versiune/ediție, tablespace, obiecte, obiecte invalide, sinonime, **granturi de dicționar**, firme din `NOM_FIRME` vs. scheme reale, ACL, **licențe**, **oglinda de update + IIS**, **exportul zilnic** | | — | `drop-contafin.ps1` | `DROP USER CONTAFIN_ORACLE CASCADE`, doar pentru reimportul din faza 2 | | 99 | `99-uninstall-roa.ps1` | curățare completă, pentru re-testare | **Cele trei fluxuri de rulare:** | Fișier | Ordinea | Când | |---|---|---| | `FAZA1.cmd` | `01 → 02 → 03 → 04 → 09 → 08 → 10 → 11 → 07` | migrare, în timpul programului | | `FAZA2.cmd` | `[drop → 01 → 03 → 04] → 05 → 08 → 11 -SchemaOnly → 07` | migrare, după program | | `INSTALEAZA.cmd` | `01 → 02 → 03 → 04 → 05 → 08 → 07` | într-o singură rulare; **fără** 09/10/11 | `RunAll.cmd` e varianta interactivă a lui `INSTALEAZA.cmd`. `Run.cmd