@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 [optiuni] REM REM Optiuni: REM /reimportcontafin inlocuieste CONTAFIN_ORACLE cu cel din DMPDIR REM /smtp: server SMTP (implicit mail.romfast.ro) REM /roaupdate: radacina oglinzii (implicit D:\ROAUPDATE) REM /export: director export (implicit D:\ROA\EXPORT_ORADMP) REM /dmp: de unde se copiaza DMP-urile (implicit \DMPDIR) REM /dmpdest: de unde le citeste baza (implicit C:\DMPDIR) REM Trebuie sa fie aceeasi valoare ca la FAZA1. 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!" if /i "!OPT!"=="/dmpdest" set "DMPDEST=!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" -DmpDir "%DMPDEST%" if errorlevel 1 goto :esec_01 echo. echo 03-import-contafin.ps1 powershell.exe -ExecutionPolicy Bypass -NoProfile -File "%KIT%scripts\03-import-contafin.ps1" -DmpDir "%DMPDEST%" 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" -DumpDirectory "%DMPDEST%" -DmpDir "%DMPDEST%" 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 ^ [optiuni] echo. echo Optiuni: echo /reimportcontafin inlocuieste CONTAFIN_ORACLE cu cel din DMPDIR echo /smtp:^ server SMTP ^(implicit mail.romfast.ro^) echo /roaupdate:^ radacina oglinzii ^(implicit D:\ROAUPDATE^) echo /export:^ director export ^(implicit D:\ROA\EXPORT_ORADMP^) echo /dmp:^ 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