Blocul de instalare/migrare Oracle 21c XE, terminat si validat pe VM 302. Kit de instalare (nou) scripts/build-client-kit.ps1 exporta CONTAFIN_ORACLE si FIRMANOUA de pe LXC 108 (PDB ROA2, nu ROA - ROA e productia ROA_CENTRAL), le aduce local prin cele trei hopuri container -> LXC -> host -> statie, le redenumeste la numele pe care le asteapta scripturile si le impacheteaza cu o copie a directorului roa-windows-setup. Citeste logul expdp si raporteaza cate firme are NOM_FIRME, ca sa nu plece din greseala datele unui client. roa-windows-setup/INSTALEAZA.cmd ruleaza pasii 01..08 fara "set /p", deci merge si prin SSH - RunAll.cmd nu poate fi rulat neinteractiv. Trateaza corect codul 5 de la pasul 03 si se opreste la prima eroare reala. Corectii 01-setup-database.ps1 nu mai scrie SQLNET.RECV_TIMEOUT / SEND_TIMEOUT in sqlnet.ora. Le hardcoda la 30 s, iar fisierul e citit si de impdp: in timpul unui import serverul poate lucra minute fara sa trimita un pachet, clientul murea cu ORA-12609 iar scriptul raporta esec pentru un import care se terminase cu bine pe server. Reprodus si reparat pe VM 302. 01-setup-database.ps1: Step 4c optional (-ResetSystemPassword) care curata EXPIRED(GRACE) pe SYSTEM in CDB root; ALTER PROFILE opreste expirarile viitoare dar nu reseteaza un cont deja intrat in gratie. uninstall-roa.sql: retry la DROP USER dupa KILL SESSION, plus un bloc final de verdict care numara ce a ramas si iese cu ORA-20900 daca baza nu e curata. Pana acum toate sectiunile prindeau exceptiile in WHEN OTHERS si scriptul tiparea "UNINSTALL COMPLETE" chiar si cand un user supravietuise, iar instalarea urmatoare dadea ORA-31684 in lant. 99-uninstall-roa.ps1 propaga codul de iesire. 08-post-install-config.ps1: Step 7b seteaza SMTP_OUT_SERVER si ACL-ul de retea pentru CONTAFIN_ORACLE. UTL_MAIL se instala si primea EXECUTE, adica destul cat sa compileze, dar nu si cat sa trimita. Privilegiul resolve nu accepta interval de porturi (ORA-24244), deci se acorda separat de connect. 07-verify-installation.ps1: sectiune noua care verifica prezenta lui FIRMANOUA.dmp in DMPDIR si o raporteaza ca eroare daca lipseste. Fara el, adaugarea unei firme noi pica in DBMS_DATAPUMP.ADD_FILE peste luni de la instalare, cand nimeni nu mai leaga eroarea de instalare. configure-profile.sql: antetul spune ca e unealta de remediere manuala, nu parte din flux; pas nou la final pentru CDB root. Documentatie README-ul roa-windows-setup descrie acum explicit cele doua scenarii - instalare pe curat si migrare - de unde se iau DMP-urile sablon, si capcana ORA-12609. Handoff-urile de sesiune au fost sterse; ce era durabil in ele a intrat in README-uri si in docs/diagnostic-spatiu-clienti.md. Validare pe VM 302: ciclu complet din kit, instalare pe curat, verificarea finala "[OK] All checks passed!". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SzF1hf4aFS1tmJWpPMiwGp
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.
VM 302 testează doar
roa-windows-setup/. Scripturile dinproxmox/lxc108-oracle/migration/nu au mediu de test dedicat — se validează direct pe LXC 108. Ce face fiecare director:../lxc108-oracle/docs/instalare-si-migrare-oracle.md.
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-setupau 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). Vezidocs/dual-edition-test-plan.md.
VM Information
| Property | Value |
|---|---|
| VM ID | 302 |
| Name | oracle-test-302 |
| Hostname | ROACENTRAL |
| IP Address | 10.0.20.130 |
| RAM | 4 GB |
| Disk | 500 GB |
| OS | Windows 11 |
| Oracle | 21c XE (CDB/PDB) — instalat curent |
| Proxmox Host | pvemini (10.0.20.201) |
| Scripturi setup | ../lxc108-oracle/roa-windows-setup/ |
Quick Start
1. Start VM (if stopped)
# From any machine with SSH access to Proxmox
ssh root@10.0.20.201 "qm start 302"
# Wait for boot (~2-3 minutes)
ssh root@10.0.20.201 "qm status 302"
2. Connect to VM
# SSH (if OpenSSH installed)
ssh romfast@10.0.20.130
# Or use RDP
mstsc /v:10.0.20.130
# User: romfast
3. Run Tests
# PowerShell as Administrator
cd C:\roa-setup
.\RunAll.cmd
4. Stop VM (when done)
ssh root@10.0.20.201 "qm shutdown 302"
# Or force stop:
ssh root@10.0.20.201 "qm stop 302"
Proxmox VM Management
Check Status
ssh root@10.0.20.201 "qm status 302"
Start VM
ssh root@10.0.20.201 "qm start 302"
Graceful Shutdown
ssh root@10.0.20.201 "qm shutdown 302"
Force Stop
ssh root@10.0.20.201 "qm stop 302"
Access Console (via Proxmox GUI)
https://10.0.20.201:8006 → VM 302 → Console
Current Configuration
Oracle Connection
| Property | Value |
|---|---|
| Host | 10.0.20.130 |
| Port | 1521 |
| Service | XEPDB1 |
| SYS Password | romfastsoft |
| SYSTEM Password | romfastsoft |
# SQL*Plus connection
sqlplus sys/romfastsoft@10.0.20.130:1521/XEPDB1 as sysdba
sqlplus system/romfastsoft@10.0.20.130:1521/XEPDB1
sqlplus CONTAFIN_ORACLE/ROMFASTSOFT@10.0.20.130:1521/XEPDB1
ROA Users (after installation)
| User | Password | Purpose |
|---|---|---|
| CONTAFIN_ORACLE | ROMFASTSOFT | Common schema |
| CAPIDAVATOUR | ROMFASTSOFT | Test company |
DMP Files Available
C:\DMPDIR\
├── contafin_oracle_72001.dmp (276 MB)
└── capidavatour_72001.dmp (76 MB)
Setup Directory
C:\roa-setup\
├── config.ps1 # Current configuration
├── scripts\ # PowerShell setup scripts
├── sql\ # SQL scripts
├── par\ # Import parameters
└── logs\ # Execution logs
Capcane de mediu (verificate 2026-08-25)
1. VM-ul își poate pierde IP-ul static la boot. La pornirea din 2026-08-25 adaptorul
s-a re-enumerat ca Ethernet 2 și a venit pe DHCP (10.0.20.118). listener.ora are
HOST=10.0.20.130 scris în clar, deci serviciul listener pornește („Running") dar nu
leagă portul, iar orice conectare dă ORA-12541: TNS:no listener. Verifică IP-ul
înainte de a începe testul:
ssh root@10.0.20.201 "qm agent 302 network-get-interfaces" | grep ip-address
Dacă nu e 10.0.20.130, restaurează-l (comanda rupe sesiunea SSH curentă, de aceea
rulează printr-un task programat):
Set-NetIPInterface -InterfaceAlias 'Ethernet 2' -Dhcp Disabled
Get-NetIPAddress -InterfaceAlias 'Ethernet 2' -AddressFamily IPv4 | Remove-NetIPAddress -Confirm:$false
New-NetIPAddress -InterfaceAlias 'Ethernet 2' -IPAddress 10.0.20.130 -PrefixLength 24 -DefaultGateway 10.0.20.1
Set-DnsClientServerAddress -InterfaceAlias 'Ethernet 2' -ServerAddresses 10.0.20.1
Apoi Restart-Service OracleOraDB21Home1TNSListener. Listener-ul mai are nevoie de
~60 s ca instanța să se înregistreze (PMON), altfel primești ORA-12514.
2. C:\roa-setup\ este o copie, nu un clone al repo-ului. La 2026-08-25 era în urmă
cu două commit-uri (sys-objects.sql, scheduler-jobs.sql, uninstall-roa.sql erau
dinainte de 015cd79). Sincronizează tot directorul, nu doar fișierele pe care
crezi că le-ai atins, și confirmă cu hash-uri:
cd proxmox/lxc108-oracle/roa-windows-setup
scp sql/*.sql romfast@10.0.20.130:C:/roa-setup/sql/
scp scripts/*.ps1 romfast@10.0.20.130:C:/roa-setup/scripts/
scp scripts/lib/*.ps1 romfast@10.0.20.130:C:/roa-setup/scripts/lib/
scp Run.cmd RunAll.cmd romfast@10.0.20.130:C:/roa-setup/
3. RunAll.cmd nu poate fi condus neinteractiv. Folosește set /p pentru
confirmări; pe stdin redirecționat (< NUL sau prin ssh) fie se anulează cu
„Installation cancelled" și iese cu codul 0, fie crapă cu „The syntax of the command
is incorrect". Nu te lua după codul de ieșire — verifică logul. Pentru rulare automată,
apelează scripturile în ordine direct:
01-setup-database.ps1 → 02-create-sys-objects.ps1 → 03-import-contafin.ps1
→ 04-create-synonyms-grants.ps1 → 05-import-companies.ps1
→ 08-post-install-config.ps1 → 07-verify-installation.ps1
4. 03-import-contafin.ps1 iese normal cu codul 5. E codul Data Pump pentru
„completat cu erori"; erorile sunt ORA-31684 already exists (userul e creat de scriptul
- și
ORA-39082(warning-uri de compilare). Nu e un eșec.
Testing Workflow
Full Installation Test
# 1. Uninstall existing ROA (if any)
cd C:\roa-setup
.\scripts\99-uninstall-roa.ps1 -SystemPassword "romfastsoft" -Force
# 2. Run full installation
.\RunAll.cmd
# 3. Verify
.\scripts\07-verify-installation.ps1
Individual Script Test
cd C:\roa-setup
# Use Run.cmd wrapper (handles ExecutionPolicy)
.\Run.cmd 01-setup-database.ps1
.\Run.cmd 02-create-sys-objects.ps1
.\Run.cmd 03-import-contafin.ps1
.\Run.cmd 04-create-synonyms-grants.ps1
.\Run.cmd 05-import-companies.ps1
.\Run.cmd 08-post-install-config.ps1
.\Run.cmd 07-verify-installation.ps1
Reset for Fresh Test
# Complete uninstall (drops all ROA objects)
.\scripts\99-uninstall-roa.ps1 -SystemPassword "romfastsoft" -Force
# This removes:
# - CONTAFIN_ORACLE user
# - CAPIDAVATOUR user (and any other company users)
# - ROA tablespace
# - Public synonyms
# - SYS objects (AUTH_PACK, NEWSCHEMA, etc.)
Script Execution Order
| # | Script | Duration | Purpose |
|---|---|---|---|
| 1 | 01-setup-database.ps1 | ~30s | Tablespace, profile, CONTAFIN_ORACLE user |
| 2 | 02-create-sys-objects.ps1 | ~15s | AUTH_PACK, NEWSCHEMA, UTL_MAIL config |
| 3 | 03-import-contafin.ps1 | ~2 min | Import CONTAFIN_ORACLE schema (344 objects) |
| 4 | 04-create-synonyms-grants.ps1 | ~30s | 81 public synonyms + grants |
| 5 | 05-import-companies.ps1 | ~3 min | Import CAPIDAVATOUR (3418 objects) |
| 6 | 08-post-install-config.ps1 | ~1 min | 54 directories, SERVER_INFO |
| 7 | 07-verify-installation.ps1 | ~15s | Verification report |
Total: ~8 minutes for full installation
Expected Results
After Successful Installation
07-verify-installation.ps1 output:
=== ROA Installation Verification ===
Tablespace ROA: OK
User CONTAFIN_ORACLE: OK (344 objects)
User CAPIDAVATOUR: OK (3418 objects)
Public Synonyms: OK (81 synonyms)
SYS Objects: OK (AUTH_PACK, NEWSCHEMA, etc.)
ROAUPDATE Directories: OK (54 directories)
SERVER_INFO: OK (configured)
Object Counts
| Schema | Objects | Tables | Procedures | Packages |
|---|---|---|---|---|
| CONTAFIN_ORACLE | 344 | ~80 | ~50 | ~20 |
| CAPIDAVATOUR | 3418 | ~150 | ~100 | ~30 |
Troubleshooting
Oracle Service Not Running
# Check service
Get-Service OracleServiceXE
# Start service
Start-Service OracleServiceXE
# Check listener
lsnrctl status
DMPDIR Points to Wrong Path
Oracle XE has a pre-existing DMPDIR that points to D:\Oracle\admin\ORCL\dpdump.
The setup scripts should now handle this automatically, but to verify/fix manually:
-- Check existing directories
SELECT directory_name, directory_path FROM dba_directories WHERE directory_name = 'DMPDIR';
-- If pointing to wrong path, recreate
DROP DIRECTORY DMPDIR;
CREATE OR REPLACE DIRECTORY DMPDIR AS 'C:\DMPDIR';
GRANT READ, WRITE ON DIRECTORY DMPDIR TO PUBLIC;
Note: The New-OracleDirectory function in oracle-functions.ps1 now automatically
detects and corrects this issue (drops and recreates if path differs).
DATAFILE_DIR Wrong Path
If tablespace creation fails with ORA-01119, check the datafile path in config.ps1:
# Check actual datafile location
sqlplus -S sys/romfastsoft@10.0.20.130:1521/XEPDB1 "as sysdba" <<< "SELECT file_name FROM dba_data_files WHERE ROWNUM = 1;"
# Common paths:
# Oracle XE typical: C:\app\<user>\product\21c\oradata\XE\XEPDB1
# Not: C:\app\<user>\oradata\XE\XEPDB1 (missing 'product\21c')
Fix in config.ps1:
$DATAFILE_DIR = "C:\app\romfast\product\21c\oradata\XE\XEPDB1"
Permission Error on C:\DMPDIR
# Grant Oracle service permissions
icacls C:\DMPDIR /grant "NT SERVICE\OracleServiceXE:(OI)(CI)F" /T
PDB Not Open
-- Connect as SYSDBA to CDB
sqlplus sys/romfastsoft@localhost:1521/XE as sysdba
-- Open PDB
ALTER PLUGGABLE DATABASE XEPDB1 OPEN;
ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE;
Script Execution Policy Error
# Use Run.cmd wrapper instead of direct execution
.\Run.cmd 01-setup-database.ps1
# Or set policy manually (Admin PowerShell)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Check Logs
# View latest log
Get-ChildItem C:\roa-setup\logs\ | Sort-Object LastWriteTime -Descending | Select-Object -First 5
# Read specific log
Get-Content C:\roa-setup\logs\01-setup-database_*.log
Deploying Updated Scripts
From WSL/Linux
# Copy all scripts to VM
scp -r /mnt/e/proiecte/ROMFASTSQL/proxmox/lxc108-oracle/roa-windows-setup/* romfast@10.0.20.130:C:/roa-setup/
From Windows
# Copy from network share or local path
Copy-Item -Recurse E:\proiecte\ROMFASTSQL\proxmox\lxc108-oracle\roa-windows-setup\* C:\roa-setup\ -Force
Quick Script Update (single file)
# Update specific script
scp /mnt/e/proiecte/ROMFASTSQL/proxmox/lxc108-oracle/roa-windows-setup/scripts/03-import-contafin.ps1 romfast@10.0.20.130:C:/roa-setup/scripts/
VM Snapshots
Create Snapshot (for quick restore)
# Before testing
ssh root@10.0.20.201 "qm snapshot 302 pre-test --description 'Before ROA test'"
# List snapshots
ssh root@10.0.20.201 "qm listsnapshot 302"
Restore Snapshot
# Restore to clean state
ssh root@10.0.20.201 "qm rollback 302 pre-test"
Delete Snapshot
ssh root@10.0.20.201 "qm delsnapshot 302 pre-test"
Clone VM for Parallel Testing
# Clone VM 302 to VM 304 (ATENTIE: 303 e ocupat de Win11-Adina)
ssh root@10.0.20.201 "qm clone 302 304 --name oracle-test-304 --full"
# Start new VM
ssh root@10.0.20.201 "qm start 304"
# Note: Change IP in Windows after boot (Network Settings)
Notes
- VM 302 a fost clonata initial din template-ul VM 300 (clean Windows + Oracle XE)
- ✅ Foloseste template-ul VM 310
Win11-Template-Sysprep. VM 300 a fost sters 2026-08-11: nu era sysprep-uit, purta numele si SID-ul de masina al VM 201, iar clonele lui nu se puteau autentifica prin SMB/NTLM cu VM 201 sau intre ele. - Oracle XE has 2GB RAM limit - sufficient for testing
- DMP files are already in C:\DMPDIR (persisted between tests)
- Uninstall script preserves DMP files
Last Updated: 2026-04-25 Author: Marius Mutu Project: ROMFASTSQL - VM 302 (oracle-test-302) test environment
Documente conexe
docs/dual-edition-test-plan.md— plan testare XE + SE 21cdocs/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)