chore: handoff-urile ies din git
Sunt stare de lucru intre sesiuni, nu documentatie de proiect: se invechesc imediat si ar fi citite ca adevar curent. Raman pe disc, ignorate. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SzF1hf4aFS1tmJWpPMiwGp
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -19,3 +19,6 @@ cpanel-dns.config.json
|
|||||||
|
|
||||||
# Cygwin/Git-Bash crash dumps
|
# Cygwin/Git-Bash crash dumps
|
||||||
*.stackdump
|
*.stackdump
|
||||||
|
|
||||||
|
# Handoff-uri: stare de lucru, nu documentatie de proiect - raman doar pe disc
|
||||||
|
docs/handoff_*.md
|
||||||
|
|||||||
@@ -1,150 +0,0 @@
|
|||||||
# Handoff — instalare ROA în două faze, licențe, IIS, export zilnic
|
|
||||||
|
|
||||||
Stare la 2026-08-25. Blocul de lucru e terminat; nimic nu e într-o stare periculoasă.
|
|
||||||
Toate modificările sunt scrise pe disc, **necomise**.
|
|
||||||
|
|
||||||
## Ce s-a livrat
|
|
||||||
|
|
||||||
| Fișier | Stare |
|
|
||||||
|---|---|
|
|
||||||
| `proxmox/lxc108-oracle/roa-windows-setup/FAZA1.cmd` | nou, parsare testată |
|
|
||||||
| `proxmox/lxc108-oracle/roa-windows-setup/FAZA2.cmd` | nou, parsare testată |
|
|
||||||
| `.../scripts/09-copy-licenses.ps1` | nou, **nerulat pe o bază reală** |
|
|
||||||
| `.../scripts/10-setup-roaupdate-iis.ps1` | nou, **nerulat** |
|
|
||||||
| `.../scripts/11-setup-backup-export.ps1` | nou, **nerulat**; blocat pe `backupora.exe` |
|
|
||||||
| `.../scripts/drop-contafin.ps1` | nou, **nerulat** |
|
|
||||||
| `.../sql/export-licente.sql` | nou, **nerulat** |
|
|
||||||
| `.../backup/settings.ini.template` | nou, format **presupus**, nu confirmat |
|
|
||||||
| `.../scripts/07-verify-installation.ps1` | modificat: +268 linii de verificări noi |
|
|
||||||
| `.../README.md` | rescris, 846 → 620 linii |
|
|
||||||
| `proxmox/lxc108-oracle/scripts/build-client-kit.ps1` | modificat: text `CITESTE-MA.txt` + avertisment `backupora.exe` |
|
|
||||||
| `proxmox/lxc108-oracle/docs/instalare-si-migrare-oracle.md` | modificat: tabelul pașilor + cele trei fluxuri |
|
|
||||||
|
|
||||||
## Ce s-a verificat efectiv
|
|
||||||
|
|
||||||
- Toate cele 13 scripturi `.ps1` din `roa-windows-setup/scripts/` plus
|
|
||||||
`build-client-kit.ps1` parsează curat (`PSParser::Tokenize`).
|
|
||||||
- `FAZA1.cmd` și `FAZA2.cmd`: parsarea argumentelor, inclusiv căile cu literă de
|
|
||||||
disc (`/roaupdate:D:\RU` ajunge întreg), flagurile fără valoare, ecranul de
|
|
||||||
utilizare, codurile de ieșire.
|
|
||||||
- Toate cele 12 linkuri relative din README-ul nou duc la fișiere existente.
|
|
||||||
|
|
||||||
## Ce NU s-a verificat
|
|
||||||
|
|
||||||
**Niciun script nou nu a fost rulat pe o bază Oracle.** Nu există mediu pornit —
|
|
||||||
VM 302 e oprit. Toate verificările de mai sus sunt statice.
|
|
||||||
|
|
||||||
## Blocajul de la `backupora.exe` — REZOLVAT
|
|
||||||
|
|
||||||
Găsit local, în `D:\ROA\EXPORT_ORADMP\` pe stația de dezvoltare. Copiat în kit
|
|
||||||
(`roa-windows-setup/backup/`): `backupora.exe` (49 KB), `config.fpw`,
|
|
||||||
`setari.ini.tmpl`, `schema.tmpl`, `changelog_backupora.txt`.
|
|
||||||
|
|
||||||
**Presupunerile mele inițiale erau greșite pe trei puncte, toate corectate:**
|
|
||||||
|
|
||||||
1. Fișierul de config se cheamă **`setari.ini`**, nu `settings.ini`.
|
|
||||||
Redenumit peste tot: scriptul 11, verificarea 07, README, `build-client-kit.ps1`,
|
|
||||||
`instalare-si-migrare-oracle.md`. (Referințele la `settings.ini` rămase în
|
|
||||||
`proxmox/vm201-windows/` sunt **alt fișier** — endpointul de raportare erori
|
|
||||||
din `D:\ROAUPDATE` — corect, nu se ating.)
|
|
||||||
|
|
||||||
2. Secțiunile reale sunt `[schema]`, `[backup]`, `[oracle]`. Nu există host/port/
|
|
||||||
service/parole în ini. Șablonul `backup/setari.ini.template` are acum formatul
|
|
||||||
real, cu 10 marcaje: `{{EXPORT_DIR}}`, `{{BACKUP_PATH}}`, `{{SCHEMA_FILE}}`,
|
|
||||||
`{{RETENTION_DAYS}}`, `{{EXPDP_EXE}}`, `{{DMPDIR_PATH}}`, `{{DMPDIR_NAME}}`,
|
|
||||||
`{{ORACLE_HOME}}`, `{{DB_SERVICE}}`, `{{DATA_GENERARII}}`.
|
|
||||||
Verificat automat: toate 10 sunt substituite de script.
|
|
||||||
|
|
||||||
3. **`schema.txt` nu e o listă de nume de scheme.** Formatul (din `schema.tmpl`) e
|
|
||||||
`SCHEMA;PAROLA@SERVICIU`, câte una pe linie. `New-SchemaFile` citește acum și
|
|
||||||
`NOM_FIRME.parola`, nu doar `schema`. Fișierul conține parole în clar — scriptul
|
|
||||||
avertizează să nu fie scos de pe server.
|
|
||||||
|
|
||||||
**Două capcane confirmate în sursa VFP (`main.prg`), documentate în script:**
|
|
||||||
|
|
||||||
- programul **scrie** în ini-ul implicit cheia `delete_backups_olther_xdays`
|
|
||||||
(cu typo, `main.prg:76`) dar **citește** `delete_backups_older_xdays`
|
|
||||||
(`main.prg:117`). Șablonul o are pe cea corectă — **nu o „corecta" înapoi**.
|
|
||||||
- alege între `exp` clasic și Data Pump **după numele executabilului** din
|
|
||||||
`oracleexpfile` (changelog v3.0.0: *„Numele executabilului trebuie sa fie
|
|
||||||
expdp.exe"*). De aceea `{{EXPDP_EXE}}` arată către `<OracleHome>\bin\expdp.exe`,
|
|
||||||
nu către stub-ul de 0 octeți din directorul programului.
|
|
||||||
|
|
||||||
**Decizie de confirmat cu Marius:** `backuppath` (unde ajung dump-urile) e acum
|
|
||||||
implicit **egal cu `ExportPath`**, deci `D:\ROA\EXPORT_ORADMP\<AAAALLZZ>\`.
|
|
||||||
Pe instalarea de referință de pe stația de dezvoltare valoarea era `C:\BACKUP_ORACLE`,
|
|
||||||
cu programul în `D:\ROA\EXPORT_ORADMP`. Există parametrul `-BackupPath` pentru
|
|
||||||
convenția veche. **Nu știu care e corectă la clienți.**
|
|
||||||
|
|
||||||
## Decizii deja luate — nu se reiau
|
|
||||||
|
|
||||||
1. **Faza 1 importă contafin-ul REAL al clientului**, nu șablonul. Motiv: pe
|
|
||||||
`CONTAFIN_ORACLE` nu se lucrează activ, deci poate fi exportat în timpul
|
|
||||||
programului. Doar firmele se schimbă sub picioare. Șablonul rămâne ca fallback.
|
|
||||||
2. **Faza 2 înlocuiește contafin prin `DROP USER CASCADE` + import curat**, nu prin
|
|
||||||
`TABLE_EXISTS_ACTION=REPLACE`. Opțional, prin `/reimportcontafin`.
|
|
||||||
3. **Pasul 08 se reia obligatoriu în faza 2.** `SERVER_INFO` e o tabelă în
|
|
||||||
`CONTAFIN_ORACLE` (`sql/synonyms-public.sql:270`); dump-ul clientului aduce cu
|
|
||||||
el căile, parolele și SMTP-ul serverului vechi.
|
|
||||||
4. **Licențele: rețea întâi, fișier ca fallback.** `sql/export-licente.sql` produce
|
|
||||||
INSERT-uri pe stdout; `09-copy-licenses.ps1` fie îl rulează prin rețea pe
|
|
||||||
serverul vechi, fie citește rezultatul cu `-FromFile`.
|
|
||||||
5. **IIS: scriptul instalează rolul dacă lipsește** (`Install-WindowsFeature` pe
|
|
||||||
Server, `Enable-WindowsOptionalFeature` pe Windows Pro). Poate cere restart.
|
|
||||||
6. **Directoarele de modul se creează în două locuri diferite**, intenționat:
|
|
||||||
pasul 08 face `_ARHIVE\<MODUL>` (pentru obiectele Oracle `DIRECTORY`), pasul 10
|
|
||||||
face `D:\ROAUPDATE\<MODUL>` (binarele curente, servite de IIS). Lista de 55 de
|
|
||||||
module e duplicată în ambele scripturi — **la adăugarea unui modul se modifică
|
|
||||||
ambele**.
|
|
||||||
|
|
||||||
## Comenzi de testare, când există mediu
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ssh root@10.0.20.201 "qm start 302"
|
|
||||||
```
|
|
||||||
|
|
||||||
Pe VM 302, din rădăcina kitului:
|
|
||||||
|
|
||||||
```bat
|
|
||||||
Run.cmd 99-uninstall-roa.ps1 -Force
|
|
||||||
FAZA1.cmd 999 /faralicente /farabackup
|
|
||||||
FAZA2.cmd 999
|
|
||||||
Run.cmd 07-verify-installation.ps1
|
|
||||||
```
|
|
||||||
|
|
||||||
Logurile: `roa-windows-setup\logs\<script>_<data>.log`.
|
|
||||||
Codul de ieșire 0 la pasul 07 = instalare bună.
|
|
||||||
|
|
||||||
Ordinea de testat, de la ieftin la scump:
|
|
||||||
1. `10-setup-roaupdate-iis.ps1` — nu atinge baza, se poate rula izolat;
|
|
||||||
2. `09-copy-licenses.ps1 -ExportOnly` pe o bază existentă — doar `SELECT`;
|
|
||||||
3. `FAZA1.cmd` complet;
|
|
||||||
4. `FAZA2.cmd` cu și fără `/reimportcontafin`;
|
|
||||||
5. `11-setup-backup-export.ps1` — abia după ce apare `backupora.exe`.
|
|
||||||
|
|
||||||
## Ce mai lipsește
|
|
||||||
|
|
||||||
- **Confirmarea lui `backuppath`** — vezi decizia de mai sus (`ExportPath` vs
|
|
||||||
`C:\BACKUP_ORACLE`).
|
|
||||||
- Confirmarea că numele obiectului Oracle `DIRECTORY` pentru export e chiar
|
|
||||||
`BACKUP_ORACLE` (așa l-am scris în `11-setup-backup-export.ps1`).
|
|
||||||
- **Dacă `backupora.exe` are nevoie de runtime VFP9** (`vfp9r.dll`, `vfp9renu.dll`)
|
|
||||||
pe un server curat. Pe stația de dezvoltare merge pentru că runtime-ul e deja
|
|
||||||
instalat. Dacă la client dă „Cannot locate the Microsoft Visual FoxPro support
|
|
||||||
library", trebuie adăugate DLL-urile în `backup/` sau instalat runtime-ul.
|
|
||||||
**Netestat.**
|
|
||||||
- `schema.txt` folosește `@$ServiceName` (deci `XEPDB1`). De verificat că
|
|
||||||
`backupora.exe` acceptă un service name EZConnect, nu doar un SID/alias TNS —
|
|
||||||
pe instalările vechi acolo era un SID (`ORASID` în șablon).
|
|
||||||
- Verificarea că aplicația ROA de pe stații acceptă `http://localhost/roaupdate/`
|
|
||||||
ca sursă — scriptul publică acolo, dar configurarea stațiilor nu e acoperită de kit.
|
|
||||||
- `SERVER_INFO.UPD_URL_APP` rămâne `https://update.romfast.ro/roa/` (serverul
|
|
||||||
clientului trage de la ROMFAST). Dacă undeva trebuie scrisă adresa oglinzii
|
|
||||||
locale pentru stații, nu e în baza de date — nu am găsit unde.
|
|
||||||
|
|
||||||
## Ce e interzis
|
|
||||||
|
|
||||||
- Nu comite `config.ps1` — poate conține parolele altui client.
|
|
||||||
- Nu comite fișiere `.dmp`.
|
|
||||||
- Nu rula scripturile pe `10.0.20.121` (LXC 108) — e sursa șabloanelor, nu o țintă
|
|
||||||
de instalare. `PDB ROA` de acolo e producția `ROA_CENTRAL`.
|
|
||||||
@@ -1,196 +0,0 @@
|
|||||||
# Handoff — migrare VADECO pe server nou (Oracle 21c XE)
|
|
||||||
|
|
||||||
Stare la 2026-08-25, seara. Predare din cauza pragului de context.
|
|
||||||
Nimic nu e într-o stare periculoasă. Modificările de cod sunt **comise și pushuite**.
|
|
||||||
|
|
||||||
## Serverele
|
|
||||||
|
|
||||||
| | Vechi | Nou |
|
|
||||||
|---|---|---|
|
|
||||||
| Nume | `CONTAFIN` (workgroup VADECO) | `WIN-16COB435C1E` (nume default, neschimbat) |
|
|
||||||
| IP LAN | `192.168.101.110` | `192.168.101.111` |
|
|
||||||
| Acces | **fără SSH**; doar 1521 / 445 / 3389 / 80 (IIS 7.5) | SSH pe cheie prin Tailscale: `ssh Administrator@100.93.100.75` |
|
|
||||||
| OS | Windows Server 2008 R2 (dedus din IIS 7.5) | Windows Server 2019 Standard, 15.7 GB RAM, 4 vCPU |
|
|
||||||
| Oracle | XE **11.2.0.2.0**, service `XE`, AL32UTF8 | XE **21.3**, CDB `XE` + PDB **`XEPDB1`**, AL32UTF8 |
|
|
||||||
| Discuri | — | C: 74 GB liber, **D: 725 GB liber** |
|
|
||||||
|
|
||||||
Credențiale baza veche: `sys/romfastsoft`, `system/romfastsoft`,
|
|
||||||
`contafin_oracle/ROMFASTSOFT`. Baza nouă: `sys` și `system` = `romfastsoft`.
|
|
||||||
|
|
||||||
**Id client = 134** (citit din `SYS.AUTH_DETALII` de pe serverul vechi).
|
|
||||||
|
|
||||||
Firme în `NOM_FIRME` (toate cu parola `ROMFASTSOFT`): `DANUBE`, `DANUBE_20200914`,
|
|
||||||
`LACERTA`, `SPACE`. **`DANUBE_20200914` se exclude din migrare** — decizie Marius.
|
|
||||||
Deci pasul 05 și verificarea 07 vor raporta o firmă lipsă; e corect, nu e defect.
|
|
||||||
|
|
||||||
Volume: contafin 593 MB segmente (514 MB date reale), firmele migrate ~185 MB.
|
|
||||||
Total sub 12 GB, deci limita XE nu e o problemă.
|
|
||||||
|
|
||||||
## Ruta de transfer a DMP-urilor — de ce e neobișnuită
|
|
||||||
|
|
||||||
`expdp` **nu** se poate rula de pe serverul nou: client Data Pump 21c contra
|
|
||||||
server 11.2.0.2 nu e suportat. Iar pe serverul vechi nu avem shell, iar `C$` e
|
|
||||||
refuzat cu credențialele curente.
|
|
||||||
|
|
||||||
Soluția folosită, validată end-to-end cu un fișier de test înainte de a produce
|
|
||||||
sute de MB pe discul clientului:
|
|
||||||
|
|
||||||
1. `DBMS_DATAPUMP` rulat **în interiorul bazei vechi** prin `sqlplus` (fără
|
|
||||||
problema de versiune de client), scriind în directorul Oracle existent
|
|
||||||
`UPD_ROAUPDATE` = `D:\ROAUPDATE`;
|
|
||||||
2. fișierul descărcat de pe serverul nou prin IIS: `http://192.168.101.110/roaupdate/<nume>.zip`
|
|
||||||
(extensia `.zip` e obligatorie — IIS întoarce 404 pentru `.dmp`/`.explog`,
|
|
||||||
neavând tipul MIME);
|
|
||||||
3. verificare de integritate prin comparare de dimensiuni;
|
|
||||||
4. ștergere de pe serverul vechi cu `UTL_FILE.FREMOVE`.
|
|
||||||
|
|
||||||
Serverul vechi a rămas curat: fișierele de transfer ale contafin-ului au fost
|
|
||||||
șterse. **Dump-urile firmelor sunt încă acolo** — vezi „Ce a mai rămas".
|
|
||||||
|
|
||||||
## Ce e făcut
|
|
||||||
|
|
||||||
- **Commit `5a74699`** — kitul din sesiunea anterioară (FAZA1/FAZA2, scripturile
|
|
||||||
09/10/11, `drop-contafin`, `backupora.exe`, verificările din 07).
|
|
||||||
- **Commit `ec66377`** — corecțiile găsite chiar în această instalare, detaliate
|
|
||||||
în mesajul de commit. Pe scurt:
|
|
||||||
- calea DMP e acum parametrul `-DmpDir`, expus ca `/dmpdest:` în FAZA1/FAZA2 și
|
|
||||||
transmisă pașilor 01, 02, 03, 05, 06 (înainte era hardcodată în cinci locuri,
|
|
||||||
iar pasul 02 repoziționa tăcut `DIRECTORY DMPDIR` înapoi pe `C:\DMPDIR`);
|
|
||||||
- `New-OracleDirectory` testează acum cu `UTL_FILE` că baza chiar **poate scrie**
|
|
||||||
acolo, nu doar că șirul din `dba_directories` e cel așteptat;
|
|
||||||
- pasul 01 scrie `sqlnet.ora` **și** în `TNS_ADMIN` când acesta diferă;
|
|
||||||
- pasul 05 nu mai poate lega o schemă de DMP-ul altei firme.
|
|
||||||
- **Kitul e pe serverul nou** în `D:\ROA-SETUP\roa-windows-setup\`, cu scripturile
|
|
||||||
actualizate. `DMPDIR\` al kitului conține `contafin_oracle.dmp` (213 MB, exportat
|
|
||||||
azi de la client) și `FIRMANOUA.dmp` (23 MB, adus de pe LXC 108).
|
|
||||||
- **`D:\DMPDIR`** pregătit, cu ACL pentru `NT SERVICE\OracleServiceXE`, conține
|
|
||||||
ambele DMP-uri.
|
|
||||||
- **FAZA1 rulată** cu:
|
|
||||||
```
|
|
||||||
FAZA1.cmd 134 /dmpdest:D:\DMPDIR /vechi:192.168.101.110 /parolavechi:romfastsoft /serviciuvechi:XE
|
|
||||||
```
|
|
||||||
Pașii 1–7 trecuți: tablespace + profil + user, obiecte SYS, import contafin
|
|
||||||
(**366 obiecte**, cod 5 = normal), sinonime + granturi, licențe de pe serverul
|
|
||||||
vechi, `08-post-install-config` (Id 134, 54 directoare de modul, joburi create
|
|
||||||
**dezactivate**), IIS instalat și `/roaupdate` publicat, export zilnic configurat.
|
|
||||||
Verificarea finală: **366 obiecte, 0 invalide, 12107 sinonime publice**.
|
|
||||||
|
|
||||||
`FAZA1.cmd` a ieșit cu **codul 1** și mesajul „FAZA 1 TERMINATA, CU OBSERVATII".
|
|
||||||
Singura observație e `4 company schemas are missing` (`DANUBE`,
|
|
||||||
`DANUBE_20200914`, `LACERTA`, `SPACE`) — **normal pentru faza 1**, firmele vin
|
|
||||||
în faza 2. Nimic altceva nu a eșuat.
|
|
||||||
|
|
||||||
> De îmbunătățit în kit: la faza 1, codul de ieșire 1 pentru firme lipsă e
|
|
||||||
> nedistinsabil de un eșec real. Pasul 07 ar trebui să primească un mod
|
|
||||||
> „faza 1" în care firmele lipsă nu schimbă codul de ieșire.
|
|
||||||
- Curățat după diagnostic: obiectele `DIRECTORY` de test (`T_WINTEMP`, `T_CROOT`,
|
|
||||||
`T_DMPDIR2`, `TESTDIR_D`) șterse, `C:\DMPDIR2` și `D:\DMPDIR-TEST` șterse, ACE-ul
|
|
||||||
temporar de pe rădăcina `C:\` retras.
|
|
||||||
|
|
||||||
## Capcana cu discul C: — nu o mai investiga
|
|
||||||
|
|
||||||
Pe serverul ăsta procesul Oracle **nu ajunge la nicio cale de pe `C:`**: nici
|
|
||||||
`C:\DMPDIR`, nici `C:\DMPDIR2`, nici `C:\Windows\Temp` (scriibil de oricine), nici
|
|
||||||
`C:\` însuși. Toate dau `ORA-29283: invalid file operation ... [29434]`, la
|
|
||||||
`UTL_FILE` direct, nu doar prin Data Pump. `D:` funcționează cu exact același
|
|
||||||
grant de ACL.
|
|
||||||
|
|
||||||
Verificat și exclus: ACL pe folder (era corect), ACL/traversare pe rădăcina `C:`
|
|
||||||
(adăugat explicit, fără efect), `PATH_PREFIX` de PDB (inexistent), `PDB_LOCKDOWN`
|
|
||||||
(gol), contul serviciului (`NT SERVICE\OracleServiceXE`, confirmat ca proprietar al
|
|
||||||
`oracle.exe`). Cauza reală n-a fost găsită și **nu merită căutată**: `D:` e oricum
|
|
||||||
locul corect — acolo sunt Oracle Home, `D:\ROA`, `D:\ROAUPDATE` și 725 GB liberi.
|
|
||||||
|
|
||||||
## Ce a mai rămas de făcut
|
|
||||||
|
|
||||||
1. **FAZA1 e gata** — nu mai e nimic de reluat acolo. Logurile pe server:
|
|
||||||
`D:\ROA-SETUP\roa-windows-setup\logs\`.
|
|
||||||
|
|
||||||
2. **Adu dump-urile firmelor și rulează FAZA2.** Exporturile sunt **deja făcute**
|
|
||||||
pe serverul vechi, în `D:\ROAUPDATE\`, ca `danube.zip`, `lacerta.zip`,
|
|
||||||
`space.zip` (plus `.explog` fiecare). Toate trei au raportat
|
|
||||||
`STATUS=COMPLETED`. De pe serverul nou:
|
|
||||||
```powershell
|
|
||||||
$wc = New-Object System.Net.WebClient
|
|
||||||
foreach ($s in 'danube','lacerta','space') {
|
|
||||||
$wc.DownloadFile("http://192.168.101.110/roaupdate/$s.zip",
|
|
||||||
"D:\ROA-SETUP\roa-windows-setup\DMPDIR\$($s.ToUpper()).dmp")
|
|
||||||
}
|
|
||||||
```
|
|
||||||
Numele fișierului trebuie să fie **exact `<SCHEMA>.dmp`** — pasul 05 leagă
|
|
||||||
schema de DMP după nume.
|
|
||||||
|
|
||||||
Apoi:
|
|
||||||
```
|
|
||||||
FAZA2.cmd 134 /dmpdest:D:\DMPDIR
|
|
||||||
```
|
|
||||||
`/reimportcontafin` **nu** e necesar: contafin-ul a fost exportat azi și nu s-a
|
|
||||||
adăugat nicio firmă între timp.
|
|
||||||
|
|
||||||
3. **Șterge fișierele de transfer de pe serverul vechi** după descărcare — altfel
|
|
||||||
rămân ~185 MB în `D:\ROAUPDATE` la client:
|
|
||||||
```sql
|
|
||||||
-- sqlplus system/romfastsoft@//192.168.101.110:1521/XE
|
|
||||||
begin
|
|
||||||
for f in (select column_value nume from table(sys.odcivarchar2list(
|
|
||||||
'danube.zip','danube.explog','lacerta.zip','lacerta.explog',
|
|
||||||
'space.zip','space.explog'))) loop
|
|
||||||
begin utl_file.fremove('UPD_ROAUPDATE', f.nume); exception when others then null; end;
|
|
||||||
end loop;
|
|
||||||
end;
|
|
||||||
/
|
|
||||||
```
|
|
||||||
|
|
||||||
4. **`tnsnames.ora` al ROAClient e încă cel șablon** — `D:\ROA\instantclient_11_2_0_2\tnsnames.ora`
|
|
||||||
conține `HOST = SERVER_ROA` / `SID = ROA`, care nu există. Trebuie înlocuit cu:
|
|
||||||
```
|
|
||||||
ROA =
|
|
||||||
(DESCRIPTION =
|
|
||||||
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.101.111)(PORT = 1521))
|
|
||||||
(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = XEPDB1))
|
|
||||||
)
|
|
||||||
```
|
|
||||||
IP-ul serverului, nu `localhost`, ca să meargă același fișier și pe stații.
|
|
||||||
**Fă backup înainte.** Nu am apucat să-l scriu — FAZA1 rula și n-am vrut să
|
|
||||||
umblu la configurația de rețea în timpul ei.
|
|
||||||
|
|
||||||
5. **Verifică `sqlnet.ora` în `TNS_ADMIN`.** `TNS_ADMIN` de mașină e
|
|
||||||
`d:\roa\instantclient_11_2_0_2` și **nu conținea niciun `sqlnet.ora`**. Pasul 01
|
|
||||||
din commit-ul `ec66377` îl scrie și acolo, dar **rularea de azi a folosit
|
|
||||||
versiunea veche a scriptului** pentru pasul 01 — deci pe server fișierul
|
|
||||||
probabil lipsește încă. Copiază-l manual din
|
|
||||||
`D:\app\Administrator\product\21c\homes\OraDB21Home1\network\admin\sqlnet.ora`,
|
|
||||||
altfel clienții vechi iau `ORA-28040`. Testul care contează:
|
|
||||||
```powershell
|
|
||||||
'exit' | Set-Content -Encoding ascii C:\Windows\Temp\e.sql
|
|
||||||
& 'D:\ROA\instantclient_11_2_0_2\sqlplus.exe' -S -L "system/romfastsoft@//192.168.101.111:1521/XEPDB1" '@C:\Windows\Temp\e.sql'
|
|
||||||
```
|
|
||||||
Ieșire goală = merge. La ultima încercare a dat `ORA-12514`, dar listenerul
|
|
||||||
tocmai era repornit de FAZA1 — de retestat.
|
|
||||||
|
|
||||||
6. **Joburile de update sunt create dezactivate.** Se activează manual când e cazul:
|
|
||||||
```sql
|
|
||||||
EXEC DBMS_SCHEDULER.ENABLE('CONTAFIN_ORACLE.UPDATEROA_ZILNIC');
|
|
||||||
EXEC DBMS_SCHEDULER.ENABLE('CONTAFIN_ORACLE.UPDATERTVAI_ZILNIC');
|
|
||||||
```
|
|
||||||
|
|
||||||
7. **Netestat încă:** pasul 11 (export zilnic cu `backupora.exe`). Marius a instalat
|
|
||||||
ROAClient în `D:\ROA`, deci runtime-ul VFP9 ar trebui să existe — asta rezolvă
|
|
||||||
incertitudinea din handoff-ul precedent. Rămâne de confirmat convenția
|
|
||||||
`backuppath` (`ExportPath` vs `C:\BACKUP_ORACLE`) și că `backupora.exe` acceptă
|
|
||||||
un service name EZConnect (`XEPDB1`), nu doar un SID.
|
|
||||||
|
|
||||||
## Ce e interzis
|
|
||||||
|
|
||||||
- Nu rula scripturile pe `10.0.20.121` (LXC 108) — e sursa șabloanelor, nu o țintă.
|
|
||||||
- Nu comite `config.ps1` și nici fișiere `.dmp`.
|
|
||||||
- Nu porni joburile de actualizare pe serverul nou cât timp utilizatorii lucrează
|
|
||||||
pe cel vechi.
|
|
||||||
- Nu reveni la `C:\DMPDIR` pe serverul ăsta.
|
|
||||||
|
|
||||||
## Legături
|
|
||||||
|
|
||||||
- Kit și flux complet: `proxmox/lxc108-oracle/roa-windows-setup/README.md`
|
|
||||||
- Handoff-ul precedent (starea kitului înainte de prima rulare reală):
|
|
||||||
`docs/handoff_instalare-doua-faze.md`
|
|
||||||
- Accesul prin Tailscale la clienți: `docs/acces-client-tailscale-ssh.md`
|
|
||||||
Reference in New Issue
Block a user