Files
ROMFASTSQL/proxmox/lxc108-oracle/roa-windows-setup/FAZA2.cmd
Marius 5a746990ce feat(oracle): instalare ROA in doua faze, licente, IIS si export zilnic
Adauga FAZA1.cmd/FAZA2.cmd, care despart migrarea in partea care se poate
face in timpul programului (contafin, obiecte SYS, sinonime, licente, IIS)
si partea de seara (schemele de firma). Scripturi noi: 09 pentru licentele
din SYS.AUTH_SERII/AUTH_DETALII, 10 pentru publicarea D:\ROAUPDATE in IIS,
11 pentru exportul zilnic cu backupora.exe, drop-contafin pentru reimport.

backupora.exe si sabloanele sale intra in repo ca sa fie kitul autonom.
Pasul 07 primeste verificarile corespunzatoare pentru licente, IIS si task.

Nerulat inca pe o baza reala - vezi docs/handoff_instalare-doua-faze.md.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SzF1hf4aFS1tmJWpPMiwGp
2026-08-25 20:57:23 +03:00

284 lines
10 KiB
Batchfile

@echo off
REM =============================================================================
REM ROA Oracle - FAZA 2: dupa ce utilizatorii au terminat de lucrat
REM =============================================================================
REM Aduce datele reale ale clientului peste sistemul deja instalat si
REM configurat de FAZA1.cmd. Asta e fereastra de downtime; tine-o scurta.
REM
REM Ce face:
REM - optional, reimporta CONTAFIN_ORACLE de pe serverul vechi (/reimportcontafin)
REM prin DROP USER CASCADE + recreare + import curat
REM - importa schemele de firma din DMPDIR (05)
REM - reface SERVER_INFO, directoarele si joburile (08)
REM - regenereaza schema.txt pentru exportul zilnic (11 -SchemaOnly)
REM - verifica (07)
REM
REM DE CE se reia pasul 08:
REM SERVER_INFO e o TABELA in CONTAFIN_ORACLE, nu in SYS. Cand vine
REM contafin-ul clientului peste, aduce cu el SERVER_INFO de pe serverul
REM VECHI - cai vechi, parole vechi, SMTP vechi. Fara reluarea pasului 08,
REM actualizarile ar cauta fisiere pe calea serverului vechi.
REM
REM Utilizare:
REM FAZA2.cmd <IdClient> [optiuni]
REM
REM Optiuni:
REM /reimportcontafin inlocuieste CONTAFIN_ORACLE cu cel din DMPDIR
REM /smtp:<server> server SMTP (implicit mail.romfast.ro)
REM /roaupdate:<cale> radacina oglinzii (implicit D:\ROAUPDATE)
REM /export:<cale> director export (implicit D:\ROA\EXPORT_ORADMP)
REM /dmp:<cale> de unde se copiaza DMP-urile (implicit <kit>\DMPDIR)
REM /faraschema nu regenera schema.txt
REM
REM Exemple:
REM FAZA2.cmd 138
REM FAZA2.cmd 138 /reimportcontafin
REM FAZA2.cmd 214 /dmp:E:\export-client /reimportcontafin
REM =============================================================================
setlocal enabledelayedexpansion
set "KIT=%~dp0"
set "IDCLIENT=%~1"
set "DMPDEST=C:\DMPDIR"
set "SMTP=mail.romfast.ro"
set "ROAUPDATE=D:\ROAUPDATE"
set "EXPORTDIR=D:\ROA\EXPORT_ORADMP"
set "DMPSURSA=%KIT%DMPDIR"
set "REIMPORT=0"
set "FARASCHEMA=0"
if "%IDCLIENT%"=="" goto :utilizare
if /i "%IDCLIENT%"=="/?" goto :utilizare
shift
:parsare
if "%~1"=="" goto :parsare_gata
set "ARG=%~1"
if /i "!ARG!"=="/reimportcontafin" ( set "REIMPORT=1" & shift & goto :parsare )
if /i "!ARG!"=="/faraschema" ( set "FARASCHEMA=1" & shift & goto :parsare )
for /f "tokens=1,* delims=:" %%A in ("!ARG!") do (
set "OPT=%%A"
set "VAL=%%B"
)
REM "tokens=1,*" pastreaza in %%B tot ce urmeaza dupa PRIMUL ':', inclusiv
REM ':' din caile de tip D:\ROAUPDATE. Deci /roaupdate:D:\ROAUPDATE ajunge
REM corect ca OPT=/roaupdate, VAL=D:\ROAUPDATE.
if /i "!OPT!"=="/smtp" set "SMTP=!VAL!"
if /i "!OPT!"=="/roaupdate" set "ROAUPDATE=!VAL!"
if /i "!OPT!"=="/export" set "EXPORTDIR=!VAL!"
if /i "!OPT!"=="/dmp" set "DMPSURSA=!VAL!"
shift
goto :parsare
:parsare_gata
echo.
echo ============================================================
echo ROA Oracle - FAZA 2 (dupa program)
echo ============================================================
echo.
echo Id client: %IDCLIENT%
echo DMP sursa: %DMPSURSA%
echo DMP tinta: %DMPDEST%
echo ROAUPDATE: %ROAUPDATE%
echo Export: %EXPORTDIR%
if "%REIMPORT%"=="1" (
echo CONTAFIN: SE REIMPORTA ^(drop user cascade^)
) else (
echo CONTAFIN: se pastreaza cel din faza 1
)
echo.
REM ---------------------------------------------------------------------------
REM [1/6] DMP-urile firmelor
REM ---------------------------------------------------------------------------
if not exist "%DMPSURSA%" (
echo [EROARE] Directorul sursa "%DMPSURSA%" nu exista.
exit /b 1
)
set /a TOTALDMP=0
for %%F in ("%DMPSURSA%\*.dmp") do set /a TOTALDMP+=1
if !TOTALDMP! EQU 0 (
echo [EROARE] Nu am gasit niciun fisier .dmp in "%DMPSURSA%".
exit /b 1
)
REM Kitul contine 2 sabloane: *contafin*.dmp si FIRMANOUA.dmp. Orice peste 2
REM sunt DMP-urile de firma ale clientului.
if !TOTALDMP! LEQ 2 (
echo [ATENTIE] In "%DMPSURSA%" sunt doar !TOTALDMP! fisiere DMP, adica doar
echo sabloanele. Faza 2 are rost doar cu DMP-urile firmelor.
echo Exporta-le de pe serverul vechi si pune-le acolo.
echo.
echo Continui oricum - pasul 05 va raporta ce lipseste.
echo.
)
if not exist "%DMPDEST%" mkdir "%DMPDEST%"
echo [1/6] Copiez %TOTALDMP% fisiere DMP in %DMPDEST% ...
copy /Y "%DMPSURSA%\*.dmp" "%DMPDEST%\" >nul
if errorlevel 1 (
echo [EROARE] Copierea DMP-urilor a esuat.
exit /b 1
)
icacls "%DMPDEST%" /grant "NT SERVICE\OracleServiceXE:(OI)(CI)F" /T >nul 2>&1
echo Gata.
REM ---------------------------------------------------------------------------
REM [2/6] Reimportul lui CONTAFIN_ORACLE (optional)
REM ---------------------------------------------------------------------------
echo.
if "%REIMPORT%"=="0" (
echo [2/6] Reimport CONTAFIN_ORACLE - sarit.
echo Foloseste /reimportcontafin daca intre faze s-au adaugat firme
echo sau s-au modificat nomenclatoare pe serverul vechi.
goto :pas_05
)
echo [2/6] Reimport CONTAFIN_ORACLE
echo Se sterge schema existenta si se importa cea din %DMPDEST%.
echo.
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\drop-contafin.ps1" -Force -KillSessions
if errorlevel 1 goto :esec_drop
echo.
echo 01-setup-database.ps1 (recreare user)
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\01-setup-database.ps1"
if errorlevel 1 goto :esec_01
echo.
echo 03-import-contafin.ps1
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\03-import-contafin.ps1"
set RC=!ERRORLEVEL!
if "!RC!"=="0" goto :dupa_03
if "!RC!"=="5" (
echo [INFO] Cod de iesire 5 - normal pentru Data Pump, se continua.
goto :dupa_03
)
echo [EROARE] 03-import-contafin.ps1 a iesit cu codul !RC!.
exit /b !RC!
:dupa_03
echo.
echo 04-create-synonyms-grants.ps1
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\04-create-synonyms-grants.ps1"
if errorlevel 1 goto :esec_04
:pas_05
REM ---------------------------------------------------------------------------
REM [3/6] Schemele de firma
REM ---------------------------------------------------------------------------
echo.
echo [3/6] 05-import-companies.ps1
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\05-import-companies.ps1"
if errorlevel 1 goto :esec_05
REM ---------------------------------------------------------------------------
REM [4/6] Reconfigurare post-import
REM ---------------------------------------------------------------------------
echo.
echo [4/6] 08-post-install-config.ps1 (reluare)
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\08-post-install-config.ps1" -CustomerId "%IDCLIENT%" -EmailSmtp "%SMTP%" -RoaUpdatePath "%ROAUPDATE%"
if errorlevel 1 goto :esec_08
REM ---------------------------------------------------------------------------
REM [5/6] schema.txt pentru exportul zilnic
REM ---------------------------------------------------------------------------
echo.
if "%FARASCHEMA%"=="1" (
echo [5/6] schema.txt - sarit ^(/faraschema^)
) else (
echo [5/6] 11-setup-backup-export.ps1 -SchemaOnly
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\11-setup-backup-export.ps1" -ExportPath "%EXPORTDIR%" -SchemaOnly
if errorlevel 1 (
echo [ATENTIE] Nu am putut regenera schema.txt. Exportul zilnic va
echo exporta lista veche. Reia cu:
echo Run.cmd 11-setup-backup-export.ps1 -SchemaOnly
)
)
REM ---------------------------------------------------------------------------
REM [6/6] Verificare
REM ---------------------------------------------------------------------------
echo.
echo [6/6] 07-verify-installation.ps1
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\07-verify-installation.ps1"
set RCVERIF=!ERRORLEVEL!
echo.
echo ============================================================
if "!RCVERIF!"=="0" (
echo FAZA 2 COMPLETA - verificarea a trecut integral.
) else (
echo FAZA 2 TERMINATA, DAR VERIFICAREA A SEMNALAT PROBLEME.
echo.
echo "N company schemas are missing" inseamna ca lipsesc DMP-urile
echo firmelor respective. Copiaza-le in %DMPDEST% si reia doar pasul 05:
echo Run.cmd 05-import-companies.ps1
)
echo ============================================================
echo.
echo INAINTE SA PLECI DE LA CLIENT:
echo.
echo 1. Pasul 08 a RECREAT joburile de actualizare, dezactivate.
echo Daca trebuie sa mearga, activeaza-le:
echo EXEC DBMS_SCHEDULER.ENABLE('CONTAFIN_ORACLE.UPDATEROA_ZILNIC');
echo EXEC DBMS_SCHEDULER.ENABLE('CONTAFIN_ORACLE.UPDATERTVAI_ZILNIC');
echo.
echo 2. Verifica oglinda de update: http://localhost/roaupdate/
echo.
echo 3. Ruleaza o data exportul, sa vezi ca scrie:
echo Start-ScheduledTask -TaskName "ROA Export Oracle"
echo.
echo 4. NU sterge FIRMANOUA.dmp din %DMPDEST% - e folosit la fiecare
echo firma noua, oricand pe viitor.
echo.
echo 5. Opreste serverul VECHI sau cel putin listener-ul, ca sa nu se
echo conecteze cineva din greseala la datele vechi.
echo.
endlocal & exit /b %RCVERIF%
REM ---------------------------------------------------------------------------
:esec_drop
echo [EROARE] Nu am putut sterge CONTAFIN_ORACLE. Faza 2 se opreste.
echo Verifica daca mai are sesiuni deschise:
echo SELECT sid, serial#, program FROM v$session WHERE username = 'CONTAFIN_ORACLE';
exit /b 1
:esec_01
echo [EROARE] 01-setup-database.ps1 a esuat. Faza 2 se opreste.
exit /b 1
:esec_04
echo [EROARE] 04-create-synonyms-grants.ps1 a esuat. Faza 2 se opreste.
exit /b 1
:esec_05
echo [EROARE] 05-import-companies.ps1 a esuat. Faza 2 se opreste.
exit /b 1
:esec_08
echo [EROARE] 08-post-install-config.ps1 a esuat. Faza 2 se opreste.
exit /b 1
:utilizare
echo.
echo Utilizare:
echo FAZA2.cmd ^<IdClient^> [optiuni]
echo.
echo Optiuni:
echo /reimportcontafin inlocuieste CONTAFIN_ORACLE cu cel din DMPDIR
echo /smtp:^<server^> server SMTP ^(implicit mail.romfast.ro^)
echo /roaupdate:^<cale^> radacina oglinzii ^(implicit D:\ROAUPDATE^)
echo /export:^<cale^> director export ^(implicit D:\ROA\EXPORT_ORADMP^)
echo /dmp:^<cale^> de unde se copiaza DMP-urile
echo /faraschema nu regenera schema.txt
echo.
echo Faza 2 se ruleaza DUPA FAZA1.cmd, cand utilizatorii au terminat de lucrat.
echo.
exit /b 2