diff --git a/proxmox/lxc108-oracle/clienti/README.md b/proxmox/lxc108-oracle/clienti/README.md index 90a262f..cb32dc6 100644 --- a/proxmox/lxc108-oracle/clienti/README.md +++ b/proxmox/lxc108-oracle/clienti/README.md @@ -10,6 +10,12 @@ scripturile reutilizabile generate din fiecare caz. |--------|--------|----------|---------|----------| | **ROMPETROL ENERGY** | `ROMPETROLE` | Oracle XE 21c CDB plin (ORA-12954, limita 12 GB) — SYSAUX umflat de SQL Tuning Sets, AWR, audit policies. Cleanup parțial nu a recuperat spațiul (datafile-uri nu s-au putut shrink-ui). | Recreare PDB `XEPDB1` din `PDB$SEED` + reimport scheme cu `remap_tablespace=USERS:ROA`. Total alocat: 13.5 GB → ~3 GB. | [`oracle-xe-21c/`](oracle-xe-21c/) | +## Proceduri generale + +| Procedură | Fișier | +|-----------|--------| +| Import DMP client pentru teste în LXC 108 | [`import-test-lxc108.md`](import-test-lxc108.md) | + ## Convenție Fiecare caz are propriul director cu: diff --git a/proxmox/lxc108-oracle/clienti/expdp_acn_nodata.par b/proxmox/lxc108-oracle/clienti/expdp_acn_nodata.par new file mode 100644 index 0000000..1ac3d2b --- /dev/null +++ b/proxmox/lxc108-oracle/clienti/expdp_acn_nodata.par @@ -0,0 +1,8 @@ +SCHEMAS=ACN +DIRECTORY=DMPDIR +DUMPFILE=acn_nodata_%U.dmp +FILESIZE=2G +PARALLEL=2 +COMPRESSION=ALL +LOGFILE=acn_export_nodata.log +EXCLUDE=TABLE_DATA:"IN ('GEST_INVENTAR','ACT','IPS_VOYAGE_LOCKS','IREG_PARTENERI','LOG','STOC_OBINV','BALANTA_PARTENERI','IPS_VOYAGE_MEMBERS','IPS_VOYAGE_MEMBERS_VANZARI','INFO','VANZARI_DETALII','VANZARI','IPS_REGDOC','IPS_CARGOES','ANAF_EFACTURA','STOC','IPS_VOYAGES','JV2007','RUL','IPS_REGDOC_190822','IPS_BERTHINGS','DOCUMENTE','ANAF_EFACTURA_DETALII','TUW_SEL_TAB','JC2007','IPS_VOYAGES_VANZARI','IPS_BERTHINGS_VANZARI','RUL_OBINV','BALANA','PENALITATI','PLCONT','SERII_NUMERE','IPS_BERTHING_DETAILS_VANZARI','VANZARI_CURSURI','STOC_OBINV_2024','IMOBF_CALCUL_RATE','IPS_VESSELS','IMOB_CALCUL_RATE','IPS_BERTHINGS14','BAL')" diff --git a/proxmox/lxc108-oracle/clienti/import-test-lxc108.md b/proxmox/lxc108-oracle/clienti/import-test-lxc108.md new file mode 100644 index 0000000..697f9c6 --- /dev/null +++ b/proxmox/lxc108-oracle/clienti/import-test-lxc108.md @@ -0,0 +1,162 @@ +# Import DMP client pentru teste — LXC 108 Oracle 21c + +Procedură pentru importul unui DMP din producție (Oracle 19c SE2) în LXC 108 +(Oracle 21c XE, PDB ROA) în scopul testelor. Schema se șterge după teste. + +--- + +## Pregătire: ce trebuie știut dinainte + +| | Valoare | +|--|--| +| Schema client | ex: `ACN` | +| Parola Oracle LXC 108 | `romfastsoft` | +| Director DMP pe producție (Windows) | `C:\DMPDIR` | +| Director DMP pe LXC 108 | `/opt/oracle/oradata/dmpdir/` | +| PDB țintă | `roa` (port 1521) | + +--- + +## Pasul 1 — Export din producție (Windows) + +Identifici tabelele mari ca să le excluzi din export (DMP mai mic): + +```sql +-- Rulează pe producție cu sqlplus +SELECT * FROM ( + SELECT segment_name, ROUND(SUM(bytes)/1024/1024, 2) AS mb + FROM dba_segments + WHERE segment_type = 'TABLE' AND owner = 'SCHEMA_CLIENT' + GROUP BY segment_name + ORDER BY mb DESC +) WHERE ROWNUM <= 20; +``` + +Creezi parfile `C:\DMPDIR\export.par` (ajustezi lista de tabele excluse): + +``` +SCHEMAS=SCHEMA_CLIENT +DIRECTORY=DMPDIR +DUMPFILE=client_nodata_%U.dmp +FILESIZE=2G +LOGFILE=client_export_nodata.log +EXCLUDE=TABLE_DATA:"IN ('TABEL_MARE1','TABEL_MARE2','TABEL_MARE3')" +``` + +Rulezi exportul din CMD: + +```cmd +expdp system/PAROLA@localhost:1521/SERVICIU PARFILE=C:\DMPDIR\export.par +``` + +--- + +## Pasul 2 — Transfer DMP pe LXC 108 + +Din Windows CMD/PowerShell, copiezi DMP-urile pe Proxmox: + +```cmd +scp C:\DMPDIR\client_nodata_*.dmp root@10.0.20.201:/tmp/ +``` + +De pe Proxmox, muți în containerul Oracle (repetă pentru fiecare fișier): + +```bash +ssh root@10.0.20.201 +pct push 108 /tmp/client_nodata_01.dmp /opt/oracle/oradata/dmpdir/client_nodata_01.dmp +pct push 108 /tmp/client_nodata_02.dmp /opt/oracle/oradata/dmpdir/client_nodata_02.dmp +``` + +--- + +## Pasul 3 — Creare user în Oracle LXC 108 + +Cu sqlplus direct din Windows: + +```cmd +sqlplus sys/romfastsoft@10.0.20.121:1521/roa as sysdba +``` + +```sql +CREATE USER SCHEMA_CLIENT IDENTIFIED BY ROMFASTSOFT + DEFAULT TABLESPACE ROA QUOTA UNLIMITED ON ROA; +GRANT CONNECT, RESOURCE, DBA TO SCHEMA_CLIENT; +EXIT; +``` + +--- + +## Pasul 4 — Import DMP + +Din Windows CMD: + +```cmd +impdp system/romfastsoft@10.0.20.121:1521/roa SCHEMAS=SCHEMA_CLIENT DIRECTORY=DMPDIR DUMPFILE=client_nodata_%U.dmp REMAP_TABLESPACE=SCHEMA_CLIENT:ROA LOGFILE=client_import.log +``` + +Log import: `/opt/oracle/oradata/dmpdir/client_import.log` + +> **Warning ORA-28002** (parola expiră în N zile) — inofensiv, importul merge. +> Fix permanent (o singură dată per PDB): +> ```sql +> -- conectat la roa ca sysdba +> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; +> ``` + +--- + +## Pasul 5 — Verificare după import + +```cmd +sqlplus SCHEMA_CLIENT/ROMFASTSOFT@10.0.20.121:1521/roa +``` + +```sql +-- Număr obiecte importate +SELECT object_type, COUNT(*) FROM user_objects GROUP BY object_type ORDER BY 2 DESC; + +-- Tabele goale (cele excluse din export) +SELECT table_name, num_rows FROM user_tables WHERE num_rows = 0 ORDER BY table_name; +EXIT; +``` + +--- + +## Pasul 6 — Timeout ODBC (dacă apare ORA-12609) + +Dacă aplicația Windows primește eroare de timeout la operații lungi, șterge sau +mărește `SQLNET.RECV_TIMEOUT` din `sqlnet.ora` pe clientul Windows. + +Locație tipică: `C:\oracle\instantclient\network\admin\sqlnet.ora` + +Șterge sau comentează linia: +``` +# SQLNET.RECV_TIMEOUT=60 +``` + +--- + +## Pasul 7 — Cleanup după teste + +```cmd +sqlplus sys/romfastsoft@10.0.20.121:1521/roa as sysdba +``` + +```sql +DROP USER SCHEMA_CLIENT CASCADE; +EXIT; +``` + +Șterge și DMP-urile de pe LXC 108 (opțional): + +```bash +ssh root@10.0.20.201 "pct exec 108 -- rm /opt/oracle/oradata/dmpdir/client_nodata_*.dmp" +``` + +--- + +## Referințe + +- Parfile ACN (exemplu real): [`expdp_acn_nodata.par`](expdp_acn_nodata.par) +- Configurare LXC 108: [`../README.md`](../README.md) +- PDB ROA conexiune: `10.0.20.121:1521/roa`