Files
ROMFASTSQL/proxmox/lxc108-oracle/roa-windows-setup/FAZA1.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

328 lines
13 KiB
Batchfile

@echo off
REM =============================================================================
REM ROA Oracle - FAZA 1: tot ce se poate face IN TIMPUL PROGRAMULUI
REM =============================================================================
REM Instaleaza si configureaza sistemul ROA complet, fara schemele de firma.
REM Utilizatorii lucreaza mai departe pe serverul vechi cat ruleaza asta.
REM
REM Ce intra in faza 1:
REM - baza, tablespace, user CONTAFIN_ORACLE, profil (01)
REM - obiectele SYS: AUTH_PACK, NEWSCHEMA, INFO... (02)
REM - CONTAFIN_ORACLE: al clientului daca e in DMPDIR, (03)
REM altfel sablonul din kit
REM - sinonime publice, granturi, sys-grants (04)
REM - licentele de pe serverul vechi (09, optional)
REM - directoare ROAUPDATE, SERVER_INFO, joburi, SMTP (08)
REM - oglinda de update publicata in IIS (10)
REM - exportul zilnic in D:\ROA\EXPORT_ORADMP (11)
REM - verificare (07)
REM
REM Ce NU intra: schemele de firma. Alea vin in FAZA2.cmd, dupa program.
REM
REM De ce merge asa: pe CONTAFIN_ORACLE nu se lucreaza activ, deci el poate
REM fi exportat de pe serverul vechi inca din timpul programului. Doar
REM firmele se schimba sub picioare.
REM
REM Utilizare:
REM FAZA1.cmd <IdClient> [optiuni]
REM
REM Optiuni:
REM /smtp:<server> server SMTP (implicit mail.romfast.ro)
REM /vechi:<gazda> serverul vechi, pentru licente
REM /serviciuvechi:<nume> serviciul de pe serverul vechi (implicit XE)
REM /parolavechi:<parola> parola SYS de pe serverul vechi
REM /licente:<fisier.sql> licente dintr-un fisier, in loc de retea
REM /roaupdate:<cale> radacina oglinzii (implicit D:\ROAUPDATE)
REM /export:<cale> director export (implicit D:\ROA\EXPORT_ORADMP)
REM /faralicente sari peste pasul 09
REM /faraiis sari peste pasul 10
REM /farabackup sari peste pasul 11
REM
REM Exemple:
REM FAZA1.cmd 138
REM FAZA1.cmd 138 /vechi:10.0.0.5 /parolavechi:oracle /serviciuvechi:XE
REM FAZA1.cmd 214 /licente:C:\kit\licente.sql /faraiis
REM =============================================================================
setlocal enabledelayedexpansion
set "KIT=%~dp0"
set "IDCLIENT=%~1"
set "DMPDEST=C:\DMPDIR"
REM Valori implicite
set "SMTP=mail.romfast.ro"
set "VECHI="
set "SERVICIUVECHI=XE"
set "PAROLAVECHI="
set "LICENTEFIS="
set "ROAUPDATE=D:\ROAUPDATE"
set "EXPORTDIR=D:\ROA\EXPORT_ORADMP"
set "FARALICENTE=0"
set "FARAIIS=0"
set "FARABACKUP=0"
if "%IDCLIENT%"=="" goto :utilizare
if /i "%IDCLIENT%"=="/?" goto :utilizare
REM ---------------------------------------------------------------------------
REM Parsarea optiunilor
REM ---------------------------------------------------------------------------
shift
:parsare
if "%~1"=="" goto :parsare_gata
set "ARG=%~1"
if /i "!ARG!"=="/faralicente" ( set "FARALICENTE=1" & shift & goto :parsare )
if /i "!ARG!"=="/faraiis" ( set "FARAIIS=1" & shift & goto :parsare )
if /i "!ARG!"=="/farabackup" ( set "FARABACKUP=1" & shift & goto :parsare )
for /f "tokens=1,* delims=:" %%A in ("!ARG!") do (
set "OPT=%%A"
set "VAL=%%B"
)
if /i "!OPT!"=="/smtp" set "SMTP=!VAL!"
if /i "!OPT!"=="/vechi" set "VECHI=!VAL!"
if /i "!OPT!"=="/serviciuvechi" set "SERVICIUVECHI=!VAL!"
if /i "!OPT!"=="/parolavechi" set "PAROLAVECHI=!VAL!"
if /i "!OPT!"=="/licente" set "LICENTEFIS=!VAL!"
if /i "!OPT!"=="/roaupdate" set "ROAUPDATE=!VAL!"
if /i "!OPT!"=="/export" set "EXPORTDIR=!VAL!"
shift
goto :parsare
:parsare_gata
echo.
echo ============================================================
echo ROA Oracle - FAZA 1 (in timpul programului)
echo ============================================================
echo.
echo Kit: %KIT%
echo Id client: %IDCLIENT%
echo SMTP: %SMTP%
echo ROAUPDATE: %ROAUPDATE%
echo Export: %EXPORTDIR%
if not "%VECHI%"=="" echo Server vechi: %VECHI% / %SERVICIUVECHI%
if not "%LICENTEFIS%"=="" echo Licente din: %LICENTEFIS%
echo.
REM ---------------------------------------------------------------------------
REM [1/9] DMPDIR
REM ---------------------------------------------------------------------------
if not exist "%KIT%DMPDIR\FIRMANOUA.dmp" (
echo [EROARE] Lipseste "%KIT%DMPDIR\FIRMANOUA.dmp".
echo Fara sablonul de firma noua, clientul nu va putea adauga firme.
exit /b 1
)
dir /b "%KIT%DMPDIR\*contafin*.dmp" >nul 2>&1
if errorlevel 1 (
echo [EROARE] Lipseste un fisier *contafin*.dmp din "%KIT%DMPDIR".
exit /b 1
)
if not exist "%DMPDEST%" mkdir "%DMPDEST%"
echo [1/9] Copiez DMP-urile in %DMPDEST% ...
copy /Y "%KIT%DMPDIR\*.dmp" "%DMPDEST%\" >nul
if errorlevel 1 (
echo [EROARE] Copierea DMP-urilor a esuat.
exit /b 1
)
REM Serviciul Oracle citeste fisierele cu contul lui, nu cu al tau.
icacls "%DMPDEST%" /grant "NT SERVICE\OracleServiceXE:(OI)(CI)F" /T >nul 2>&1
echo Gata.
REM ---------------------------------------------------------------------------
REM [2/9] 01 - baza si userul
REM ---------------------------------------------------------------------------
echo.
echo [2/9] 01-setup-database.ps1
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\01-setup-database.ps1"
if errorlevel 1 goto :esec_01
REM ---------------------------------------------------------------------------
REM [3/9] 02 - obiectele SYS
REM ---------------------------------------------------------------------------
echo.
echo [3/9] 02-create-sys-objects.ps1
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\02-create-sys-objects.ps1"
if errorlevel 1 goto :esec_02
REM ---------------------------------------------------------------------------
REM [4/9] 03 - CONTAFIN_ORACLE
REM ---------------------------------------------------------------------------
echo.
echo [4/9] 03-import-contafin.ps1
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\03-import-contafin.ps1"
set RC=!ERRORLEVEL!
REM Codul 5 e normal: Data Pump raporteaza "completed with errors" pentru
REM ORA-31684 (userul e creat deja de pasul 01) si ORA-39082 (warning-uri de
REM compilare, rezolvate la pasul 04). Orice alt cod nenul e esec real.
if "!RC!"=="0" goto :pas_04
if "!RC!"=="5" (
echo [INFO] Cod de iesire 5 - normal pentru Data Pump, se continua.
goto :pas_04
)
echo [EROARE] 03-import-contafin.ps1 a iesit cu codul !RC!.
exit /b !RC!
:pas_04
REM ---------------------------------------------------------------------------
REM [5/9] 04 - sinonime si granturi
REM ---------------------------------------------------------------------------
echo.
echo [5/9] 04-create-synonyms-grants.ps1
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\04-create-synonyms-grants.ps1"
if errorlevel 1 goto :esec_04
REM ---------------------------------------------------------------------------
REM [6/9] 09 - licentele de pe serverul vechi
REM ---------------------------------------------------------------------------
echo.
if "%FARALICENTE%"=="1" (
echo [6/9] 09-copy-licenses.ps1 - sarit ^(/faralicente^)
goto :pas_08
)
if not "%LICENTEFIS%"=="" (
echo [6/9] 09-copy-licenses.ps1 ^(din fisier^)
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\09-copy-licenses.ps1" -FromFile "%LICENTEFIS%" -Replace
if errorlevel 1 goto :avert_09
goto :pas_08
)
if not "%VECHI%"=="" (
if "%PAROLAVECHI%"=="" (
echo [6/9] 09-copy-licenses.ps1 - sarit: ai dat /vechi dar nu si /parolavechi.
goto :pas_08
)
echo [6/9] 09-copy-licenses.ps1 ^(prin retea de la %VECHI%^)
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\09-copy-licenses.ps1" -OldHost "%VECHI%" -OldService "%SERVICIUVECHI%" -OldSysPassword "%PAROLAVECHI%" -Replace
if errorlevel 1 goto :avert_09
goto :pas_08
)
echo [6/9] 09-copy-licenses.ps1 - sarit: nu ai dat nici /vechi, nici /licente.
echo ATENTIE: la o migrare, fara pasul asta clientul ramane fara licente.
goto :pas_08
:avert_09
echo.
echo [ATENTIE] Copierea licentelor a esuat. Instalarea CONTINUA - restul
echo pasilor nu depind de ea - dar clientul nu va avea licente
echo pana nu reiei:
echo Run.cmd 09-copy-licenses.ps1 -FromFile ^<fisier^> -Replace
echo.
:pas_08
REM ---------------------------------------------------------------------------
REM [7/9] 08 - configurare post-instalare
REM ---------------------------------------------------------------------------
echo.
echo [7/9] 08-post-install-config.ps1
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 [8/9] 10 si 11 - IIS si exportul zilnic
REM ---------------------------------------------------------------------------
echo.
if "%FARAIIS%"=="1" (
echo [8/9] 10-setup-roaupdate-iis.ps1 - sarit ^(/faraiis^)
) else (
echo [8/9] 10-setup-roaupdate-iis.ps1
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\10-setup-roaupdate-iis.ps1" -RoaUpdatePath "%ROAUPDATE%"
if errorlevel 1 (
echo [ATENTIE] Publicarea in IIS a esuat. Instalarea continua.
echo Statiile nu vor lua actualizari pana nu reiei pasul 10.
)
)
echo.
if "%FARABACKUP%"=="1" (
echo 11-setup-backup-export.ps1 - sarit ^(/farabackup^)
) else (
echo 11-setup-backup-export.ps1
powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\11-setup-backup-export.ps1" -ExportPath "%EXPORTDIR%"
if errorlevel 1 (
echo [ATENTIE] Configurarea exportului zilnic a esuat. Instalarea continua.
echo Reia cu: Run.cmd 11-setup-backup-export.ps1
)
)
REM ---------------------------------------------------------------------------
REM [9/9] 07 - verificare
REM ---------------------------------------------------------------------------
echo.
echo [9/9] 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 1 COMPLETA - verificarea a trecut integral.
) else (
echo FAZA 1 TERMINATA, CU OBSERVATII.
echo.
echo "N company schemas are missing" e NORMAL la faza 1: firmele
echo se importa abia in faza 2. Orice altceva citeste cu atentie.
)
echo ============================================================
echo.
echo PANA LA FAZA 2:
echo - utilizatorii lucreaza mai departe pe serverul VECHI;
echo - nu porni joburile de actualizare pe serverul nou;
echo - daca in intervalul asta se adauga o firma noua pe serverul vechi,
echo spune-i lui FAZA2.cmd sa reimporte si CONTAFIN_ORACLE
echo ^(/reimportcontafin^), altfel NOM_FIRME ramane in urma.
echo.
echo FAZA 2, dupa ce utilizatorii termina:
echo 1. exporta schemele de firma de pe serverul vechi;
echo 2. pune DMP-urile in %DMPDEST%;
echo 3. FAZA2.cmd %IDCLIENT%
echo.
endlocal & exit /b %RCVERIF%
REM ---------------------------------------------------------------------------
:esec_01
echo [EROARE] 01-setup-database.ps1 a esuat. Faza 1 se opreste.
exit /b 1
:esec_02
echo [EROARE] 02-create-sys-objects.ps1 a esuat. Faza 1 se opreste.
exit /b 1
:esec_04
echo [EROARE] 04-create-synonyms-grants.ps1 a esuat. Faza 1 se opreste.
exit /b 1
:esec_08
echo [EROARE] 08-post-install-config.ps1 a esuat. Faza 1 se opreste.
exit /b 1
:utilizare
echo.
echo Utilizare:
echo FAZA1.cmd ^<IdClient^> [optiuni]
echo.
echo Optiuni:
echo /smtp:^<server^> server SMTP ^(implicit mail.romfast.ro^)
echo /vechi:^<gazda^> serverul vechi, pentru licente
echo /serviciuvechi:^<nume^> serviciul de pe serverul vechi ^(implicit XE^)
echo /parolavechi:^<parola^> parola SYS de pe serverul vechi
echo /licente:^<fisier.sql^> licente dintr-un fisier, in loc de retea
echo /roaupdate:^<cale^> radacina oglinzii ^(implicit D:\ROAUPDATE^)
echo /export:^<cale^> director export ^(implicit D:\ROA\EXPORT_ORADMP^)
echo /faralicente sari peste pasul 09
echo /faraiis sari peste pasul 10
echo /farabackup sari peste pasul 11
echo.
echo Exemple:
echo FAZA1.cmd 138
echo FAZA1.cmd 138 /vechi:10.0.0.5 /parolavechi:oracle /serviciuvechi:XE
echo FAZA1.cmd 214 /licente:C:\kit\licente.sql /faraiis
echo.
echo In DMPDIR trebuie sa fie:
echo - FIRMANOUA.dmp ^(sablon, mereu^)
echo - *contafin*.dmp ^(al clientului la migrare, sablonul la client nou^)
echo.
exit /b 2