# Installing Oracle 21c Standard Edition on Windows ## Overview Oracle 21c Standard Edition 2 (SE2) is a licensed product for production use. Unlike Express Edition, SE has no resource limitations. | Feature | Express Edition | Standard Edition 2 | |---------|-----------------|-------------------| | License | Free | Paid (per socket) | | CPU | 2 threads max | Unlimited | | RAM | 2 GB max | Unlimited | | User Data | 12 GB max | Unlimited | | Architecture | CDB only | CDB or non-CDB | For large ROA installations (50+ companies), SE2 is recommended. --- ## Download 1. Go to Oracle Database Downloads: https://www.oracle.com/database/technologies/oracle-database-software-downloads.html 2. Download **Oracle Database 21c for Windows x64** - File: `WINDOWS.X64_213000_db_home.zip` (~2.9 GB) - Requires Oracle account 3. You will also need the Oracle Database license key --- ## System Requirements | Requirement | Minimum | Recommended | |-------------|---------|-------------| | OS | Windows Server 2016+ | Windows Server 2019/2022 | | RAM | 8 GB | 16 GB+ | | Disk | 30 GB | 100 GB+ | | CPU | 4 cores | 8+ cores | --- ## Installation ### Step 1: Extract ZIP ```powershell # Create Oracle Home directory first mkdir C:\app\oracle\product\21c\dbhome_1 # Extract directly to Oracle Home Expand-Archive WINDOWS.X64_213000_db_home.zip -DestinationPath C:\app\oracle\product\21c\dbhome_1 ``` ### Step 2: Run Installer 1. Open Command Prompt **as Administrator** 2. Navigate to Oracle Home: ```powershell cd C:\app\oracle\product\21c\dbhome_1 ``` 3. Run setup: ```powershell .\setup.exe ``` ### Step 3: Installation Wizard 1. **Configuration Option** - Select: **Create and configure a single instance database** - Click Next 2. **System Class** - Select: **Server Class** - Click Next 3. **Database Edition** - Select: **Standard Edition 2** - Click Next 4. **Installation Type** - Select: **Typical Install** (simpler) - Or **Advanced Install** for custom settings - Click Next 5. **For Typical Install:** - Oracle base: `C:\app\oracle` - Database file location: `C:\app\oracle\oradata` - Database edition: Standard Edition 2 - Character set: **WE8MSWIN1252** (for Romanian support) - Global database name: **ROA** - Password: `romfastsoft` - **Uncheck:** Create as Container database (for non-CDB) 6. **Summary** - Review and click Install 7. **Installation Progress** - Wait (~30-45 minutes) 8. **Finish** - Note connection information --- ## Non-CDB vs CDB Architecture ### Non-CDB (Traditional - Recommended for ROA) Single database, simpler administration: ``` +---------------------------+ | Database: ROA | | +---------------------+ | | | Schema: CONTAFIN | | | +---------------------+ | | | Schema: COMPANY1 | | | +---------------------+ | | | Schema: COMPANY2 | | | +---------------------+ | +---------------------------+ ``` Connection: `system/romfastsoft@ROA` ### CDB (Multitenant) Container with pluggable databases: ``` +---------------------------------------------+ | CDB: ROA | | +---------------------------------------+ | | | CDB$ROOT | | | +---------------------------------------+ | | +---------------------------------------+ | | | ROAPDB1 - Application Data | | | +---------------------------------------+ | +---------------------------------------------+ ``` Connection: `system/romfastsoft@ROAPDB1` > **Recommendation:** Use **non-CDB** for compatibility with Oracle 10g migration scripts. --- ## Post-Installation Configuration ### Verify Services Running ```powershell Get-Service Oracle* | Format-Table Name, Status, StartType ``` Expected services: | Service | Description | |---------|-------------| | OracleServiceROA | Database instance | | OracleOraDB21Home1TNSListener | TNS Listener | | OracleVssWriterROA | VSS Writer for backups | ### Test Connection ```powershell # Set Oracle environment $env:ORACLE_HOME = "C:\app\oracle\product\21c\dbhome_1" $env:ORACLE_SID = "ROA" $env:PATH = "$env:ORACLE_HOME\bin;$env:PATH" # Test connection sqlplus system/romfastsoft@localhost:1521/ROA ``` ## Memory Configuration (Opțional) Pentru Standard Edition cu 16GB RAM: ```sql -- Connect as SYSDBA sqlplus sys/romfastsoft@localhost:1521/ROA as sysdba -- Check current settings SHOW PARAMETER memory; SHOW PARAMETER sga; SHOW PARAMETER pga; -- Configure memory (adjust based on available RAM) ALTER SYSTEM SET MEMORY_TARGET = 8G SCOPE = SPFILE; ALTER SYSTEM SET MEMORY_MAX_TARGET = 10G SCOPE = SPFILE; -- Restart database for changes SHUTDOWN IMMEDIATE; STARTUP; ``` Recommended memory allocation: | RAM Available | MEMORY_TARGET | MEMORY_MAX_TARGET | |---------------|---------------|-------------------| | 8 GB | 4 GB | 6 GB | | 16 GB | 8 GB | 10 GB | | 32 GB | 16 GB | 20 GB | --- ## 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! --- ## Listener Configuration Check `listener.ora`: ```powershell notepad C:\app\oracle\product\21c\dbhome_1\network\admin\listener.ora ``` Should contain: ``` LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ROA) (ORACLE_HOME = C:\app\oracle\product\21c\dbhome_1) (SID_NAME = ROA) ) ) ``` Check `tnsnames.ora`: ```powershell notepad C:\app\oracle\product\21c\dbhome_1\network\admin\tnsnames.ora ``` Should contain: ``` ROA = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ROA) ) ) ``` --- ## Enterprise Manager Database Express Access EM Express: ``` https://localhost:5500/em/ ``` If not configured, enable it: ```sql sqlplus sys/romfastsoft@localhost:1521/ROA as sysdba EXEC DBMS_XDB_CONFIG.SETHTTPPORT(5500); EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5501); ``` --- ## Troubleshooting ### OracleServiceROA Not Starting 1. Check Oracle alert log: ```powershell Get-Content C:\app\oracle\diag\rdbms\roa\ROA\trace\alert_ROA.log -Tail 100 ``` 2. Common issues: - Insufficient memory - Disk space - Port 1521 already in use ### ORA-01034: ORACLE not available Start the database manually: ```powershell sqlplus / as sysdba SQL> STARTUP; ``` ### ORA-12514: TNS listener does not know of service ```powershell # Register database with listener sqlplus / as sysdba SQL> ALTER SYSTEM REGISTER; # Check listener lsnrctl status lsnrctl services ``` ### Database Won't Shut Down ```sql -- Force shutdown SHUTDOWN ABORT; -- Start clean STARTUP; ``` --- ## Backup Configuration (Recommended) ### Enable Archivelog Mode ```sql sqlplus sys/romfastsoft@localhost:1521/ROA as sysdba -- Check current mode ARCHIVE LOG LIST; -- If NOARCHIVELOG, enable: SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN; -- Verify ARCHIVE LOG LIST; ``` ### Configure RMAN ```powershell rman target sys/romfastsoft@ROA RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2; RMAN> CONFIGURE BACKUP OPTIMIZATION ON; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'C:\backup\%F'; ``` --- ## Next Steps After Oracle SE installation: 1. Copy `config.example.ps1` to `config.ps1` 2. Edit `config.ps1`: - Set `$ORACLE_HOME = "C:\app\oracle\product\21c\dbhome_1"` - Set `$SERVICE_NAME = "ROA"` - Set `$DATAFILE_DIR = "C:\app\oracle\oradata\ROA"` 3. Run `01-setup-database.ps1` See main `README.md` for complete workflow. --- **Last Updated:** 2026-01-28 **Project:** ROMFASTSQL - Oracle SE Installation Guide