From 76a2eb69c1824150d2299dd434a49b0b32700506 Mon Sep 17 00:00:00 2001 From: Marius Date: Sat, 8 Aug 2026 22:00:56 +0300 Subject: [PATCH] docs(oracle): SYS.INFO se recreeaza in ROA, nu se muta DROP+CREATE in loc de ALTER TABLE MOVE: continutul e log fara valoare, iar recrearea nu cere spatiu liber cat segmentul si nu tine tabela blocata cat ar dura copierea. DROP e cu PURGE, altfel segmentul ramane in recyclebin si spatiul nu se elibereaza. SYS.pINFO ramane INVALID dupa DROP, deci se recompileaza. Scriptul de livrare: SVN r18010. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01Rft5ofNa4Ux5VEh4YnhJRC --- docs/diagnostic-spatiu-clienti.md | 21 ++++++++++++------- docs/handoff_diagnostic-spatiu-oracle.md | 20 +++++++++++------- .../docs/00-INSTALL-ORACLE-SE.md | 12 +++++++++-- .../docs/00-INSTALL-ORACLE-XE.md | 13 ++++++++++-- 4 files changed, 48 insertions(+), 18 deletions(-) diff --git a/docs/diagnostic-spatiu-clienti.md b/docs/diagnostic-spatiu-clienti.md index 5dfa0bf..4be32ad 100644 --- a/docs/diagnostic-spatiu-clienti.md +++ b/docs/diagnostic-spatiu-clienti.md @@ -310,15 +310,22 @@ Jobul e in schema `SYS` pentru ca privilegiile `ANY` nu se aplica pe obiectele ` ### Livrarea catre clientii existenti `D:\ROA\DATABASE\SCRIPTURI_CLAR\2026\08\sys_2026_08_08_02_SYS_INFO_TABLESPACE_PURJARE.sql` -(repo COMUN / SVN) face acelasi lucru pe bazele deja instalate, in trei pasi: purjare la 90 de zile -→ `alter table sys.info move tablespace ROA lob (info) store as (tablespace ROA)` → crearea jobului. +(SVN r18010) face acelasi lucru pe bazele deja instalate, in doi pasi: **recrearea** tabelei in +tablespace-ul `ROA` (`drop table sys.info purge` + `create ... tablespace ROA lob (info) store as +(tablespace ROA)`) → crearea jobului. -Pasii 1 si 2 au `EXCEPTION WHEN OTHERS THEN NULL` **intentionat**: o eroare acolo (lipsa de spatiu -in `ROA`, tabela blocata) nu are voie sa opreasca lantul de actualizare al clientului, iar ce nu s-a -facut se vede a doua zi in alerta `DIAGSPATIU_ZILNIC`. Scris la nivel Oracle 10.2, idempotent, CRLF. +**Se recreeaza, nu se muta**: continutul e log fara valoare, iar `DROP`+`CREATE` nu cere spatiu +liber cat segmentul si nu tine tabela blocata cat ar dura copierea. `DROP` e cu `PURGE`, altfel +segmentul ramane in recyclebin si spatiul nu se elibereaza. Daca `CREATE`-ul in `ROA` esueaza, +tabela se recreeaza in `SYSTEM`, ca sa existe intotdeauna; `SYS.pINFO` ramane `INVALID` dupa `drop`, +deci se recompileaza explicit (s-ar recompila si singura la primul apel). -**Nepublicat inca** — publicarea se face cu `COMUN\utile\publicare_scripturi.ps1` si e o actiune -catre toti clientii. +Pasul 1 are `EXCEPTION WHEN OTHERS THEN NULL` **intentionat**: o eroare acolo nu are voie sa +opreasca lantul de actualizare al clientului, iar ce nu s-a facut se vede a doua zi in alerta +`DIAGSPATIU_ZILNIC`. Scris la nivel Oracle 10.2, idempotent, CRLF. + +**Nepublicat catre clienti** — publicarea se face cu `COMUN\utile\publicare_scripturi.ps1` si scrie +in `Y:\ROAUPDATE\_UPDATE\`, care e live pentru toti. Pointeri incrucisati: [`00-INSTALL-ORACLE-XE.md`](../proxmox/lxc108-oracle/roa-windows-setup/docs/00-INSTALL-ORACLE-XE.md) si [`00-INSTALL-ORACLE-SE.md`](../proxmox/lxc108-oracle/roa-windows-setup/docs/00-INSTALL-ORACLE-SE.md). diff --git a/docs/handoff_diagnostic-spatiu-oracle.md b/docs/handoff_diagnostic-spatiu-oracle.md index abc88d2..67beffd 100644 --- a/docs/handoff_diagnostic-spatiu-oracle.md +++ b/docs/handoff_diagnostic-spatiu-oracle.md @@ -16,18 +16,24 @@ Stare la predare. **Fara analize noi** — doar ce s-a facut, ce nu, si capcanel | `.../roa-windows-setup/sql/uninstall-roa.sql` | dezinstalarea sterge si jobul | | `.../roa-windows-setup/docs/00-INSTALL-ORACLE-XE.md` si `-SE.md` | pas post-instalare: plafon `SYSTEM` 2000M + mutarea `SYS.INFO` la instalari vechi | -### In SVN (r18009), **NEPUBLICAT catre clienti** — in afara acestui repo +### In SVN (r18010), **NEPUBLICAT catre clienti** — in afara acestui repo `D:\ROA\DATABASE\SCRIPTURI_CLAR\2026\08\sys_2026_08_08_02_SYS_INFO_TABLESPACE_PURJARE.sql` -Purjare 90 zile → `move tablespace ROA lob (info) store as (tablespace ROA)` → creare job. -Nivel Oracle 10.2, idempotent, CRLF verificat (122 linii, 0 LF singure, 0 octeti non-ASCII). -Pasii 1-2 au `EXCEPTION WHEN OTHERS THEN NULL` **intentionat** (o eroare acolo nu are voie sa +Doi pasi: **recrearea** tabelei in `ROA` (`drop table sys.info purge` + `create ... tablespace ROA +lob (info) store as (tablespace ROA)` + `alter procedure sys.pinfo compile`) → creare job. +Nivel Oracle 10.2, idempotent, CRLF verificat (103 linii, 0 LF singure, 0 octeti non-ASCII). + +**r18009 muta tabela** (`alter table ... move`); **r18010 o recreeaza** — decizia lui Marius: +continutul e log fara valoare, iar `DROP`+`CREATE` nu cere spatiu liber cat segmentul si nu tine +tabela blocata. `PURGE` e obligatoriu (altfel segmentul ramane in recyclebin). Fallback pe `SYSTEM` +daca `CREATE`-ul in `ROA` esueaza, ca tabela sa existe intotdeauna. + +Pasul 1 are `EXCEPTION WHEN OTHERS THEN NULL` **intentionat** (o eroare acolo nu are voie sa opreasca lantul de actualizare; ce n-a mers apare a doua zi in alerta `DIAGSPATIU_ZILNIC`). -Comis in SVN la **r18009** (08.08.2026). **Publicarea catre clienti NU s-a facut si e decizia lui -Marius** — `COMUN\utile\publicare_scripturi.ps1` scrie in `Y:\ROAUPDATE\_UPDATE\`, care e live -pentru toti clientii. +**Publicarea catre clienti NU s-a facut si e decizia lui Marius** — +`COMUN\utile\publicare_scripturi.ps1` scrie in `Y:\ROAUPDATE\_UPDATE\`, care e live pentru toti. ## 2. Modificari aplicate in productie diff --git a/proxmox/lxc108-oracle/roa-windows-setup/docs/00-INSTALL-ORACLE-SE.md b/proxmox/lxc108-oracle/roa-windows-setup/docs/00-INSTALL-ORACLE-SE.md index 3c6dcc4..4c42780 100644 --- a/proxmox/lxc108-oracle/roa-windows-setup/docs/00-INSTALL-ORACLE-SE.md +++ b/proxmox/lxc108-oracle/roa-windows-setup/docs/00-INSTALL-ORACLE-SE.md @@ -193,10 +193,18 @@ SELECT file_name, ROUND(bytes/1048576,2) mb, ROUND(maxbytes/1048576,2) max_mb, a FROM dba_data_files WHERE tablespace_name = 'SYSTEM'; ``` -La o instalare mai veche, unde `SYS.INFO` a rămas în `SYSTEM`: +La o instalare mai veche, unde `SYS.INFO` a rămas în `SYSTEM`, tabela se **recreează** (conținutul e +log fără valoare). `PURGE` e obligatoriu, altfel segmentul rămâne în recyclebin și spațiul nu se +eliberează: ```sql -ALTER TABLE SYS.INFO MOVE TABLESPACE ROA LOB (INFO) STORE AS (TABLESPACE ROA); +DROP TABLE SYS.INFO PURGE; +CREATE TABLE SYS.INFO ( + INFO CLOB, + DATAORA TIMESTAMP(6) DEFAULT SYSTIMESTAMP, + LOCATIA VARCHAR2(200) NULL +) TABLESPACE ROA LOB (INFO) STORE AS (TABLESPACE ROA); +ALTER PROCEDURE SYS.PINFO COMPILE; -- rămâne INVALID după DROP ``` > Diagnosticul zilnic care prinde asta automat, pragurile și triajul alertelor: diff --git a/proxmox/lxc108-oracle/roa-windows-setup/docs/00-INSTALL-ORACLE-XE.md b/proxmox/lxc108-oracle/roa-windows-setup/docs/00-INSTALL-ORACLE-XE.md index bf7a6fd..5118246 100644 --- a/proxmox/lxc108-oracle/roa-windows-setup/docs/00-INSTALL-ORACLE-XE.md +++ b/proxmox/lxc108-oracle/roa-windows-setup/docs/00-INSTALL-ORACLE-XE.md @@ -338,10 +338,19 @@ SELECT file_name, ROUND(bytes/1048576,2) mb, ROUND(maxbytes/1048576,2) max_mb, a Plafonul de 11/12 GB al editiei XE se aplica pe **date utilizator** — `SYSTEM` si `SYSAUX` nu intra la socoteala, deci ridicarea la 2000 MB nu apropie baza de limita. -La o instalare mai veche, unde `SYS.INFO` a ramas in `SYSTEM`, mutarea se face cu: +La o instalare mai veche, unde `SYS.INFO` a ramas in `SYSTEM`, tabela se **recreeaza** (continutul e +log fara valoare; `DROP`+`CREATE` nu cere spatiu liber cat segmentul si nu blocheaza tabela cat ar +dura o copiere). `PURGE` e obligatoriu, altfel segmentul ramane in recyclebin si spatiul nu se +elibereaza: ```sql -ALTER TABLE SYS.INFO MOVE TABLESPACE ROA LOB (INFO) STORE AS (TABLESPACE ROA); +DROP TABLE SYS.INFO PURGE; +CREATE TABLE SYS.INFO ( + INFO CLOB, + DATAORA TIMESTAMP(6) DEFAULT SYSTIMESTAMP, + LOCATIA VARCHAR2(200) NULL +) TABLESPACE ROA LOB (INFO) STORE AS (TABLESPACE ROA); +ALTER PROCEDURE SYS.PINFO COMPILE; -- ramane INVALID dupa DROP ``` > Diagnosticul zilnic care prinde asta automat, pragurile lui si triajul alertelor: