diff --git a/CLAUDE.md b/CLAUDE.md index ecbb8fc..d145d92 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -21,7 +21,8 @@ proxmox/ # Main infrastructure documentation ├── lxc110-moltbot/ # MoltBot AI Telegram Bot ├── lxc171-claude-agent/ # Claude Code development environment ├── vm109-windows-dr/ # Windows Disaster Recovery VM -└── vm201-windows/ # Windows 11 (IIS reverse proxy) +├── vm201-windows/ # Windows 11 (IIS reverse proxy) +└── vm302-oracle-test/ # Windows 11 + Oracle 21c test VM (ROA setup validation) system_instructions/ # SQL migration guidelines and knowledge base ├── system_prompt.md # SQL migration rules - READ BEFORE WRITING SQL @@ -42,6 +43,8 @@ input/ # Oracle DMP files for import - **Migration orchestration**: `proxmox/lxc108-oracle/migration/00-MASTER-MIGRATION.sh` - **Chatbot architecture**: `proxmox/lxc104-flowise/docs/prd.md` - **Disaster recovery**: `proxmox/vm109-windows-dr/README.md` +- **ROA Windows setup scripts (XE/SE 21c)**: `proxmox/lxc108-oracle/roa-windows-setup/README.md` +- **VM 302 test environment for ROA setup**: `proxmox/vm302-oracle-test/README.md` ## Infrastructure Commands diff --git a/proxmox/README.md b/proxmox/README.md index 2e5a41d..e3b3ffd 100644 --- a/proxmox/README.md +++ b/proxmox/README.md @@ -68,6 +68,12 @@ proxmox/ │ ├── monitor-ssl-certificates.sh │ └── setup-new-iis-sites.ps1 # Setup site-uri IIS noi (Dokploy) │ +├── vm302-oracle-test/ # VM 302 - oracle-test-302 (test ROA Windows + Oracle 21c) +│ ├── README.md # Info VM, status testare XE/SE, workflow +│ └── docs/ +│ ├── dual-edition-test-plan.md # Plan testare 21c XE + SE +│ └── issues-se-prod.md # TODO: log erori prod Oracle SE +│ ├── lxc110-moltbot/ # LXC 110 - MoltBot (AI Telegram Bot) │ ├── README.md # Configurare, securitate, comenzi │ └── docs/ @@ -319,6 +325,34 @@ echo | openssl s_client -connect roa.romfast.ro:443 -servername roa.romfast.ro 2 --- +### VM 302 - oracle-test-302 (Test ROA Windows + Oracle 21c) +**Director:** `vm302-oracle-test/` +**IP:** 10.0.20.130 | **Host:** pvemini | **Rol:** mediu de test pentru scripturile `lxc108-oracle/roa-windows-setup/` + +| Fișier | Descriere | +|--------|-----------| +| `README.md` | Info VM, status testare XE/SE, quick start, snapshots | +| `docs/dual-edition-test-plan.md` | Plan testare dual: Oracle 21c XE + Standard Edition | +| `docs/issues-se-prod.md` | TODO: log erori întâlnite în producție pe Oracle SE | + +**Status testare scripturi ROA Windows:** +- Oracle 21c **XE** — OK (validat pe VM 302) +- Oracle 21c **SE** — **TODO** (netestat în mediu test, erori în prod) + +**Quick Start:** +```bash +# Start VM (stopped între teste) +ssh root@10.0.20.201 "qm start 302" + +# Stop după test +ssh root@10.0.20.201 "qm shutdown 302" + +# Snapshot înainte de test +ssh root@10.0.20.201 "qm snapshot 302 pre-test --description 'Before ROA test'" +``` + +--- + ## Hartă Rapidă Resurse ### Noduri Proxmox Cluster @@ -345,6 +379,7 @@ echo | openssl s_client -connect roa.romfast.ro:443 -servername roa.romfast.ro 2 | **109** | **standby-dr** | **Windows Server** | **`vm109-windows-dr/`** | | **201** | **roacentral** | **Windows 11** | **`vm201-windows/`** | | 300 | Win11-Template | Windows 11 | `cluster/README.md` | +| **302** | **oracle-test-302** | **Windows 11 + Oracle 21c (test ROA)** | **`vm302-oracle-test/`** | --- @@ -375,6 +410,12 @@ echo | openssl s_client -connect roa.romfast.ro:443 -servername roa.romfast.ro 2 - **Test DR săptămânal** → `vm109-windows-dr/scripts/weekly-dr-test-proxmox.sh` - **Plan testare DR** → `vm109-windows-dr/docs/PLAN_TESTARE_MONITORIZARE.md` +### Windows VM 302 - Test ROA Setup (XE + SE) +- **Info VM și quick start** → `vm302-oracle-test/README.md` +- **Plan testare dual-edition** → `vm302-oracle-test/docs/dual-edition-test-plan.md` +- **Erori prod Oracle SE (TODO)** → `vm302-oracle-test/docs/issues-se-prod.md` +- **Scripturi setup ROA Windows** → `lxc108-oracle/roa-windows-setup/` + ### Windows VM 201 - **Reînnoiesc certificate SSL** → `vm201-windows/docs/vm201-certificat-letsencrypt-iis.md` - **Rezolv probleme VM locked** → `vm201-windows/docs/vm201-troubleshooting-backup-nfs.md` @@ -433,6 +474,6 @@ echo | openssl s_client -connect roa.romfast.ro:443 -servername roa.romfast.ro 2 --- -**Ultima actualizare:** 2026-03-02 +**Ultima actualizare:** 2026-04-25 **Autor:** Marius Mutu **Proiect:** ROMFASTSQL - Infrastructure Documentation diff --git a/proxmox/lxc108-oracle/roa-windows-setup/README.md b/proxmox/lxc108-oracle/roa-windows-setup/README.md index c7301dc..a5bb506 100644 --- a/proxmox/lxc108-oracle/roa-windows-setup/README.md +++ b/proxmox/lxc108-oracle/roa-windows-setup/README.md @@ -1,5 +1,15 @@ # ROA Oracle Database Setup for Windows +> **Status testare ediții Oracle 21c:** +> +> | Ediție | Status | Mediu validat | +> |--------|--------|---------------| +> | **XE (CDB/PDB)** | OK | VM 302 (`oracle-test-302`, 10.0.20.130) | +> | **Standard Edition (non-CDB)** | **TODO — netestat în mediu de test** | În producție au apărut erori, neînregistrate. Vezi [`../../vm302-oracle-test/docs/issues-se-prod.md`](../../vm302-oracle-test/docs/issues-se-prod.md) | +> +> Plan testare dual-edition: [`../../vm302-oracle-test/docs/dual-edition-test-plan.md`](../../vm302-oracle-test/docs/dual-edition-test-plan.md). +> Mediul de test: [`../../vm302-oracle-test/README.md`](../../vm302-oracle-test/README.md). + ## Overview Scripts and documentation for setting up ROA Oracle Database on Windows servers: @@ -493,9 +503,17 @@ ROA = --- -## Testing with Proxmox VM Clone +## Testing -For testing installations, use the VM cloning script: +**Mediul de test dedicat:** VM 302 (`oracle-test-302`, 10.0.20.130, pvemini). +Vezi [`../../vm302-oracle-test/`](../../vm302-oracle-test/) pentru: + +- Quick start (start/stop/connect VM, RDP/SSH) +- Workflow snapshots și clonare pentru testare paralelă +- Plan testare dual-edition XE + SE: [`docs/dual-edition-test-plan.md`](../../vm302-oracle-test/docs/dual-edition-test-plan.md) +- Log erori producție SE (TODO): [`docs/issues-se-prod.md`](../../vm302-oracle-test/docs/issues-se-prod.md) + +Pentru clonarea unui VM nou de test din template-ul 300: ```bash # On Proxmox host (pvemini) diff --git a/proxmox/lxc108-oracle/roa-windows-setup/test/VM302-TESTING.md b/proxmox/vm302-oracle-test/README.md similarity index 81% rename from proxmox/lxc108-oracle/roa-windows-setup/test/VM302-TESTING.md rename to proxmox/vm302-oracle-test/README.md index 95ef2c3..5edbaa5 100644 --- a/proxmox/lxc108-oracle/roa-windows-setup/test/VM302-TESTING.md +++ b/proxmox/vm302-oracle-test/README.md @@ -1,4 +1,23 @@ -# VM 302 - ROA Windows Setup Testing +# VM 302 - oracle-test-302 (ROA Windows Setup Test VM) + +VM-ul de test pentru scripturile de instalare ROA pe Windows + Oracle 21c. +Scripturile efective trăiesc în `proxmox/lxc108-oracle/roa-windows-setup/` +(generale, nu legate de VM 302). Acest director documentează **mediul de test** +și planul de validare. + +## Status testare + +| Ediție Oracle | Status | Note | +|---------------|--------|------| +| **21c XE (CDB/PDB)** | OK | Validat pe VM 302, `RunAll.cmd` rulează complet | +| **21c Standard Edition (non-CDB)** | TODO | NETESTAT pe VM 302. În producție au apărut erori — vezi `docs/issues-se-prod.md` | + +> Scripturile `roa-windows-setup` au fost testate doar pe XE. La rularea în +> producție pe Oracle 21c SE au apărut erori. Înainte de următorul deployment +> SE trebuie reprodus scenariul SE pe VM 302 (sau clonă VM 303). Vezi +> `docs/dual-edition-test-plan.md`. + +--- ## VM Information @@ -11,8 +30,9 @@ | RAM | 4 GB | | Disk | 500 GB | | OS | Windows 11 | -| Oracle | 21c XE (CDB/PDB) | +| Oracle | 21c XE (CDB/PDB) — instalat curent | | Proxmox Host | pvemini (10.0.20.201) | +| Scripturi setup | `../lxc108-oracle/roa-windows-setup/` | --- @@ -393,6 +413,13 @@ ssh root@10.0.20.201 "qm start 303" --- -**Last Updated:** 2026-01-29 +**Last Updated:** 2026-04-25 **Author:** Marius Mutu -**Project:** ROMFASTSQL - ROA Windows Setup Testing +**Project:** ROMFASTSQL - VM 302 (oracle-test-302) test environment + +## Documente conexe + +- `docs/dual-edition-test-plan.md` — plan testare XE + SE 21c +- `docs/issues-se-prod.md` — TODO: log erori întâlnite în producție pe Oracle SE 21c +- `../lxc108-oracle/roa-windows-setup/README.md` — scripturile de setup +- `../lxc108-oracle/roa-windows-setup/test/clone-vm300.sh` — clonare VM template 300 (utilizat pentru a crea VM 302) diff --git a/proxmox/vm302-oracle-test/docs/dual-edition-test-plan.md b/proxmox/vm302-oracle-test/docs/dual-edition-test-plan.md new file mode 100644 index 0000000..aa9f3a3 --- /dev/null +++ b/proxmox/vm302-oracle-test/docs/dual-edition-test-plan.md @@ -0,0 +1,118 @@ +# 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 diff --git a/proxmox/vm302-oracle-test/docs/issues-se-prod.md b/proxmox/vm302-oracle-test/docs/issues-se-prod.md new file mode 100644 index 0000000..4995473 --- /dev/null +++ b/proxmox/vm302-oracle-test/docs/issues-se-prod.md @@ -0,0 +1,44 @@ +# Erori producție — Oracle 21c Standard Edition + +> **Status: TODO — de completat cu detalii concrete.** +> +> Scripturile `roa-windows-setup` au fost validate pe VM 302 doar pe Oracle 21c +> XE. La rularea în producție pe Oracle 21c Standard Edition au apărut erori, +> dar logurile nu au fost capturate la momentul incidentului. + +## Ce trebuie capturat (la următoarea apariție a erorilor) + +Pentru fiecare eroare: + +1. **Scriptul care a eșuat** (ex. `03-import-contafin.ps1`, pasul exact) +2. **Mesajul de eroare complet** — ORA-XXXXX, stack trace PowerShell, output sqlplus +3. **Comanda care a generat-o** — copiat exact din log +4. **Versiunea Oracle SE** — `select banner from v$version;` +5. **Configurația activă** — `config.ps1` folosit (fără parole) +6. **Mediul** — Windows version, ORACLE_HOME, service name, dacă e CDB sau non-CDB + +## Suspiciuni inițiale (de verificat) + +Pe baza diferențelor SE vs XE (vezi `dual-edition-test-plan.md`): + +- Connection strings hardcodate cu `XEPDB1` în loc de `ROA` +- Comenzi `ALTER PLUGGABLE DATABASE` care eșuează pe non-CDB +- Path-uri datafile presupunând structura `XE\XEPDB1` +- Tweaks specifice XE (DBMS_AUTO_TASK_ADMIN, audit policy) care nu există / + se comportă diferit pe SE +- Numele serviciului Windows: `OracleServiceXE` vs `OracleServiceROA` +- ORACLE_HOME diferit (`dbhomeXE` vs `dbhome_1`) — variabile de mediu + +## Acțiuni + +- [ ] La următoarea instalare prod SE, capturează toate logurile din + `C:\roa-setup\logs\` și atașează aici +- [ ] Reproducere pe VM 302 sau clonă VM 303 (vezi `dual-edition-test-plan.md`) +- [ ] Fix scripturi pe baza erorilor reale +- [ ] Re-test fresh install SE până trece complet +- [ ] Update `roa-windows-setup/README.md` — marchează SE ca "tested OK" + +--- + +**Last Updated:** 2026-04-25 +**Author:** Marius Mutu