@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 [optiuni] REM REM Optiuni: REM /smtp: server SMTP (implicit mail.romfast.ro) REM /vechi: serverul vechi, pentru licente REM /serviciuvechi: serviciul de pe serverul vechi (implicit XE) REM /parolavechi: parola SYS de pe serverul vechi REM /licente: licente dintr-un fisier, in loc de retea REM /roaupdate: radacina oglinzii (implicit D:\ROAUPDATE) REM /export: director export (implicit D:\ROA\EXPORT_ORADMP) REM /dmpdest: de unde citeste baza DMP-urile (implicit C:\DMPDIR) REM Pe unele masini procesul Oracle nu ajunge la C:\ deloc REM (ORA-29283 la orice cale de pe C:, inclusiv C:\Windows\Temp, REM desi ACL-urile sunt corecte). Atunci pune-l pe discul unde REM e Oracle Home: /dmpdest:D:\DMPDIR 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!" if /i "!OPT!"=="/dmpdest" set "DMPDEST=!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 DMP: %DMPDEST% 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" -DmpDir "%DMPDEST%" 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" -DmpDir "%DMPDEST%" 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" -DmpDir "%DMPDEST%" 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 ^ -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 ^ [optiuni] echo. echo Optiuni: echo /smtp:^ server SMTP ^(implicit mail.romfast.ro^) echo /vechi:^ serverul vechi, pentru licente echo /serviciuvechi:^ serviciul de pe serverul vechi ^(implicit XE^) echo /parolavechi:^ parola SYS de pe serverul vechi echo /licente:^ licente dintr-un fisier, in loc de retea echo /roaupdate:^ radacina oglinzii ^(implicit D:\ROAUPDATE^) echo /export:^ 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