Files
ROMFASTSQL/proxmox/lxc108-oracle/roa-windows-setup/test/VM302-TESTING.md
Marius 709c822e38 Fix DMPDIR path detection and add VM302 testing documentation
- New-OracleDirectory now checks if DMPDIR exists with wrong path
- If path differs from target, drops and recreates the directory
- Fixes Oracle XE issue where DMPDIR defaults to D:\Oracle\admin\ORCL\dpdump
- Added VM302-TESTING.md with complete testing workflow documentation
- Includes Proxmox VM management commands, troubleshooting, and deployment steps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 02:09:06 +02:00

8.7 KiB

VM 302 - ROA Windows Setup Testing

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)
Proxmox Host pvemini (10.0.20.201)

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

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 303
ssh root@10.0.20.201 "qm clone 302 303 --name oracle-test-303 --full"

# Start new VM
ssh root@10.0.20.201 "qm start 303"

# Note: Change IP in Windows after boot (Network Settings)

Notes

  • VM 302 is cloned from template VM 300 (clean Windows + Oracle XE)
  • 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-01-29 Author: Marius Mutu Project: ROMFASTSQL - ROA Windows Setup Testing