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
284 lines
10 KiB
Batchfile
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
|