# Plan de testare dual-edition: Oracle 21c XE + SE ## Context Scripturile `roa-windows-setup` (din `lxc108-oracle/roa-windows-setup/`) susțin două ținte: - **Oracle 21c XE** — CDB/PDB, free, limită 12 GB date / 2 GB RAM - **Oracle 21c Standard Edition** — non-CDB, licență, fără limite Diferențe care contează la setup (vezi `roa-windows-setup/README.md` → "Architecture Differences"): | Element | XE | SE | |---------|----|----| | Arhitectură | CDB + PDB (XEPDB1) | non-CDB (single DB: ROA) | | Service name | XEPDB1 | ROA | | ORACLE_HOME | `...\dbhomeXE` | `...\dbhome_1` | | Datafile dir | `...\oradata\XE\XEPDB1` | `...\oradata\ROA` | | Service Windows | OracleServiceXE | OracleServiceROA | | Conectare ca SYS | `sys/...@XEPDB1 as sysdba` | `sys/...@ROA as sysdba` | Aceste diferențe sunt ascunse în `config.ps1`. Riscul: o ramură de cod care presupune CDB/PDB (de ex. `ALTER SESSION SET CONTAINER`) va eșua pe SE non-CDB. **Acesta e cazul real care a produs erori în producție** — vezi `issues-se-prod.md`. ## Status curent | Scenariu | Mediu | Status | |----------|-------|--------| | XE — install fresh | VM 302 (Windows 11 + XE) | OK | | XE — uninstall/reinstall | VM 302 | OK | | XE — add company | VM 302 | OK | | **SE — install fresh** | — | **TODO** | | **SE — uninstall/reinstall** | — | **TODO** | | **SE — add company** | — | **TODO** | | SE — în producție | server prod Windows | EȘUAT (erori — TODO de capturat) | ## Plan testare SE pe VM 302 ### Variantă A — reconfigurare VM 302 pentru SE Risc: pierdem mediul XE deja validat. Necesar snapshot înainte. ```bash # Snapshot XE state ssh root@10.0.20.201 "qm snapshot 302 xe-validated --description 'Pre-SE-test, XE installation validated'" ``` Pași pe VM: 1. Uninstall Oracle XE complet (Programs and Features + manual cleanup) 2. Install Oracle 21c SE conform `roa-windows-setup/docs/00-INSTALL-ORACLE-SE.md` - Wizard: "Create and configure a single instance database" - Global database name: `ROA` - **Debifează** "Create as Container database" 3. Copy `config.example.ps1` → `config.ps1`, ajustează valorile pentru SE: ```powershell $ORACLE_HOME = "C:\app\oracle\product\21c\dbhome_1" $SERVICE_NAME = "ROA" $DATAFILE_DIR = "C:\app\oracle\oradata\ROA" ``` 4. `RunAll.cmd` și capturează toate erorile 5. Snapshot SE state: ```bash ssh root@10.0.20.201 "qm snapshot 302 se-validated --description 'SE installation validated'" ``` ### Variantă B — clonă VM 303 dedicată SE Recomandată dacă vrem să păstrăm ambele medii live pentru regresie. ```bash # Clone VM 302 → 303 (template state, înainte de Oracle XE — TODO: identifică snapshot) ssh root@10.0.20.201 "qm clone 302 303 --name oracle-test-303-se --full" ssh root@10.0.20.201 "qm start 303" # Schimbă IP-ul Windows: 10.0.20.130 → 10.0.20.131 (sau altul liber) ``` Apoi pași 1-5 din varianta A pe VM 303. > **Cost spațiu:** clonă full pe local-zfs ≈ 500 GB. Verifică spațiu pvemini > înainte (`zfs list local-zfs`). ## Checklist validare per ediție Pentru fiecare ediție (XE și SE), bifează după rulare reușită: ### Install fresh - [ ] `01-setup-database.ps1` — tablespace ROA + CONTAFIN_ORACLE user - [ ] `02-create-sys-objects.ps1` — AUTH_PACK, NEWSCHEMA, EXECUTESCRIPTOS, UTL_MAIL - [ ] `03-import-contafin.ps1` — import CONTAFIN_ORACLE (~344 obiecte) - [ ] `04-create-synonyms-grants.ps1` — 81 synonyms publice + grants - [ ] `05-import-companies.ps1` — minim 1 firmă (CAPIDAVATOUR ~3418 obiecte) - [ ] `08-post-install-config.ps1` — 54 directories, SERVER_INFO, scheduler jobs - [ ] `07-verify-installation.ps1` — toate verificările OK ### Add company - [ ] `06-add-company.ps1` — adaugă firmă nouă pe instalare existentă ### Uninstall - [ ] `99-uninstall-roa.ps1` — curăță tot, lasă DB-ul gata pentru reinstall ## Ce trebuie urmărit specific pentru SE Locuri unde scripturile pot face presupuneri CDB-only: - `ALTER PLUGGABLE DATABASE` — nu există pe non-CDB - `ALTER SESSION SET CONTAINER` — nu se aplică pe non-CDB - Path-uri datafile hardcodate `XE\XEPDB1` - Service name `XEPDB1` în connection strings - DBMS_AUTO_TASK_ADMIN tweaks (XE 12 GB workaround) — irelevante pe SE `grep -rn "XEPDB1\|XE\b\|SET CONTAINER\|PLUGGABLE DATABASE" lxc108-oracle/roa-windows-setup/scripts lxc108-oracle/roa-windows-setup/sql` înainte de testul SE — orice match e candidat la breakaj. --- **Last Updated:** 2026-04-25 **Author:** Marius Mutu