Trei probleme gasite pregatind migrarea unui client de pe Oracle XE 11 pe XE 21c. 1. sys-grants.sql nu era rulat de niciun script PowerShell. Era referit doar din run-all-sys.sql, care se lanseaza manual. Pe orice instalare facuta cu RunAll.cmd lipseau sinonimele SYS (SYN_NEWSCHEMA, SYN_NEWSCHEMAJOB, EXECUTESCRIPTOS, SYN_PINFO), DMPDIR si granturile pe DBMS_SCHEDULER / UTL_* / DBMS_CRYPTO catre CONTAFIN_ORACLE. Legat ca STEP 3 in 04-create-synonyms-grants, dupa import - unde propriul header al fisierului spune ca trebuie rulat. 2. Granturile de dictionar cerute de PACK_DIAG_SPATIU lipseau complet. Consolidez sys_2026_08_03_05, sys_2026_08_03_07 si sys_2026_08_06_07 in sectiunea [5/5] din sys-grants.sql: SELECT direct pe 18 vederi dba_*/v$*, idempotent, cu ORA-00942 tratat pentru vederile absente pe alte editii/versiuni. Grantul prin rolul DBA nu ajunge - rolurile nu se aplica in pachetele cu drepturi de definitor, iar PACK_DIAG_SPATIU e exact asa; fara ele ramane INVALID si DIAGSPATIU_ZILNIC nu ruleaza. 3. Capcana la migrari: tabela de versiuni a lui PACK_MIGRARE traieste in CONTAFIN_ORACLE si vine cu DMP-ul, deci baza noua raporteaza scripturile sys_* drept aplicate si ROAACTUALIZARI le sare, desi in SYS nu exista nimic. De aceea obiectele si granturile SYS se pun la instalare, nu prin actualizator. Documentat in sys-updates/README.md si in ghidul nou. 07-verify-installation raporteaza nominal care dintre cele 18 granturi lipsesc. Documentatie: docs/instalare-si-migrare-oracle.md - arbore de decizie intre roa-windows-setup/ (client pe Windows), migration/ (Oracle in Docker pe LXC 108) si new-roa-oracle-server/ (arhiva). Include de ce migration/ nu se foloseste la un client Windows: creeaza PDB ROA cu OraclePass123, sinonime minimale, fara SERVER_INFO / ROAUPDATE / ACL / sqlnet.ora, iar sys_objects.sql de acolo creeaza INFO in SYSTEM - cauza cunoscuta a ORA-01653 la actualizare. Plus comenzile de export din XE 11 / 10g si plafonul XE de 12 GB. Corectat pe drum: dual-edition-test-plan si issues-se-prod indicau clonarea VM 302 -> 303 pentru testul SE, dar 303 e ocupat de Win11-Adina. Mutat pe 304. NETESTAT pe baza reala - VM 302 e oprit. Scripturile trec doar parse-check PowerShell. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SzF1hf4aFS1tmJWpPMiwGp
434 lines
11 KiB
Markdown
434 lines
11 KiB
Markdown
# 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 din
|
|
> `proxmox/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`](../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-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
|
|
|
|
| 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)
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
# PowerShell as Administrator
|
|
cd C:\roa-setup
|
|
.\RunAll.cmd
|
|
```
|
|
|
|
### 4. Stop VM (when done)
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
ssh root@10.0.20.201 "qm status 302"
|
|
```
|
|
|
|
### Start VM
|
|
|
|
```bash
|
|
ssh root@10.0.20.201 "qm start 302"
|
|
```
|
|
|
|
### Graceful Shutdown
|
|
|
|
```bash
|
|
ssh root@10.0.20.201 "qm shutdown 302"
|
|
```
|
|
|
|
### Force Stop
|
|
|
|
```bash
|
|
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 |
|
|
|
|
```bash
|
|
# 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
|
|
```
|
|
|
|
---
|
|
|
|
## Testing Workflow
|
|
|
|
### Full Installation Test
|
|
|
|
```powershell
|
|
# 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
|
|
|
|
```powershell
|
|
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
|
|
|
|
```powershell
|
|
# 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
|
|
|
|
```powershell
|
|
# 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:
|
|
|
|
```sql
|
|
-- 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:
|
|
|
|
```powershell
|
|
# 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:
|
|
```powershell
|
|
$DATAFILE_DIR = "C:\app\romfast\product\21c\oradata\XE\XEPDB1"
|
|
```
|
|
|
|
### Permission Error on C:\DMPDIR
|
|
|
|
```powershell
|
|
# Grant Oracle service permissions
|
|
icacls C:\DMPDIR /grant "NT SERVICE\OracleServiceXE:(OI)(CI)F" /T
|
|
```
|
|
|
|
### PDB Not Open
|
|
|
|
```sql
|
|
-- 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
|
|
|
|
```powershell
|
|
# 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
|
|
|
|
```powershell
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```powershell
|
|
# 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)
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# Restore to clean state
|
|
ssh root@10.0.20.201 "qm rollback 302 pre-test"
|
|
```
|
|
|
|
### Delete Snapshot
|
|
|
|
```bash
|
|
ssh root@10.0.20.201 "qm delsnapshot 302 pre-test"
|
|
```
|
|
|
|
---
|
|
|
|
## Clone VM for Parallel Testing
|
|
|
|
```bash
|
|
# 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 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)
|