- 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>
436 lines
11 KiB
Markdown
436 lines
11 KiB
Markdown
# 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
|
|
```bash
|
|
# 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:**
|
|
```bash
|
|
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:**
|
|
```bash
|
|
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
|
|
```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
|
|
|
|
### Export Schema FIRMANOUA din ROA2
|
|
```bash
|
|
# 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
|
|
```bash
|
|
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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```sql
|
|
-- 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
|
|
```sql
|
|
-- 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
|
|
```sql
|
|
-- 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
|
|
```sql
|
|
-- 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
|
|
```sql
|
|
-- 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
|
|
```sql
|
|
-- 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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)
|
|
```bash
|
|
# 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
|
|
```sql
|
|
-- 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
|
|
```bash
|
|
# 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
|