- Move oracle/CONEXIUNI-ORACLE.md → proxmox/oracle-database-lxc108.md - Create proxmox/README.md as documentation index - Update proxmox-ssh-guide.md: * Remove VM 107 references (decommissioned) * Update LXC and VM tables with IP addresses * Add IP address map for all services * Simplify Oracle section (detailed info in oracle-database-lxc108.md) * Update backup job configuration Benefits: - All infrastructure docs in proxmox/ directory - Clear separation: general Proxmox (proxmox-ssh-guide.md) vs Oracle-specific (oracle-database-lxc108.md) - No duplicate information between files - Easy navigation with README.md index 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
11 KiB
11 KiB
Oracle Database XE 21c - 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 Container: oracle-xe (Oracle XE 21c)
🐳 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 |
🔗 Conexiuni Oracle Database
Container Database (CDB)
- CDB Name: XE
- User SYS: sys / romfastsoft (CONTAINER=ALL)
- User SYSTEM: system / romfastsoft (CONTAINER=ALL)
Conexiune la CDB
# SQL*Plus
sqlplus sys/romfastsoft@10.0.20.121:1521/XE as sysdba
sqlplus system/romfastsoft@10.0.20.121:1521/XE
# JDBC
jdbc:oracle:thin:@10.0.20.121:1521/XE
📊 Pluggable Databases (PDB-uri)
1. PDB: ROA (Producție)
Informații Generale:
- Service Name: roa
- Scop: Bază de date producție pentru aplicații ROMFAST
Useri și Parole:
| User | Password | Rol |
|---|---|---|
| sys | romfastsoft | SYSDBA |
| system | romfastsoft | SYSTEM |
| CONTAFIN_ORACLE | OraclePass123 | Application schema |
| MARIUSM_AUTO | OraclePass123 | Application schema |
SQL*Plus:
sqlplus sys/romfastsoft@10.0.20.121:1521/roa as sysdba
sqlplus system/romfastsoft@10.0.20.121:1521/roa
sqlplus CONTAFIN_ORACLE/OraclePass123@10.0.20.121:1521/roa
sqlplus MARIUSM_AUTO/OraclePass123@10.0.20.121:1521/roa
JDBC:
jdbc:oracle:thin:@10.0.20.121:1521/roa
TNS Entry:
ROA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.20.121)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = roa)
)
)
2. PDB: ROA2 (Template pentru Export DMP)
Informații Generale:
- Service Name: roa2
- Scop: Template pentru scheme noi, export DMP pentru clienți noi
Useri și Parole:
| User | Password | Rol |
|---|---|---|
| sys | romfastsoft | SYSDBA |
| system | romfastsoft | SYSTEM |
| CONTAFIN_ORACLE | ROMFASTSOFT | Template schema |
| FIRMANOUA | ROMFASTSOFT | Template schema (client nou) |
SQL*Plus:
sqlplus sys/romfastsoft@10.0.20.121:1521/roa2 as sysdba
sqlplus system/romfastsoft@10.0.20.121:1521/roa2
sqlplus CONTAFIN_ORACLE/ROMFASTSOFT@10.0.20.121:1521/roa2
sqlplus FIRMANOUA/ROMFASTSOFT@10.0.20.121:1521/roa2
JDBC:
jdbc:oracle:thin:@10.0.20.121:1521/roa2
TNS Entry:
ROA2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.20.121)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = roa2)
)
)
Caracteristici ROA2:
- Tablespace ROA: 2GB (pentru teste/template)
- Profil DEFAULT: parole nelimitate (PASSWORD_LIFE_TIME UNLIMITED)
- Obiecte SYS custom: AUTH_PACK, UPDATESQLPLUS, EXECUTESCRIPTOS, UTL_MAIL
- 232 sinonime publice CONTAFIN_ORACLE
- 149 grant-uri către PUBLIC
🔧 Acces la Oracle prin LXC
IMPORTANT: Nu ai nevoie de user/parolă pentru LXC 108! Accesul se face prin Proxmox folosind comenzile
pct.
Metoda 1: Intrare în LXC 108
# 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
# 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
# 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
Export Schema FIRMANOUA din ROA2
# Export complet schema
ssh root@10.0.20.201 'pct exec 108 -- docker exec oracle-xe expdp system/romfastsoft@localhost:1521/roa2 \
SCHEMAS=FIRMANOUA \
DIRECTORY=DATA_PUMP_DIR \
DUMPFILE=firmanoua_template_%U.dmp \
LOGFILE=firmanoua_template.log \
PARALLEL=2'
Export Schema CONTAFIN_ORACLE din ROA2
ssh root@10.0.20.201 'pct exec 108 -- docker exec oracle-xe expdp system/romfastsoft@localhost:1521/roa2 \
SCHEMAS=CONTAFIN_ORACLE \
DIRECTORY=DATA_PUMP_DIR \
DUMPFILE=contafin_template_%U.dmp \
LOGFILE=contafin_template.log \
PARALLEL=2'
Import în PDB Nou
# Import schema în PDB existent
ssh root@10.0.20.201 'pct exec 108 -- docker exec oracle-xe impdp system/romfastsoft@localhost:1521/roa \
SCHEMAS=FIRMANOUA \
DIRECTORY=DATA_PUMP_DIR \
DUMPFILE=firmanoua_template_%U.dmp \
LOGFILE=firmanoua_import.log \
PARALLEL=2'
Copiere Fișiere DMP din/în Container
# Copiere DMP din Oracle container în LXC 108
ssh root@10.0.20.201 "pct exec 108 -- docker cp oracle-xe:/opt/oracle/admin/XE/dpdump/firmanoua_template_01.dmp /tmp/"
# Copiere DMP din LXC 108 în WSL
scp root@10.0.20.201:/var/lib/lxc/108/rootfs/tmp/firmanoua_template_01.dmp /mnt/e/backups/
# Copiere DMP în Oracle container (pentru import)
ssh root@10.0.20.201 "pct exec 108 -- docker cp /tmp/firmanoua_template_01.dmp oracle-xe:/opt/oracle/admin/XE/dpdump/"
🔍 Verificări și Comenzi SQL Utile
Status PDB-uri
-- Verificare status PDB-uri
SELECT name, open_mode, restricted FROM v$pdbs;
-- Deschidere PDB (dacă e MOUNTED)
ALTER PLUGGABLE DATABASE roa OPEN;
ALTER PLUGGABLE DATABASE roa2 OPEN;
ALTER PLUGGABLE DATABASE ALL SAVE STATE;
Verificare Tablespace-uri
-- Tablespace-uri și utilizare în ROA2
SELECT
tablespace_name,
ROUND(bytes/1024/1024, 2) as MB,
ROUND(maxbytes/1024/1024, 2) as MAX_MB,
autoextensible
FROM dba_data_files
WHERE tablespace_name='ROA';
-- Spațiu liber
SELECT
tablespace_name,
ROUND(SUM(bytes)/1024/1024, 2) as FREE_MB
FROM dba_free_space
GROUP BY tablespace_name;
Status Obiecte și Scheme
-- Număr obiecte per schema în ROA2
SELECT
owner,
COUNT(*) total_objects,
SUM(CASE WHEN status='VALID' THEN 1 ELSE 0 END) valid_objects,
SUM(CASE WHEN status='INVALID' THEN 1 ELSE 0 END) invalid_objects
FROM dba_objects
WHERE owner IN ('CONTAFIN_ORACLE', 'FIRMANOUA')
GROUP BY owner;
-- Tipuri obiecte
SELECT owner, object_type, COUNT(*)
FROM dba_objects
WHERE owner IN ('CONTAFIN_ORACLE', 'FIRMANOUA')
GROUP BY owner, object_type
ORDER BY owner, COUNT(*) DESC;
Useri și Profiluri
-- Verificare useri și profile în PDB
SELECT username, account_status, profile, created
FROM dba_users
WHERE username IN ('CONTAFIN_ORACLE', 'FIRMANOUA', 'MARIUSM_AUTO')
ORDER BY created DESC;
-- Verificare limită parole (PASSWORD_LIFE_TIME)
SELECT profile, resource_name, limit
FROM dba_profiles
WHERE resource_name = 'PASSWORD_LIFE_TIME'
ORDER BY profile;
Sinonime Publice
-- Verificare sinonime publice CONTAFIN_ORACLE
SELECT COUNT(*) as total_synonyms
FROM dba_synonyms
WHERE owner = 'PUBLIC'
AND table_owner = 'CONTAFIN_ORACLE';
-- Detalii sinonime
SELECT synonym_name, table_owner, table_name
FROM dba_synonyms
WHERE owner = 'PUBLIC'
AND table_owner = 'CONTAFIN_ORACLE'
ORDER BY synonym_name;
Grant-uri către PUBLIC
-- Număr grant-uri către PUBLIC
SELECT COUNT(*) as total_grants
FROM dba_tab_privs
WHERE grantee = 'PUBLIC'
AND owner IN ('CONTAFIN_ORACLE', 'SYS');
-- Detalii grant-uri
SELECT owner, table_name, privilege, grantee
FROM dba_tab_privs
WHERE grantee = 'PUBLIC'
AND owner IN ('CONTAFIN_ORACLE', 'SYS')
ORDER BY owner, table_name;
🚨 Troubleshooting Oracle
Verificare Conexiune Oracle
# Test ping LXC 108
ping -c 3 10.0.20.121
# Test port Oracle listener
nc -zv 10.0.20.121 1521
# Test SQL*Plus conexiune
sqlplus sys/romfastsoft@10.0.20.121:1521/roa as sysdba
Restart Oracle Database
# Opțiunea 1: Restart container Docker (RAPID)
ssh root@10.0.20.201 "pct exec 108 -- docker restart oracle-xe"
# Opțiunea 2: Restart LXC complet
ssh root@10.0.20.201 "pct restart 108"
# Verificare după restart
ssh root@10.0.20.201 "pct exec 108 -- docker ps"
Verificare Status Container
# Status Docker container
ssh root@10.0.20.201 "pct exec 108 -- docker ps"
# Healthcheck Oracle
ssh root@10.0.20.201 "pct exec 108 -- docker inspect oracle-xe | grep -A 10 Health"
# Loguri Oracle
ssh root@10.0.20.201 "pct exec 108 -- docker logs oracle-xe --tail 100"
PDB nu se deschide (MOUNTED)
# Deschidere manuală PDB
ssh root@10.0.20.201 'pct exec 108 -- docker exec oracle-xe bash -c "echo \"ALTER PLUGGABLE DATABASE ALL OPEN; ALTER PLUGGABLE DATABASE ALL SAVE STATE;\" | sqlplus -s sys/romfastsoft@localhost:1521/XE as sysdba"'
Probleme Maximum Open Cursors
-- Verificare valoare curentă
SELECT name, value FROM v$parameter WHERE name = 'open_cursors';
-- Creștere limită cursoare (dacă apar erori ORA-01000)
ALTER SYSTEM SET OPEN_CURSORS=1000 SCOPE=BOTH SID='*';
Verificare Alert Log Oracle
# Alert log location în container
ssh root@10.0.20.201 "pct exec 108 -- docker exec oracle-xe tail -100 /opt/oracle/diag/rdbms/xe/XE/trace/alert_XE.log"
📝 Notițe Importante
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)
Istoric Migrare
- VM 107 (Windows 7 Oracle 10g) - DECOMMISSIONED
- Fostă sursă Oracle 10g pentru migrare DMP
- Archive DMP: firmanoua.zip (backup arhivat)
- Status: Stopped/Removed (înlocuit de LXC 108)
🔗 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: 2025-11-19 Autor: Marius Mutu Proiect: ROMFASTSQL - Oracle XE 21c în Proxmox LXC