SYS.INFO e log de aplicatie (SYS.pINFO din AUTH_PACK scrie ~7 randuri la fiecare conectare, ~13.500 randuri / ~2 MB pe luna) si nimic din baza nu-l citeste. Creat de installer in tablespace-ul SYSTEM si nepurjat niciodata, a umplut SYSTEM la doi clienti si a oprit actualizarea cu ORA-01653 - eroarea apare pe orice script, pentru ca AUTH_PACK scrie acolo la conectare. SIGMA 03.08.2026 - ff_2026_07_29_02_COMUN_TVA11 picat pe MARCU AUTOMOTIVE 08.08.2026 - 552.581 randuri / 80 MB, SYSTEM cu 5 MB liberi Installer: - sys-objects.sql: SYS.INFO (tabela + segment LOB) se creeaza in tablespace-ul ROA, cu fallback pe SYSTEM daca ROA inca nu exista - scheduler-jobs.sql: job nou SYS.SYSINFO_PURJARE_ZILNIC, zilnic 03:30, retentie 90 zile, stergere in transe de 10.000 randuri; creat ENABLED, pentru ca nu are nimic de configurat iar uitat dezactivat reproduce chiar problema pe care o rezolva. In schema SYS: privilegiile ANY nu se aplica pe obiectele SYS cat timp O7_DICTIONARY_ACCESSIBILITY=FALSE - uninstall-roa.sql: dezinstalarea sterge si jobul - 00-INSTALL-ORACLE-XE.md / -SE.md: pas post-instalare pentru plafonul SYSTEM (maxsize 2000M) si mutarea SYS.INFO la instalarile vechi Documentatie noua (docs/diagnostic-spatiu-clienti.md): jobul DIAGSPATIU_ZILNIC si pragurile lui, formatul emailurilor de alerta si cum se citesc din mbox-urile Thunderbird, procedura de tunel SSH catre serverul unui client, triajul alertelor si starea la 08.08.2026 pe fiecare client. Reparatia la AUTOMOTIVE e deja aplicata in productie (plafon 600 -> 2000 MB, truncate SYS.INFO): SYSTEM a trecut de la 65 MB la 1545 MB de crestere posibila. Scriptul de livrare pentru ceilalti clienti e scris, dar nepublicat: COMUN sys_2026_08_08_02_SYS_INFO_TABLESPACE_PURJARE.sql Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rft5ofNa4Ux5VEh4YnhJRC
11 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
-
Go to Oracle XE Downloads: https://www.oracle.com/database/technologies/xe-downloads.html
-
Download OracleXE213_Win64.zip (~1.5 GB)
- Requires Oracle account (free registration)
-
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
-
Open Command Prompt or PowerShell as Administrator
-
Navigate to extracted folder:
cd C:\OracleXE_Install\Disk1 -
Run setup:
.\setup.exe
Step 3: Installation Wizard
-
Welcome Screen - Click Next
-
License Agreement - Accept and click Next
-
Oracle Home Location
- Default:
C:\app\oracle\product\21c\dbhomeXE - Keep default unless disk space is an issue
- Default:
-
Database Passwords
- Enter password for SYS and SYSTEM:
romfastsoft - Confirm password
- Important: Remember this password!
- Enter password for SYS and SYSTEM:
-
Summary - Review and click Install
-
Installation Progress - Wait (~10-20 minutes)
-
Finish - Note the connection information:
- Multitenant container database: XE
- Pluggable database: XEPDB1
- EM Express URL: https://localhost:5500/em/
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>
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;
Ce NU trebuie făcut manual
Următoarele sunt create automat de scriptul 01-setup-database.ps1:
| Component | Script |
|---|---|
| Tablespace ROA | 01-setup-database.ps1 |
| DMPDIR directory | 01-setup-database.ps1 |
| Password profile (UNLIMITED) | 01-setup-database.ps1 |
| User CONTAFIN_ORACLE | 01-setup-database.ps1 |
| sqlnet.ora (client vechi) | 01-setup-database.ps1 |
NU rula manual comenzile SQL pentru acestea - scripturile le fac automat!
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
- Check Windows Event Viewer for errors
- Verify disk space (need 15+ GB free)
- 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.
Post-Installation: Preventie ORA-12954 (OBLIGATORIU!)
Oracle XE are limita de 12 GB. Fara aceste setari, SYSAUX creste automat pana la limita (SQL Tuning Sets, audit trail).
Conecteaza-te la PDB-ul XEPDB1 ca SYS si ruleaza:
sqlplus sys/romfastsoft@localhost:1521/XEPDB1 as sysdba
-- 1. Dezactiveaza auto tasks care umfla SYSAUX
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'sql tuning advisor', operation => NULL, window_name => NULL);
EXEC DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto space advisor', operation => NULL, window_name => NULL);
-- 2. Dezactiveaza audit policies (umfla AUDSYS)
NOAUDIT POLICY ORA_SECURECONFIG;
NOAUDIT POLICY ORA_LOGON_FAILURES;
-- 3. AWR retention minim (8 zile - limita moving window baseline)
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention => 8*24*60, interval => 60);
EXEC DBMS_STATS.ALTER_STATS_HISTORY_RETENTION(7);
-- 4. Grant DBMS_LOCK (necesar pentru PACK_UTILS_FILE)
GRANT EXECUTE ON SYS.DBMS_LOCK TO CONTAFIN_ORACLE;
-- 5. Verificare
SELECT client_name, status FROM dba_autotask_client;
SELECT policy_name, enabled_option FROM audit_unified_enabled_policies;
IMPORTANT: Fara acesti pasi, baza de date va atinge limita de 12 GB in cateva luni! Vezi
../../clienti/oracle-xe-21c/depanare-ora-12954-spatiu.mdpentru ghid complet de depanare.
Post-Installation: Plafonul SYSTEM si cresterea SYS.INFO (OBLIGATORIU!)
Setarile de mai sus apara SYSAUX. SYSTEM are o problema separata, care a blocat deja doi
clienti (SIGMA 03.08.2026, AUTOMOTIVE 08.08.2026): SYS.INFO — logul de login al ROA, creat de
sql/sys-objects.sql — creste ~13.500 randuri (~2 MB) pe luna, scrise de SYS.pINFO din
AUTH_PACK la fiecare conectare, si nu se purja niciodata.
Cand SYSTEM se umple, orice script de actualizare pica cu ORA-01653: unable to extend table SYS.INFO, indiferent ce contine — pentru ca AUTH_PACK scrie acolo la conectare. Simptomul arata a
eroare de SQL, dar nu e.
Instalarile noi sunt acoperite: sys-objects.sql creeaza SYS.INFO in tablespace-ul ROA, iar
scheduler-jobs.sql creeaza jobul SYS.SYSINFO_PURJARE_ZILNIC (03:30, retentie 90 zile).
Plafonul lui SYSTEM ramane insa de ridicat manual, pentru ca dictionarul singur ocupa ~200 MB
si unele instalari il plafoneaza la 600 MB:
-- ca SYSDBA, dupa crearea bazei; inlocuieste calea cu cea reala din dba_data_files
ALTER DATABASE DATAFILE '<ORADATA>\SYSTEM.DBF' AUTOEXTEND ON NEXT 50M MAXSIZE 2000M;
-- verificare
SELECT file_name, ROUND(bytes/1048576,2) mb, ROUND(maxbytes/1048576,2) max_mb, autoextensible
FROM dba_data_files WHERE tablespace_name = 'SYSTEM';
Plafonul de 11/12 GB al editiei XE se aplica pe date utilizator — SYSTEM si SYSAUX nu intra
la socoteala, deci ridicarea la 2000 MB nu apropie baza de limita.
La o instalare mai veche, unde SYS.INFO a ramas in SYSTEM, mutarea se face cu:
ALTER TABLE SYS.INFO MOVE TABLESPACE ROA LOB (INFO) STORE AS (TABLESPACE ROA);
Diagnosticul zilnic care prinde asta automat, pragurile lui si triajul alertelor:
E:\proiecte\ROMFASTSQL\docs\diagnostic-spatiu-clienti.md.
Gotchas Oracle XE 21c (Windows)
| Problema | Solutie |
|---|---|
ORA-02236: invalid file name la CREATE TABLESPACE |
Specifica path complet: DATAFILE 'C:\...\ROA01.DBF' |
ORA-00959: tablespace 'USERS' does not exist la impdp |
Adauga remap_tablespace=USERS:ROA |
ORA-00942 la GRANT pe DIRECTORY |
Foloseste GRANT READ, WRITE ON DIRECTORY dir_name nu ON SYS.dir_name |
PLS-00201: DBMS_LOCK must be declared |
GRANT EXECUTE ON SYS.DBMS_LOCK TO CONTAFIN_ORACLE |
ORA-65066 la ALTER USER SYSTEM pe PDB |
SYSTEM e common user, modifica din CDB$ROOT |
ORA-28000: account is locked la impdp cu SYSTEM |
Foloseste SYS AS SYSDBA: impdp "sys/pass@XEPDB1 AS SYSDBA" |
impdp AS SYSDBA nu functioneaza pe Windows |
Pune in ghilimele: impdp "sys/pass@XEPDB1 AS SYSDBA" |
ORA-13541 la AWR retention |
Retention trebuie >= 8 zile (moving window baseline) |
Next Steps
After Oracle XE installation:
- Copy
config.example.ps1toconfig.ps1 - Edit
config.ps1with your settings - Run
01-setup-database.ps1 - Run the post-installation prevention steps above!
See main README.md for complete workflow.
Last Updated: 2026-03-24 Project: ROMFASTSQL - Oracle XE Installation Guide