fix(oracle): SYS.INFO iese din SYSTEM + job de purjare + diagnostic spatiu clienti
SYS.INFO e log de aplicatie (SYS.pINFO din AUTH_PACK scrie ~7 randuri la fiecare conectare, ~13.500 randuri / ~2 MB pe luna) si nimic din baza nu-l citeste. Creat de installer in tablespace-ul SYSTEM si nepurjat niciodata, a umplut SYSTEM la doi clienti si a oprit actualizarea cu ORA-01653 - eroarea apare pe orice script, pentru ca AUTH_PACK scrie acolo la conectare. SIGMA 03.08.2026 - ff_2026_07_29_02_COMUN_TVA11 picat pe MARCU AUTOMOTIVE 08.08.2026 - 552.581 randuri / 80 MB, SYSTEM cu 5 MB liberi Installer: - sys-objects.sql: SYS.INFO (tabela + segment LOB) se creeaza in tablespace-ul ROA, cu fallback pe SYSTEM daca ROA inca nu exista - scheduler-jobs.sql: job nou SYS.SYSINFO_PURJARE_ZILNIC, zilnic 03:30, retentie 90 zile, stergere in transe de 10.000 randuri; creat ENABLED, pentru ca nu are nimic de configurat iar uitat dezactivat reproduce chiar problema pe care o rezolva. In schema SYS: privilegiile ANY nu se aplica pe obiectele SYS cat timp O7_DICTIONARY_ACCESSIBILITY=FALSE - uninstall-roa.sql: dezinstalarea sterge si jobul - 00-INSTALL-ORACLE-XE.md / -SE.md: pas post-instalare pentru plafonul SYSTEM (maxsize 2000M) si mutarea SYS.INFO la instalarile vechi Documentatie noua (docs/diagnostic-spatiu-clienti.md): jobul DIAGSPATIU_ZILNIC si pragurile lui, formatul emailurilor de alerta si cum se citesc din mbox-urile Thunderbird, procedura de tunel SSH catre serverul unui client, triajul alertelor si starea la 08.08.2026 pe fiecare client. Reparatia la AUTOMOTIVE e deja aplicata in productie (plafon 600 -> 2000 MB, truncate SYS.INFO): SYSTEM a trecut de la 65 MB la 1545 MB de crestere posibila. Scriptul de livrare pentru ceilalti clienti e scris, dar nepublicat: COMUN sys_2026_08_08_02_SYS_INFO_TABLESPACE_PURJARE.sql Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Rft5ofNa4Ux5VEh4YnhJRC
This commit is contained in:
@@ -47,6 +47,7 @@ input/ # Oracle DMP files for import
|
||||
- **Disaster recovery**: `proxmox/vm109-windows-dr/README.md`
|
||||
- **ROA Windows setup scripts (XE/SE 21c)**: `proxmox/lxc108-oracle/roa-windows-setup/README.md`
|
||||
- **VM 302 test environment for ROA setup**: `proxmox/vm302-oracle-test/README.md`
|
||||
- **Diagnostic spațiu Oracle la clienți (job zilnic + emailuri)**: `docs/diagnostic-spatiu-clienti.md`
|
||||
- **Cazuri clienți (depanare DB)**: `proxmox/lxc108-oracle/clienti/README.md`
|
||||
- **ROMPETROL ENERGY — recreare PDB Oracle XE 21c după ORA-12954**: `proxmox/lxc108-oracle/clienti/oracle-xe-21c/README.md`
|
||||
|
||||
|
||||
337
docs/diagnostic-spatiu-clienti.md
Normal file
337
docs/diagnostic-spatiu-clienti.md
Normal file
@@ -0,0 +1,337 @@
|
||||
# Diagnostic spatiu Oracle la clienti — unde sunt lucrurile si cum se citesc
|
||||
|
||||
Nota de referinta, ca sa nu se mai caute nimic de la zero. Sursa efectiva a scripturilor e repo-ul
|
||||
**COMUN**; aici stau doar pointerii + cum se citesc emailurile + cum se interpreteaza alertele.
|
||||
|
||||
## 1. Unde sunt scripturile (repo COMUN)
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Remote | `git@gitea.romfast.ro:romfast/comun.git` |
|
||||
| Clona locala | `D:\roa\roagest\comun` |
|
||||
|
||||
| Fisier | Ce e |
|
||||
|---|---|
|
||||
| `docs\depanare-spatiu-oracle.md` | **documentul de baza** — jobul, mecanismele reutilizabile, ce umple spatiul in ordinea frecventei, cazuri, capcane |
|
||||
| `docs\PACK_DIAG_SPATIU.pck` | sursa de referinta a pachetului rulat in baza clientului |
|
||||
| `docs\email-thunderbird.md` | cum se citesc mbox-urile Thunderbird |
|
||||
| `docs\depanare-pack-update.md` | actualizarea blocata de spatiu (punctul de plecare cand PACK_UPDATE cade) |
|
||||
| `utile\diag_spatiu.ps1` | diagnosticul manual, din afara: `powershell -File COMUN\utile\diag_spatiu.ps1 -Alias <ALIAS_TNS> [-Disc] [-SysPassword <parola>] [-Top 30]` — strict read-only in afara lui `-Disc`, curatarea e doar **sugerata** |
|
||||
| `utile\citeste_email.ps1` | listare/citire mesaje din mbox |
|
||||
|
||||
## 2. Jobul automat din baza clientului
|
||||
|
||||
`DIAGSPATIU_ZILNIC` — ruleaza **zilnic la 06:00** la fiecare client, e echivalentul in baza al lui
|
||||
`diag_spatiu.ps1`.
|
||||
|
||||
- tabela de istoric `DIAG_SPATIU_LOG` (purjata la 90 zile), pachetul `PACK_DIAG_SPATIU`
|
||||
- scripturi de livrare: `co_2026_08_03_02` (tabela), `co_2026_08_03_03` (pachet),
|
||||
`co_2026_08_03_04` (jobul), `sys_2026_08_03_05` (granturi directe — rolurile nu se aplica in
|
||||
pachete cu drepturi de definitor)
|
||||
- corectii ulterioare: `co_2026_08_06_01_DIAG_SPATIU_PACK` (praguri + log complet in email),
|
||||
`co_2026_08_06_08_DIAG_SPATIU_PACK` + `sys_2026_08_06_07_DIAG_SPATIU_GRANT3` (tabela/coloana de
|
||||
provenienta la top segmente)
|
||||
|
||||
### Praguri (exact, din pachet)
|
||||
|
||||
`tnPragTsMb = 2048` MB absolut, `tnPragFraPct = 75` %, `CT_PRAG_REL_PCT = 15` %.
|
||||
|
||||
Pentru fiecare tablespace se calculeaza **cat mai poate creste**:
|
||||
|
||||
```
|
||||
poate_creste = liber_in_datafile + (maxbytes - alocat)
|
||||
```
|
||||
|
||||
si se alerteaza cand `poate_creste` scade sub:
|
||||
|
||||
```
|
||||
max <= 2048 MB -> 15% din max (doar garda relativa)
|
||||
max > 2048 MB -> GREATEST(2048 MB, 15% din max)
|
||||
```
|
||||
|
||||
Pragul absolut se **sare** pe tablespace-urile cu maximul sub el (UNDO, SYSTEM mic) — altfel ar
|
||||
alerta zilnic prin definitie. Asta e fix-ul din `co_2026_08_06_01`; **un client care alerteaza pe
|
||||
un tablespace cu max <= 2048 MB si mult spatiu liber nu are inca acest script aplicat.**
|
||||
|
||||
Alte doua verificari cu prag: **FRA** (`percent_space_used >= 75`) si **plafonul editiei XE**
|
||||
(4/11/12 GB dupa versiune, numarand doar datele de utilizator — fara SYSTEM/SYSAUX/UNDO/TEMP;
|
||||
alerta sub `GREATEST(2048 MB, 15% din plafon)`).
|
||||
|
||||
Sectiunile informative (recyclebin, UNDO, TEMP, istoric statistici/scheduler, top segmente, audit
|
||||
SYS, disc) se scriu **doar cand exista deja o alerta** — dau context, nu alerteaza singure.
|
||||
|
||||
## 3. Emailurile
|
||||
|
||||
- destinatar: **`marius.mutu@romfast.ro`**
|
||||
- expeditor: **cate unul per client** — `roaupdate_acn@`, `roaupdate-sigma@`,
|
||||
`roaupdate-clever@`, `roaupdate-automotive@` … (`roaupdate[-_]<client>@romfast.ro`)
|
||||
- subiect: `Diagnostic spatiu Oracle <BAZA> <dd.mm.yyyy> <hh:mi>` (`<BAZA>` = numele bazei:
|
||||
`XE`, `ROA`, `XEPDB1` — **nu** numele clientului; clientul se ia din expeditor)
|
||||
- corp: liniile de alerta, apoi (dupa `co_2026_08_06_01`) tot logul rularii cu `!` pe randurile
|
||||
peste prag, plafonat la 30000 de caractere
|
||||
|
||||
Linia de tablespace se citeste asa:
|
||||
|
||||
```
|
||||
TABLESPACE SYSTEM: 65 - alocat=540MB max=600MB liber=5MB
|
||||
^^ ^^^
|
||||
| liber in datafile-ul deja alocat
|
||||
cat mai poate creste = 5 + (600-540) = 65 MB
|
||||
```
|
||||
|
||||
**Emailul vine doar la prag depasit. Tacere = totul in regula** — dar tacerea inseamna si "jobul
|
||||
nu a rulat", deci la un client care alerta si s-a oprit brusc se confirma cu ultima `dataora` din
|
||||
`DIAG_SPATIU_LOG`, nu se presupune ca s-a rezolvat.
|
||||
|
||||
## 4. Cum se citesc emailurile (Thunderbird Portable, local)
|
||||
|
||||
Conectorul Gmail din Claude vede **doar** `mmarius28@gmail.com`. Conturile de lucru se citesc din
|
||||
mbox-urile Thunderbird Portable:
|
||||
|
||||
```
|
||||
D:\UTIL\portable\PortableApps\ThunderbirdPortable\Data\profile\ImapMail\mail.romfast.ro\INBOX
|
||||
```
|
||||
|
||||
- `mail.romfast.ro` = **`marius.mutu@romfast.ro`** (server3 in `prefs.js`) — contul cautat
|
||||
- `mail.romfast-1.ro` = `office@romfast.ro` (server8)
|
||||
- restul conturilor sunt vechi de ani
|
||||
- profilul din `%APPDATA%\Thunderbird\Profiles` e gol si induce in eroare — **instalarea folosita e
|
||||
cea portabila de pe D:**; se confirma cu `Get-Process thunderbird | Select Path`
|
||||
|
||||
Varianta cu scriptul din COMUN:
|
||||
|
||||
```powershell
|
||||
powershell -File D:\roa\roagest\comun\utile\citeste_email.ps1 -Cauta 'Diagnostic spatiu' -Ultimele 10
|
||||
powershell -File D:\roa\roagest\comun\utile\citeste_email.ps1 -Nr <linie> [-Linii 200]
|
||||
```
|
||||
|
||||
Varianta fara script, care extrage direct toate diagnosticele (expeditor + subiect + alerte):
|
||||
|
||||
```powershell
|
||||
$f='D:\UTIL\portable\PortableApps\ThunderbirdPortable\Data\profile\ImapMail\mail.romfast.ro\INBOX'
|
||||
$from=''
|
||||
Get-Content $f -ReadCount 0 | ForEach-Object { $_ } | ForEach-Object {
|
||||
if ($_ -like 'From: *') { $from = $_.Substring(6) }
|
||||
elseif ($_ -like 'Subject: Diagnostic spatiu*') { "`n### $($_.Substring(9)) [$from]" }
|
||||
elseif ($_ -like 'TABLESPACE *') { " $_" }
|
||||
}
|
||||
```
|
||||
|
||||
Capcane la citire:
|
||||
|
||||
- **nu da `Grep`/ripgrep pe folderul de mail** — `INBOX.sbd\Sent` are ~2.5 GB si cautarea expira;
|
||||
tinteste fisierul `INBOX` direct
|
||||
- numerotarea liniilor difera intre unelte (mbox-ul are linii cu `\r` singur) — pentru `-Nr`
|
||||
foloseste numarul dat de `citeste_email.ps1`
|
||||
- Thunderbird tine fisierul deschis → citire doar cu `FileShare::ReadWrite`
|
||||
- mesajele sunt in ordine cronologica, **cel mai nou la sfarsitul fisierului**, separator
|
||||
`From - <data>`
|
||||
|
||||
## 5. Triaj: ce fac cand vine o alerta
|
||||
|
||||
1. **Verifica intai daca alerta e reala.** `max <= 2048 MB` + `poate_creste` peste 15% din max =
|
||||
fals pozitiv din pragul absolut → clientul n-are `co_2026_08_06_01`. Se stinge singura la
|
||||
urmatoarea actualizare, nu se atinge baza.
|
||||
2. **Alerta reala pe SYSTEM/SYSAUX plafonat mic** — tiparul SIGMA: blocheaza `PACK_UPDATE`.
|
||||
Continua cu `COMUN\docs\depanare-pack-update.md`.
|
||||
3. **Alerta reala pe tablespace-ul de date** — cere contextul (top segmente cu `DetaliuSegment`,
|
||||
disc) din email sau din `DIAG_SPATIU_LOG`, apoi:
|
||||
- segmente `TEMPORARY` orfane intr-un tablespace permanent → `v$sort_usage` gol? curatare
|
||||
fortata ca `SYS` (vezi capcanele din `depanare-spatiu-oracle.md`)
|
||||
- LOB umflat → `alter table t move lob (col) store as (...)`, **nu** `shrink space` pe MSSM
|
||||
(`ORA-10635`)
|
||||
- tabele de log ale aplicatiei crescute nelimitat
|
||||
4. **Nu se vede din SQL** (fisiere `.aud`, alert log, trace): `diag_spatiu.ps1 -Disc`, doar pe
|
||||
servere Windows.
|
||||
5. **Intai ridici plafonul, apoi cureti** — curatenia insasi poate esua din lipsa de spatiu.
|
||||
|
||||
## 6. Tunel SSH catre serverul unui client
|
||||
|
||||
Regula din `COMUN\docs\local\oracle.md`: tunelul spre productie se foloseste **doar cand acel
|
||||
server e chiar subiectul investigatiei, si atunci strict read-only**. Testele se fac pe
|
||||
`ROA_CENTRAL`, nu prin tunel.
|
||||
|
||||
Profilele Bitvise SSH Client stau in **`D:\GoogleDrive\<client>.tlp`** (ex. `sigma.tlp` →
|
||||
`romfast@82.137.26.46:22122`). Profilul are parola si cheia gazdei salvate si primeste regulile de
|
||||
forwarding **de la server** (`ROA Oracle` = `127.0.0.1:1521`, `ROA Update` = `127.0.0.1:80` —
|
||||
a doua esueaza cu Windows error 10013, e normal si nu incurca).
|
||||
|
||||
```powershell
|
||||
# 0. verifica intai ca nu e deja un tunel deschis spre ALT client
|
||||
Get-NetTCPConnection -State Listen -LocalPort 1521
|
||||
|
||||
# 1. deschide tunelul (fara -c2s: regulile vin de la server; `--%` opreste parsarea PowerShell)
|
||||
& 'C:\Program Files (x86)\Bitvise SSH Client\stnlc.exe' --% -profile=d:\GoogleDrive\sigma.tlp -noRegistry=y
|
||||
|
||||
# 2. conecteaza-te (alias TNS pe 127.0.0.1, SQL-ul dintr-un fisier, nu prin pipe)
|
||||
& 'D:\ROA\instantclient_19_18\sqlplus.exe' -L -S 'contafin_oracle/ROMFASTSOFT@ROA_SIGMA' '@diag.sql'
|
||||
|
||||
# 3. INCHIDE tunelul cand ai terminat
|
||||
Get-Process stnlc | Stop-Process -Force
|
||||
```
|
||||
|
||||
Capcane:
|
||||
|
||||
- `-profile=` si un host pozitional **nu merg impreuna** (`ERROR: The host and -profile parameters
|
||||
cannot be used together`) — daca dai si `-c2s=`, scrie regulile cu **virgula**, nu cu doua puncte.
|
||||
- aliasurile de client din `D:\ROA\instantclient_19_18\tnsnames.ora` tintesc toate
|
||||
`127.0.0.1:1521` (`ROA_SIGMA` → `SID=XE`), deci **un tunel gresit te duce tacut la alt client** —
|
||||
de aici verificarea de la pasul 0 si `select instance_name, host_name from v$instance` ca prima
|
||||
interogare.
|
||||
- serverele de client pot fi Oracle **11.2 XE** (SIGMA e `11.2.0.2` pe `DESKTOP-ETLNAPG`) — plafonul
|
||||
editiei e 11 GB, iar unele coloane din `dba_scheduler_*` lipsesc.
|
||||
|
||||
## 7. Situatia la 08.08.2026 (din INBOX)
|
||||
|
||||
Primele diagnostice in INBOX sunt din 05.08.2026 (jobul a fost livrat pe 03.08).
|
||||
|
||||
| Data | Client (expeditor) | Baza | Alerta | Verdict |
|
||||
|---|---|---|---|---|
|
||||
| 05–08.08 | `automotive` | XE | `SYSTEM: 65 - alocat=540MB max=600MB liber=5MB` | **reala, cronica, neschimbata 4 zile** |
|
||||
| 05–06.08 | `automotive` | XE | `UNDOTBS1: ~487 / max 500MB` | fals pozitiv; **dispare din 07.08** = pack nou aplicat |
|
||||
| 05.08 | `acn` | ROA | `ROA: 2141.81 / max 32767.98MB` (6.5%) | reala |
|
||||
| 06.08 | `acn` | ROA | `ROA: 1716.81 / max 32767.98MB` (5.2%) | reala, −425 MB/zi; rulare manuala repetata la 10:48 |
|
||||
| 07–08.08 | `acn` | — | tacere | probabil curatenia din 06.08 (segmente `TEMPORARY` orfane + `move lob`) — **de confirmat** |
|
||||
| 06–07.08 | `sigma` | XE | `SYSTEM: ~1481 / max 2000MB` (74% liber), `UNDOTBS1: ~480 / max 500MB` | fals pozitiv; **verificat prin tunel — nimic de facut** (vezi mai jos) |
|
||||
| 05–06.08 | `clever` | XEPDB1 | `UNDOTBS2: ~2013 / max 2048MB` (98% liber) | fals pozitiv; **dispare din 07.08** |
|
||||
|
||||
**Singura problema reala ramasa: `automotive`, `SYSTEM` plafonat la 600 MB.** Nu se misca de 4
|
||||
zile, deci nimeni n-a intervenit; e exact tiparul care blocheaza actualizarea.
|
||||
|
||||
### AUTOMOTIVE — verificat prin tunel, 08.08.2026 (read-only)
|
||||
|
||||
`xe 11.2.0.2` pe host `SERVER` (`78.96.115.213`, profil `automotive.tlp`). **Alerta e reala si
|
||||
cauza e identificata** — acelasi tipar ca la SIGMA pe 03.08:
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Datafile | `E:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF` |
|
||||
| Dimensiune / plafon | 540 MB / **600 MB**, `autoextend YES next 10M` |
|
||||
| Liber in datafile | **5 MB, o singura extenta** (+60 MB pana la plafon) |
|
||||
| Cel mai mare segment din `SYSTEM` | **`SYS.INFO` = 80 MB**, peste `IDL_UB1$` (62) si `SOURCE$` (56) |
|
||||
| `SYS.INFO` | **552.576 randuri** din 18.03.2023, ~13.578 randuri/luna (~2 MB/luna) |
|
||||
| `AUD$` / `FGA_LOG$` / recyclebin | goale (.06 MB / .06 MB / 0) |
|
||||
|
||||
Restul e sanatos: `ROA` 5440/32768 MB, `SYSAUX` 940/32768, `UNDOTBS1` 380/500, `USERS` 100/11264.
|
||||
`DIAGSPATIU_ZILNIC` a rulat azi 06:00 cu **o singura alerta** (chiar `SYSTEM`), lantul de
|
||||
actualizare e sanatos (`UPD_ISTORIC` `stare = 4` zilnic), iar scripturile `CO_2026_08_06_01/08` +
|
||||
`SYS_2026_08_06_07` sunt deja in `UPD_DATABASE`.
|
||||
|
||||
Deci nu e fals pozitiv si nu se rezolva de la sine: `SYS.INFO` creste ~2 MB/luna intr-un tablespace
|
||||
cu 5 MB liberi. **Primul script care cere o extenta noua pica cu `ORA-01653`**, exact ca
|
||||
`ff_2026_07_29_02_COMUN_TVA11.SQL` pe MARCU la SIGMA — `AUTH_PACK` scrie in `SYS.INFO` la fiecare
|
||||
conectare.
|
||||
|
||||
**Reparatie aplicata 08.08.2026**, in ordine (**intai plafonul, apoi curatenia** — curatenia poate
|
||||
esua din lipsa de spatiu):
|
||||
|
||||
```sql
|
||||
-- 1. ca contafin_oracle (are ALTER DATABASE, verificat in session_privs - nu cere SYSDBA)
|
||||
alter database datafile 'E:\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF'
|
||||
autoextend on next 50M maxsize 2000M;
|
||||
|
||||
-- 2. ca SYSDBA (sys/romfastsoft@ROA_AUTOMOTIVE as sysdba) - privilegiile ANY nu se aplica pe
|
||||
-- schema SYS cat timp O7_DICTIONARY_ACCESSIBILITY=FALSE
|
||||
truncate table sys.info; -- 552.581 randuri, 80 MB -> 0.06 MB
|
||||
```
|
||||
|
||||
Rezultat: `SYSTEM` 540 MB alocati / **2000 MB** plafon, 84.94 MB liberi in datafile,
|
||||
**1544.94 MB de crestere (77.2%)** — mult peste pragul de alerta (15% din 2000 = 300 MB), deci
|
||||
jobul tace de maine. In `SYSTEM` au ramas doar segmente de dictionar (`IDL_UB1$` 62 MB, `SOURCE$`
|
||||
56 MB, `IDL_UB2$` 25 MB), de neatins fara export/import si fara crestere semnificativa.
|
||||
|
||||
Plafonul de 11 GB al lui XE 11g e pe **date utilizator** — `SYSTEM` nu intra la socoteala, deci
|
||||
ridicarea la 2000 MB nu apropie baza de limita editiei.
|
||||
|
||||
### SIGMA — verificat prin tunel, 08.08.2026 (read-only)
|
||||
|
||||
`xe 11.2.0.2` pe `DESKTOP-ETLNAPG`. **Nu e nimic de reparat**, alarma s-a stins singura:
|
||||
|
||||
- toate tablespace-urile sanatoase: `SYSTEM` 650/2000 MB (1481 MB de crestere, 74%), `ROA`
|
||||
2048/32768, `SYSAUX` 840/32768, `UNDOTBS1` 430/500, `USERS` 100/11264; plafonul XE 11 GB e
|
||||
folosit doar 2.1 GB
|
||||
- `DIAGSPATIU_ZILNIC` a rulat azi 06:00 `SUCCEEDED`, 169 randuri in `DIAG_SPATIU_LOG`, **toate cu
|
||||
`prag_depasit = 0`** → de aceea n-a venit email azi
|
||||
- `PACK_DIAG_SPATIU` recompilat de lantul de actualizare (`UPD_ISTORIC` are `stare = 4` in fiecare
|
||||
zi); `CO_2026_08_06_01`, `CO_2026_08_06_08` si `SYS_2026_08_06_07` sunt in `UPD_DATABASE` si
|
||||
aplicate — corectia de praguri a ajuns intre rularea din 07.08 si cea din 08.08
|
||||
- **cauza incidentului din 03.08 e curatata**: `SYS.INFO` are acum 0.44 MB. `SYSTEM` e ocupat de
|
||||
dictionar real (`IDL_UB1$` 79 MB, `SOURCE$` 72 MB, `IDL_UB2$` 30 MB …), de neatins fara
|
||||
export/import — dar nici nu deranjeaza la plafonul de 2000 MB
|
||||
- de urmarit, nu de reparat: `DBA_SCHEDULER_JOBS.FAILURE_COUNT = 47` pe `UPDATEROA_ZILNIC`, desi
|
||||
toate rularile din ultimele 7 zile sunt `SUCCEEDED` si `UPD_ISTORIC` ajunge la `stare = 4` — pare
|
||||
contor istoric, dinainte de 01.08
|
||||
|
||||
## 8. Plafoane si limitari de pus la instalare (ca sa nu se repete)
|
||||
|
||||
Ambele incidente reale de pana acum (SIGMA 03.08, AUTOMOTIVE 08.08) au **aceeasi cauza structurala**,
|
||||
si e una pe care o produce chiar instalarea noastra: `SYS.INFO` — logul de login al ROA — se creeaza
|
||||
**in tablespace-ul `SYSTEM`** si nu se purja niciodata, intr-un `SYSTEM` plafonat mic la instalarea
|
||||
Oracle.
|
||||
|
||||
`proxmox/lxc108-oracle/roa-windows-setup/sql/sys-objects.sql:93`
|
||||
|
||||
```sql
|
||||
CREATE TABLE SYS.INFO (
|
||||
INFO CLOB, DATAORA TIMESTAMP(6) DEFAULT SYSTIMESTAMP, LOCATIA VARCHAR2(200) NULL
|
||||
) TABLESPACE SYSTEM -- <-- aici
|
||||
```
|
||||
|
||||
`SYS.pINFO` (`sys-objects.sql:131`) scrie in ea la fiecare conectare, din `AUTH_PACK` — ~7 randuri
|
||||
per login, **~13.500 randuri/luna ≈ 2 MB/luna** (masurat la AUTOMOTIVE: 552.581 randuri / 80 MB
|
||||
acumulate din 18.03.2023). Nimic din baza nu o citeste si nimic nu o goleste.
|
||||
|
||||
### Valori de referinta
|
||||
|
||||
| Ce | Valoare | De ce |
|
||||
|---|---|---|
|
||||
| `SYSTEM.DBF` maxsize | **2000M**, `autoextend on next 50M` | 600 MB (implicit la unele instalari) se umple in ~2 ani doar din `SYS.INFO`; dictionarul singur ocupa ~200 MB |
|
||||
| `SYS.INFO` | purjare periodica, sau creata in `ROA` | fara asta, orice plafon se atinge in cele din urma |
|
||||
| Tablespace `ROA` | `SIZE 1000M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED` (`sql/create-tablespace.sql:59`) | deja bine — dar pe XE limita editiei taie oricum la 11/12 GB |
|
||||
| `SYSAUX`, audit, AWR | vezi „Preventie ORA-12954" din `docs/00-INSTALL-ORACLE-XE.md` | auto tasks + audit policies + AWR umflu `SYSAUX` pana la limita |
|
||||
|
||||
```sql
|
||||
-- de rulat ca SYSDBA la instalare, dupa crearea bazei
|
||||
alter database datafile '<ORADATA>\SYSTEM.DBF' autoextend on next 50M maxsize 2000M;
|
||||
```
|
||||
|
||||
### Ce s-a schimbat in installer (08.08.2026)
|
||||
|
||||
| Fisier | Modificare |
|
||||
|---|---|
|
||||
| `sql/sys-objects.sql` | `SYS.INFO` se creeaza in tablespace-ul `ROA` (tabela **si** segmentul LOB), nu in `SYSTEM`; daca `ROA` inca nu exista, cade inapoi pe `SYSTEM` cu avertisment si comanda de mutare |
|
||||
| `sql/scheduler-jobs.sql` | job nou `SYS.SYSINFO_PURJARE_ZILNIC` — zilnic la 03:30, retentie 90 zile, stergere in transe de 10.000 de randuri ca sa nu umfle UNDO. **Creat `ENABLED`** (spre deosebire de jobul de actualizare): nu are nimic de configurat, iar uitat dezactivat reproduce exact problema pe care o rezolva |
|
||||
| `sql/uninstall-roa.sql` | dezinstalarea sterge si jobul |
|
||||
| `docs/00-INSTALL-ORACLE-XE.md`, `docs/00-INSTALL-ORACLE-SE.md` | pas post-instalare pentru plafonul `SYSTEM` + mutarea `SYS.INFO` la instalarile vechi |
|
||||
|
||||
Jobul e in schema `SYS` pentru ca privilegiile `ANY` nu se aplica pe obiectele `SYS` cat timp
|
||||
`O7_DICTIONARY_ACCESSIBILITY = FALSE` — din `CONTAFIN_ORACLE` ar iesi `ORA-01031`.
|
||||
|
||||
### 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.
|
||||
|
||||
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.
|
||||
|
||||
**Nepublicat inca** — publicarea se face cu `COMUN\utile\publicare_scripturi.ps1` si e o actiune
|
||||
catre toti clientii.
|
||||
|
||||
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).
|
||||
|
||||
## 9. Legaturi in acest repo
|
||||
|
||||
| Document | Ce e |
|
||||
|---|---|
|
||||
| [`diagnostic-ora-65114-spatiu.md`](diagnostic-ora-65114-spatiu.md) | `ROA_CENTRAL`, 02.08.2026 — `ORA-65114`, topologia 10.0.20.121, ce trebuie masurat |
|
||||
| [`curatenie-spatiu-oracle.sql`](curatenie-spatiu-oracle.sql) | SQL-uri gata scrise de curatenie tintita |
|
||||
| [`../proxmox/lxc108-oracle/clienti/oracle-xe-21c/`](../proxmox/lxc108-oracle/clienti/oracle-xe-21c/) | ROMPETROL ENERGY — `ORA-12954`, recreare PDB (13.5 GB → 3 GB) |
|
||||
| [`../proxmox/lxc108-oracle/clienti/README.md`](../proxmox/lxc108-oracle/clienti/README.md) | indexul cazurilor de client |
|
||||
|
||||
---
|
||||
|
||||
**Ultima actualizare:** 08.08.2026
|
||||
@@ -15,6 +15,7 @@ scripturile reutilizabile generate din fiecare caz.
|
||||
| Procedură | Fișier |
|
||||
|-----------|--------|
|
||||
| Import DMP client pentru teste în LXC 108 | [`import-test-lxc108.md`](import-test-lxc108.md) |
|
||||
| Diagnostic spațiu — job zilnic `DIAGSPATIU_ZILNIC`, praguri, citirea emailurilor de alertă, triaj | [`../../../docs/diagnostic-spatiu-clienti.md`](../../../docs/diagnostic-spatiu-clienti.md) |
|
||||
|
||||
## Convenție
|
||||
|
||||
|
||||
@@ -173,6 +173,35 @@ $env:PATH = "$env:ORACLE_HOME\bin;$env:PATH"
|
||||
sqlplus system/romfastsoft@localhost:1521/ROA
|
||||
```
|
||||
|
||||
### Plafonul SYSTEM și creșterea SYS.INFO (OBLIGATORIU!)
|
||||
|
||||
Standard Edition nu are limita de date a lui XE, dar `SYSTEM` are aceeași problemă: `SYS.INFO` —
|
||||
logul de login al ROA — crește ~13.500 rânduri (~2 MB) pe lună, scrise de `SYS.pINFO` din
|
||||
`AUTH_PACK` la fiecare conectare, și **nu se purjează niciodată**. Când `SYSTEM` se umple, **orice**
|
||||
script de actualizare pică cu `ORA-01653: unable to extend table SYS.INFO`, indiferent ce conține
|
||||
(SIGMA 03.08.2026, AUTOMOTIVE 08.08.2026).
|
||||
|
||||
Instalările noi sunt acoperite: `sys-objects.sql` creează `SYS.INFO` în tablespace-ul `ROA`, iar
|
||||
`scheduler-jobs.sql` creează jobul `SYS.SYSINFO_PURJARE_ZILNIC` (03:30, retenție 90 zile).
|
||||
**Plafonul lui `SYSTEM` rămâne de ridicat manual:**
|
||||
|
||||
```sql
|
||||
-- ca SYSDBA, după crearea bazei; înlocuiește calea cu cea reală din dba_data_files
|
||||
ALTER DATABASE DATAFILE '<ORADATA>\SYSTEM01.DBF' AUTOEXTEND ON NEXT 50M MAXSIZE 2000M;
|
||||
|
||||
SELECT file_name, ROUND(bytes/1048576,2) mb, ROUND(maxbytes/1048576,2) max_mb, autoextensible
|
||||
FROM dba_data_files WHERE tablespace_name = 'SYSTEM';
|
||||
```
|
||||
|
||||
La o instalare mai veche, unde `SYS.INFO` a rămas în `SYSTEM`:
|
||||
|
||||
```sql
|
||||
ALTER TABLE SYS.INFO MOVE TABLESPACE ROA LOB (INFO) STORE AS (TABLESPACE ROA);
|
||||
```
|
||||
|
||||
> Diagnosticul zilnic care prinde asta automat, pragurile și triajul alertelor:
|
||||
> `E:\proiecte\ROMFASTSQL\docs\diagnostic-spatiu-clienti.md`.
|
||||
|
||||
## Memory Configuration (Opțional)
|
||||
|
||||
Pentru Standard Edition cu 16GB RAM:
|
||||
|
||||
@@ -310,6 +310,45 @@ SELECT policy_name, enabled_option FROM audit_unified_enabled_policies;
|
||||
|
||||
---
|
||||
|
||||
## Post-Installation: Plafonul SYSTEM si cresterea SYS.INFO (OBLIGATORIU!)
|
||||
|
||||
Setarile de mai sus apara `SYSAUX`. **`SYSTEM` are o problema separata**, care a blocat deja doi
|
||||
clienti (SIGMA 03.08.2026, AUTOMOTIVE 08.08.2026): `SYS.INFO` — logul de login al ROA, creat de
|
||||
`sql/sys-objects.sql` — creste ~13.500 randuri (~2 MB) pe luna, scrise de `SYS.pINFO` din
|
||||
`AUTH_PACK` la fiecare conectare, si **nu se purja niciodata**.
|
||||
|
||||
Cand `SYSTEM` se umple, **orice** script de actualizare pica cu `ORA-01653: unable to extend table
|
||||
SYS.INFO`, indiferent ce contine — pentru ca `AUTH_PACK` scrie acolo la conectare. Simptomul arata a
|
||||
eroare de SQL, dar nu e.
|
||||
|
||||
Instalarile noi sunt acoperite: `sys-objects.sql` creeaza `SYS.INFO` in tablespace-ul `ROA`, iar
|
||||
`scheduler-jobs.sql` creeaza jobul `SYS.SYSINFO_PURJARE_ZILNIC` (03:30, retentie 90 zile).
|
||||
**Plafonul lui `SYSTEM` ramane insa de ridicat manual**, pentru ca dictionarul singur ocupa ~200 MB
|
||||
si unele instalari il plafoneaza la 600 MB:
|
||||
|
||||
```sql
|
||||
-- ca SYSDBA, dupa crearea bazei; inlocuieste calea cu cea reala din dba_data_files
|
||||
ALTER DATABASE DATAFILE '<ORADATA>\SYSTEM.DBF' AUTOEXTEND ON NEXT 50M MAXSIZE 2000M;
|
||||
|
||||
-- verificare
|
||||
SELECT file_name, ROUND(bytes/1048576,2) mb, ROUND(maxbytes/1048576,2) max_mb, autoextensible
|
||||
FROM dba_data_files WHERE tablespace_name = 'SYSTEM';
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```sql
|
||||
ALTER TABLE SYS.INFO MOVE TABLESPACE ROA LOB (INFO) STORE AS (TABLESPACE ROA);
|
||||
```
|
||||
|
||||
> Diagnosticul zilnic care prinde asta automat, pragurile lui si triajul alertelor:
|
||||
> `E:\proiecte\ROMFASTSQL\docs\diagnostic-spatiu-clienti.md`.
|
||||
|
||||
---
|
||||
|
||||
## Gotchas Oracle XE 21c (Windows)
|
||||
|
||||
| Problema | Solutie |
|
||||
|
||||
@@ -4,8 +4,9 @@
|
||||
-- Creates Oracle Scheduler jobs for automatic daily updates:
|
||||
-- - UPDATEROA_ZILNIC: Daily ROA application update (04:00)
|
||||
-- - UPDATERTVAI_ZILNIC: Daily RTVAI module update (04:30)
|
||||
-- - SYS.SYSINFO_PURJARE_ZILNIC: purjare SYS.INFO la 90 zile (03:30) - creat ENABLED
|
||||
--
|
||||
-- Jobs are created DISABLED by default - enable manually after verification
|
||||
-- Update jobs are created DISABLED by default - enable manually after verification
|
||||
--
|
||||
-- Usage:
|
||||
-- sqlplus sys/password@service as sysdba @scheduler-jobs.sql
|
||||
@@ -31,7 +32,7 @@ PROMPT
|
||||
-- SECTION 1: DROP EXISTING JOBS (if any)
|
||||
-- ============================================================================
|
||||
|
||||
PROMPT [1/4] Removing existing jobs (if any)...
|
||||
PROMPT [1/5] Removing existing jobs (if any)...
|
||||
|
||||
BEGIN
|
||||
BEGIN
|
||||
@@ -49,6 +50,14 @@ BEGIN
|
||||
WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' UPDATERTVAI_ZILNIC job did not exist (OK)');
|
||||
END;
|
||||
|
||||
BEGIN
|
||||
DBMS_SCHEDULER.DROP_JOB(job_name => 'SYS.SYSINFO_PURJARE_ZILNIC', force => TRUE);
|
||||
DBMS_OUTPUT.PUT_LINE(' Dropped existing SYSINFO_PURJARE_ZILNIC job');
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' SYSINFO_PURJARE_ZILNIC job did not exist (OK)');
|
||||
END;
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -56,7 +65,7 @@ END;
|
||||
-- SECTION 2: CREATE UPDATEROA_ZILNIC JOB
|
||||
-- ============================================================================
|
||||
|
||||
PROMPT [2/4] Creating UPDATEROA_ZILNIC job...
|
||||
PROMPT [2/5] Creating UPDATEROA_ZILNIC job...
|
||||
|
||||
BEGIN
|
||||
DBMS_SCHEDULER.CREATE_JOB(
|
||||
@@ -121,7 +130,7 @@ END;
|
||||
-- SECTION 3: CREATE UPDATERTVAI_ZILNIC JOB
|
||||
-- ============================================================================
|
||||
|
||||
PROMPT [3/4] Creating UPDATERTVAI_ZILNIC job...
|
||||
PROMPT [3/5] Creating UPDATERTVAI_ZILNIC job...
|
||||
|
||||
BEGIN
|
||||
DBMS_SCHEDULER.CREATE_JOB(
|
||||
@@ -145,10 +154,60 @@ END;
|
||||
/
|
||||
|
||||
-- ============================================================================
|
||||
-- SECTION 4: GRANT SCHEDULER PRIVILEGES TO CONTAFIN_ORACLE
|
||||
-- SECTION 4: CREATE SYS.SYSINFO_PURJARE_ZILNIC JOB
|
||||
-- ============================================================================
|
||||
-- SYS.INFO e logul de login scris de SYS.pINFO din AUTH_PACK: ~7 randuri per conectare,
|
||||
-- ~13.500 randuri (~2 MB) pe luna, si nimic din baza nu-l citeste. Fara purjare creste la
|
||||
-- nesfarsit si, mai devreme sau mai tarziu, umple tablespace-ul in care sta -> ORA-01653 la
|
||||
-- primul script de actualizare care cere o extenta noua.
|
||||
--
|
||||
-- Jobul e in schema SYS pentru ca privilegiile ANY nu se aplica pe obiectele SYS cat timp
|
||||
-- O7_DICTIONARY_ACCESSIBILITY = FALSE; din CONTAFIN_ORACLE ar iesi ORA-01031.
|
||||
-- Stergerea se face in transe de 10.000 de randuri, ca prima rulare (care poate gasi sute de
|
||||
-- mii de randuri acumulate) sa nu umfle UNDO.
|
||||
--
|
||||
-- Retentie: 90 de zile, aceeasi cu DIAG_SPATIU_LOG.
|
||||
-- ============================================================================
|
||||
|
||||
PROMPT [4/4] Granting scheduler privileges to CONTAFIN_ORACLE...
|
||||
PROMPT [4/5] Creating SYS.SYSINFO_PURJARE_ZILNIC job...
|
||||
|
||||
BEGIN
|
||||
DBMS_SCHEDULER.CREATE_JOB(
|
||||
job_name => 'SYS.SYSINFO_PURJARE_ZILNIC',
|
||||
job_type => 'PLSQL_BLOCK',
|
||||
job_action => q'[
|
||||
declare
|
||||
lnRanduri number;
|
||||
begin
|
||||
loop
|
||||
delete from sys.info
|
||||
where dataora < systimestamp - interval '90' day
|
||||
and rownum <= 10000;
|
||||
lnRanduri := sql%rowcount;
|
||||
commit;
|
||||
exit when lnRanduri = 0;
|
||||
end loop;
|
||||
end;
|
||||
]',
|
||||
start_date => TRUNC(SYSDATE) + 1 + 3.5/24, -- Tomorrow at 03:30
|
||||
repeat_interval => 'FREQ=DAILY;INTERVAL=1',
|
||||
end_date => NULL,
|
||||
enabled => TRUE, -- ENABLED: nu are nimic de configurat, iar uitat dezactivat
|
||||
-- reproduce exact problema pe care o rezolva
|
||||
auto_drop => FALSE,
|
||||
comments => 'Purjare SYS.INFO la 90 zile - runs at 03:30'
|
||||
);
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(' SYSINFO_PURJARE_ZILNIC job created (ENABLED)');
|
||||
DBMS_OUTPUT.PUT_LINE(' Schedule: Daily at 03:30, retentie 90 zile');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ============================================================================
|
||||
-- SECTION 5: GRANT SCHEDULER PRIVILEGES TO CONTAFIN_ORACLE
|
||||
-- ============================================================================
|
||||
|
||||
PROMPT [5/5] Granting scheduler privileges to CONTAFIN_ORACLE...
|
||||
|
||||
-- Grant CREATE JOB privilege (may already exist)
|
||||
BEGIN
|
||||
@@ -192,17 +251,18 @@ PROMPT Scheduler Jobs Verification
|
||||
PROMPT ========================================
|
||||
PROMPT
|
||||
|
||||
PROMPT CONTAFIN_ORACLE scheduled jobs:
|
||||
SELECT job_name,
|
||||
PROMPT ROA scheduled jobs:
|
||||
SELECT owner,
|
||||
job_name,
|
||||
job_type,
|
||||
enabled,
|
||||
state,
|
||||
TO_CHAR(next_run_date, 'YYYY-MM-DD HH24:MI:SS') AS next_run,
|
||||
repeat_interval
|
||||
FROM dba_scheduler_jobs
|
||||
WHERE owner = 'CONTAFIN_ORACLE'
|
||||
AND job_name IN ('UPDATEROA_ZILNIC', 'UPDATERTVAI_ZILNIC')
|
||||
ORDER BY job_name;
|
||||
WHERE (owner = 'CONTAFIN_ORACLE' AND job_name IN ('UPDATEROA_ZILNIC', 'UPDATERTVAI_ZILNIC'))
|
||||
OR (owner = 'SYS' AND job_name = 'SYSINFO_PURJARE_ZILNIC')
|
||||
ORDER BY owner, job_name;
|
||||
|
||||
PROMPT
|
||||
PROMPT Job arguments for UPDATEROA_ZILNIC:
|
||||
@@ -217,8 +277,9 @@ PROMPT ========================================
|
||||
PROMPT Scheduler Jobs Creation Complete
|
||||
PROMPT ========================================
|
||||
PROMPT
|
||||
PROMPT IMPORTANT: Jobs are created DISABLED by default.
|
||||
PROMPT To enable a job after verifying configuration:
|
||||
PROMPT IMPORTANT: Update jobs are created DISABLED by default.
|
||||
PROMPT SYS.SYSINFO_PURJARE_ZILNIC is created ENABLED (nothing to configure).
|
||||
PROMPT To enable an update job after verifying configuration:
|
||||
PROMPT
|
||||
PROMPT -- Enable UPDATEROA_ZILNIC
|
||||
PROMPT EXEC DBMS_SCHEDULER.ENABLE('CONTAFIN_ORACLE.UPDATEROA_ZILNIC');
|
||||
|
||||
@@ -77,21 +77,37 @@ END;
|
||||
/
|
||||
|
||||
PROMPT [3/11] Creating SYS.INFO table (logging)...
|
||||
-- IMPORTANT: SYS.INFO e log de aplicatie, nu obiect de dictionar - SYS.pINFO scrie ~7 randuri la
|
||||
-- fiecare conectare (~13.500 randuri / ~2 MB pe luna) si nimic nu o citeste. Tinuta in SYSTEM,
|
||||
-- umple tablespace-ul dictionarului si **orice** script de actualizare pica apoi cu
|
||||
-- ORA-01653 (SIGMA 03.08.2026, AUTOMOTIVE 08.08.2026). De aceea se creeaza in tablespace-ul
|
||||
-- aplicatiei, iar cresterea e marginita de jobul SYSINFO_PURJARE_ZILNIC (scheduler-jobs.sql).
|
||||
DECLARE
|
||||
v_count NUMBER;
|
||||
v_ts VARCHAR2(30);
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM dba_tables
|
||||
WHERE owner = 'SYS' AND table_name = 'INFO';
|
||||
IF v_count > 0 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(' Table INFO already exists, skipping.');
|
||||
ELSE
|
||||
SELECT MAX(tablespace_name) INTO v_ts
|
||||
FROM dba_tablespaces WHERE tablespace_name = 'ROA';
|
||||
|
||||
IF v_ts IS NULL THEN
|
||||
v_ts := 'SYSTEM';
|
||||
DBMS_OUTPUT.PUT_LINE(' WARNING: tablespace ROA missing - INFO falls back to SYSTEM.');
|
||||
DBMS_OUTPUT.PUT_LINE(' Run create-tablespace.sql first, then move it:');
|
||||
DBMS_OUTPUT.PUT_LINE(' ALTER TABLE SYS.INFO MOVE TABLESPACE ROA LOB (INFO) STORE AS (TABLESPACE ROA);');
|
||||
END IF;
|
||||
|
||||
EXECUTE IMMEDIATE '
|
||||
CREATE TABLE SYS.INFO (
|
||||
INFO CLOB,
|
||||
DATAORA TIMESTAMP(6) DEFAULT SYSTIMESTAMP,
|
||||
LOCATIA VARCHAR2(200) NULL
|
||||
) TABLESPACE SYSTEM';
|
||||
DBMS_OUTPUT.PUT_LINE(' Table INFO created.');
|
||||
) TABLESPACE ' || v_ts || ' LOB (INFO) STORE AS (TABLESPACE ' || v_ts || ')';
|
||||
DBMS_OUTPUT.PUT_LINE(' Table INFO created in tablespace ' || v_ts || '.');
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -216,6 +216,12 @@ BEGIN EXECUTE IMMEDIATE 'DROP VIEW SYS.VAUTH_SERII';
|
||||
EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
|
||||
-- Drop scheduler job (SYS.INFO purge)
|
||||
BEGIN DBMS_SCHEDULER.DROP_JOB(job_name => 'SYS.SYSINFO_PURJARE_ZILNIC', force => TRUE);
|
||||
DBMS_OUTPUT.PUT_LINE(' Dropped SYS.SYSINFO_PURJARE_ZILNIC');
|
||||
EXCEPTION WHEN OTHERS THEN NULL; END;
|
||||
/
|
||||
|
||||
-- Drop procedures
|
||||
BEGIN EXECUTE IMMEDIATE 'DROP PROCEDURE SYS.UPDATESQLPLUS';
|
||||
DBMS_OUTPUT.PUT_LINE(' Dropped SYS.UPDATESQLPLUS');
|
||||
|
||||
Reference in New Issue
Block a user