Files
ROMFASTSQL/proxmox/lxc108-oracle/roa-windows-setup/docs/00-INSTALL-ORACLE-XE.md
Marius 989477f7a4 Add ROA Oracle Database Windows setup scripts with old client support
PowerShell scripts for setting up Oracle 21c/XE with ROA application:
- Automated tablespace, user creation and imports
- sqlnet.ora config for Instant Client 11g/ODBC compatibility
- Oracle 21c read-only Home path handling (homes/OraDB21Home1)
- Listener restart + 10G password verifier for legacy auth
- Tested on VM 302 with CONTAFIN_ORACLE schema import

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 17:08:02 +02:00

7.4 KiB

Installing Oracle 21c Express Edition on Windows

Overview

Oracle 21c Express Edition (XE) is free to use with the following limitations:

  • 2 CPU threads
  • 2 GB RAM for database
  • 12 GB user data

For ROA installations with up to 50 companies, XE is sufficient.


Download

  1. Go to Oracle XE Downloads: https://www.oracle.com/database/technologies/xe-downloads.html

  2. Download OracleXE213_Win64.zip (~1.5 GB)

    • Requires Oracle account (free registration)
  3. Verify download integrity (optional):

    Get-FileHash OracleXE213_Win64.zip -Algorithm SHA256
    

System Requirements

Requirement Minimum Recommended
OS Windows 10/11, Server 2016+ Windows Server 2019+
RAM 4 GB 8 GB
Disk 15 GB 50 GB
CPU 2 cores 4 cores

Installation

Step 1: Extract ZIP

Expand-Archive OracleXE213_Win64.zip -DestinationPath C:\OracleXE_Install

Step 2: Run Installer

  1. Open Command Prompt or PowerShell as Administrator

  2. Navigate to extracted folder:

    cd C:\OracleXE_Install\Disk1
    
  3. Run setup:

    .\setup.exe
    

Step 3: Installation Wizard

  1. Welcome Screen - Click Next

  2. License Agreement - Accept and click Next

  3. Oracle Home Location

    • Default: C:\app\oracle\product\21c\dbhomeXE
    • Keep default unless disk space is an issue
  4. Database Passwords

    • Enter password for SYS and SYSTEM: romfastsoft
    • Confirm password
    • Important: Remember this password!
  5. Summary - Review and click Install

  6. Installation Progress - Wait (~10-20 minutes)

  7. Finish - Note the connection information:


Post-Installation Configuration

Verify Services Running

Open Services (services.msc) and verify:

Service Status Startup Type
OracleServiceXE Running Automatic
OracleOraDB21Home1TNSListener Running Automatic

Or via PowerShell:

Get-Service Oracle* | Format-Table Name, Status, StartType

Test Connection

# Set Oracle environment
$env:ORACLE_HOME = "C:\app\oracle\product\21c\dbhomeXE"
$env:PATH = "$env:ORACLE_HOME\bin;$env:PATH"

# Test connection to CDB
sqlplus system/romfastsoft@localhost:1521/XE

# Test connection to PDB (for applications)
sqlplus system/romfastsoft@localhost:1521/XEPDB1

Expected output:

Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SQL>

Configure for Old Client Compatibility

If using Instant Client 10/11 (ODBC), configure sqlnet.ora:

# Edit sqlnet.ora
notepad C:\app\oracle\product\21c\dbhomeXE\network\admin\sqlnet.ora

Add these lines:

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

Reload listener:

lsnrctl reload

CDB/PDB Architecture

Oracle XE uses Container Database (CDB) architecture:

+---------------------------------------------+
|              CDB: XE                        |
|  +---------------------------------------+  |
|  |  CDB$ROOT - System, SYS objects       |  |
|  +---------------------------------------+  |
|  +---------------------------------------+  |
|  |  PDB$SEED - Template (read-only)      |  |
|  +---------------------------------------+  |
|  +---------------------------------------+  |
|  |  XEPDB1 - Application Data (ROA)      |  |
|  +---------------------------------------+  |
+---------------------------------------------+
Container Purpose Connect To
XE (CDB$ROOT) Administration, SYS Admin only
XEPDB1 Application data ROA applications

