# Oracle Database XE - LXC 108 (Proxmox) ## 📌 Informații Container LXC - **VMID:** 108 - **Nume:** central-oracle - **IP:** 10.0.20.121 - **Host Proxmox:** 10.0.20.201 (pvemini) - **CPU:** 2 cores - **RAM:** 4 GB - **Storage:** 50 GB (local-zfs) - **Status:** Running - **OS:** Ubuntu/Debian (LXC) - **Docker Containers:** oracle-xe (21c), oracle18-xe (18c) ## 📋 Sumar Containere Docker | Container | Port | Versiune | TSTZ | Utilizare | |-----------|------|----------|------|-----------| | oracle-xe | 1521 | 21c | 35 | Dezvoltare, ROA, ROA2 | | oracle18-xe | 1522 | 18c | 31 | Export compatibil 11g/18c/19c | --- ## 🐳 Oracle XE 21c în Docker ### Informații Container Docker - **Container Name:** oracle-xe - **Image:** container-registry.oracle.com/database/express:21.3.0-xe - **Versiune:** Oracle Database 21c Express Edition - **Status:** Running (Up 3+ weeks, healthy) - **Portainer:** http://10.0.20.121:9443 ### Porturi Expuse | Port | Serviciu | Descriere | |------|----------|-----------| | 1521 | Oracle Listener | Conexiuni SQL*Plus, JDBC | | 5500 | Oracle EM Express | Enterprise Manager Web Interface | ### Volume Docker Montate (oracle-xe) | Container Path | LXC 108 Path | Descriere | |----------------|--------------|-----------| | /opt/oracle/oradata | /opt/oracle/oradata | Date Oracle, tablespaces | | /opt/oracle/oradata/dmpdir | /opt/oracle/oradata/dmpdir | Export/Import DMP (DMPDIR) | | /opt/oracle/scripts/setup | /opt/oracle/scripts/setup | Scripturi setup | | /opt/oracle/scripts/startup | /opt/oracle/scripts/startup | Scripturi startup | --- ## 🐳 Oracle XE 18c în Docker (Export Compatibil) > **Scop:** Export DMP compatibil cu Oracle 11g, 18c, 19c (TSTZ version 31) ### Informații Container Docker - **Container Name:** oracle18-xe - **Image:** gvenzl/oracle-xe:18 - **Versiune:** Oracle Database 18c Express Edition - **Port:** 1522 - **TSTZ Version:** 31 (compatibil cu 11g/18c/19c) ### Volume Docker Montate (oracle18-xe) | Container Path | LXC 108 Path | Descriere | |----------------|--------------|-----------| | /opt/oracle/oradata | /opt/oracle/oradata18 | Date Oracle 18c | | /opt/oracle/oradata/dmpdir | /opt/oracle/oradata/dmpdir | Export/Import DMP (partajat) | ### Conexiune Oracle 18c ```bash # SQL*Plus sqlplus sys/romfastsoft@10.0.20.121:1522/XE as sysdba sqlplus system/romfastsoft@10.0.20.121:1522/XE # JDBC jdbc:oracle:thin:@10.0.20.121:1522/XE ``` ### Export Compatibil din Oracle 18c ```bash # Export schema (compatibil cu Oracle 11g, 18c, 19c) docker exec oracle18-xe expdp system/romfastsoft@localhost:1521/XE \ SCHEMAS=FIRMANOUA DIRECTORY=DMPDIR DUMPFILE=firmanoua_v18.dmp VERSION=11.2 ``` ### Recreare Container Oracle 18c (dacă e necesar) ```bash docker pull gvenzl/oracle-xe:18 docker run -d --name oracle18-xe \ -p 1522:1521 \ -e ORACLE_PASSWORD=romfastsoft \ -v /opt/oracle/oradata18:/opt/oracle/oradata \ -v /opt/oracle/oradata/dmpdir:/opt/oracle/oradata/dmpdir \ gvenzl/oracle-xe:18 # Creare DMPDIR docker exec oracle18-xe bash -c "sqlplus -s sys/romfastsoft@localhost:1521/XE as sysdba < **IMPORTANT:** Nu ai nevoie de user/parolă pentru LXC 108! > Accesul se face prin Proxmox folosind comenzile `pct`. ### Metoda 1: Intrare în LXC 108 ```bash # SSH în Proxmox ssh root@10.0.20.201 # Intrare în LXC 108 pct enter 108 # Acum poți folosi comenzi Docker direct docker ps docker logs oracle-xe --tail 50 ``` ### Metoda 2: Execuție Directă din Proxmox ```bash # Verificare PDB-uri ssh root@10.0.20.201 'pct exec 108 -- docker exec oracle-xe bash -c "echo \"SELECT name, open_mode FROM v\\\$pdbs;\" | sqlplus -s sys/romfastsoft@localhost:1521/XE as sysdba"' # Restart Oracle container ssh root@10.0.20.201 "pct exec 108 -- docker restart oracle-xe" ``` ### Metoda 3: SQL*Plus Direct în Container ```bash # Intrare în container Oracle pct exec 108 -- docker exec -it oracle-xe bash # SQL*Plus din container docker exec oracle-xe sqlplus sys/romfastsoft@localhost:1521/roa as sysdba ``` --- ## 📦 Export și Import Data Pump > **DMPDIR** - Director Oracle montat direct pe LXC 108: `/opt/oracle/oradata/dmpdir` > Fișierele DMP sunt accesibile direct, fără `docker cp`. ### Export Complet ROA2 (Script) ```bash # Rulează din LXC 108 pct exec 108 -- bash /opt/oracle/oradata/export-roa2.sh ``` Rezultat: `/opt/oracle/oradata/dmpdir/roa2_export_YYYYMMDD_HHMMSS.zip` ### Export Individual ```bash docker exec oracle-xe expdp system/romfastsoft@localhost:1521/roa2 \ SCHEMAS=FIRMANOUA DIRECTORY=DMPDIR DUMPFILE=firmanoua.dmp COMPRESSION=ALL docker exec oracle-xe expdp system/romfastsoft@localhost:1521/roa2 \ SCHEMAS=CONTAFIN_ORACLE DIRECTORY=DMPDIR DUMPFILE=contafin.dmp COMPRESSION=ALL ``` ### Import în PDB ```bash docker exec oracle-xe impdp system/romfastsoft@localhost:1521/roa \ SCHEMAS=FIRMANOUA DIRECTORY=DMPDIR DUMPFILE=firmanoua.dmp LOGFILE=firmanoua_import.log ``` ### Copiere DMP din LXC 108 în WSL ```bash scp root@10.0.20.201:/opt/oracle/oradata/dmpdir/firmanoua.dmp /mnt/e/backups/ ``` ### Recreare DMPDIR (dacă e necesar) ```bash # 1. Creează folder pe LXC 108 pct exec 108 -- mkdir -p /opt/oracle/oradata/dmpdir pct exec 108 -- chmod 777 /opt/oracle/oradata/dmpdir # 2. Creează DIRECTORY Oracle în fiecare PDB for pdb in XE roa roa2; do pct exec 108 -- docker exec oracle-xe bash -c "sqlplus -s sys/romfastsoft@localhost:1521/$pdb as sysdba < **Important:** Pentru export compatibil cu clienți Oracle 11g/18c/19c, folosește **oracle18-xe** (port 1522). ### Diferențe Oracle 10g vs 21c - **Oracle 10g** folosește SID (ORCL) - sistem vechi, decommissioned - **Oracle 21c** folosește SERVICE_NAME (roa, roa2) - sistem actual - Migrare: Export DMP Oracle 10g → Import Data Pump Oracle 21c (impdp) ### Profile Parole - **ROA:** Parolele pot expira (setări default Oracle) - **ROA2:** Parolele NU expiră (PASSWORD_LIFE_TIME UNLIMITED) ### VM 201 - Windows 11 (Client Aplicații) - **VMID:** 201 - **Nume:** roacentral - **Host:** 10.0.20.201 (Proxmox pvemini) - **OS:** Windows 11 (24H2) - **Rol:** Client pentru aplicații Windows, SQL*Plus client - **NU** rulează Oracle Database (migrat în LXC 108 Docker) --- ## 🔗 Legături Utile **Pentru detalii Proxmox generale (cluster, toate LXC-uri/VM-uri):** Vezi fișierul: `proxmox/proxmox-ssh-guide.md` **Oracle Enterprise Manager Express:** http://10.0.20.121:5500/em **Portainer Docker Management:** http://10.0.20.121:9443 --- **Data ultimei actualizări:** 2026-01-27 **Autor:** Marius Mutu **Proiect:** ROMFASTSQL - Oracle XE 18c/21c în Proxmox LXC