Important: Always connect to XEPDB1 for ROA operations, not XE!


Verify PDB Status

-- Connect as SYSDBA
sqlplus sys/romfastsoft@localhost:1521/XE as sysdba

-- Check PDB status
SELECT name, open_mode FROM v$pdbs;

-- Expected output:
-- NAME      OPEN_MODE
-- --------- ----------
-- PDB$SEED  READ ONLY
-- XEPDB1    READ WRITE

If XEPDB1 is MOUNTED (not READ WRITE):

ALTER PLUGGABLE DATABASE XEPDB1 OPEN;
ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE;

Create DMPDIR Directory

-- Connect to PDB
sqlplus sys/romfastsoft@localhost:1521/XEPDB1 as sysdba

-- Create Windows directory
host mkdir C:\DMPDIR

-- Create Oracle DIRECTORY object
CREATE OR REPLACE DIRECTORY DMPDIR AS 'C:\DMPDIR';
GRANT READ, WRITE ON DIRECTORY DMPDIR TO PUBLIC;

-- Verify
SELECT directory_name, directory_path FROM dba_directories WHERE directory_name = 'DMPDIR';

Configure Password Policy

Disable password expiration for application users:

-- Connect to PDB
sqlplus sys/romfastsoft@localhost:1521/XEPDB1 as sysdba

-- Modify DEFAULT profile
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_MAX UNLIMITED;
ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

-- Verify
SELECT resource_name, limit FROM dba_profiles WHERE profile = 'DEFAULT' AND resource_type = 'PASSWORD';

Enterprise Manager Express

Access EM Express web interface:

https://localhost:5500/em/

Login:

  • Username: system
  • Password: romfastsoft
  • Container: XEPDB1 (or leave empty for CDB)

Memory Configuration

Check current memory settings:

SHOW PARAMETER memory;
SHOW PARAMETER sga;
SHOW PARAMETER pga;

XE defaults (cannot exceed due to license):

  • SGA: 2 GB max
  • PGA: 2 GB max

For better performance within limits:

-- Automatic memory management
ALTER SYSTEM SET MEMORY_TARGET = 2G SCOPE = SPFILE;
ALTER SYSTEM SET MEMORY_MAX_TARGET = 2G SCOPE = SPFILE;

Troubleshooting

OracleServiceXE Not Starting

  1. Check Windows Event Viewer for errors
  2. Verify disk space (need 15+ GB free)
  3. Check Oracle alert log:
    Get-Content C:\app\oracle\diag\rdbms\xe\XE\trace\alert_XE.log -Tail 50
    

Cannot Connect to XEPDB1

-- Connect to CDB
sqlplus sys/romfastsoft@localhost:1521/XE as sysdba

-- Check PDB status
SELECT name, open_mode FROM v$pdbs;

-- Open if mounted
ALTER PLUGGABLE DATABASE XEPDB1 OPEN;
ALTER PLUGGABLE DATABASE XEPDB1 SAVE STATE;

ORA-12514: TNS listener does not know of service

# Check listener status
lsnrctl status
lsnrctl services

# Restart listener
lsnrctl stop
lsnrctl start

Uninstall Oracle XE

If needed, run the universal installer in deinstall mode:

C:\app\oracle\product\21c\dbhomeXE\deinstall\deinstall.bat

Or via Control Panel > Programs and Features.


Next Steps

After Oracle XE installation:

  1. Copy config.example.ps1 to config.ps1
  2. Edit config.ps1 with your settings
  3. Run 01-setup-database.ps1

See main README.md for complete workflow.


Last Updated: 2026-01-28 Project: ROMFASTSQL - Oracle XE Installation Guide