oracle migrare
This commit is contained in:
788
oracle/migration-scripts/00-MASTER-MIGRATION.bat
Normal file
788
oracle/migration-scripts/00-MASTER-MIGRATION.bat
Normal file
@@ -0,0 +1,788 @@
|
||||
@echo off
|
||||
REM ==============================================================================
|
||||
REM Script: 00-MASTER-MIGRATION.bat
|
||||
REM Descriere: Master control script - Windows Edition
|
||||
REM Data: 1 Octombrie 2025
|
||||
REM Autor: Migrare Oracle automata
|
||||
REM ==============================================================================
|
||||
REM
|
||||
REM Acest script controleaza intregul proces de migrare Oracle pe Windows
|
||||
REM - Ghideaza utilizatorul prin fiecare pas
|
||||
REM - Suport special pentru UPGRADE IN-PLACE (Oracle vechi → 21c pe acelasi PC)
|
||||
REM - Poate rula scripturi bash prin WSL sau ghidare manuala
|
||||
REM
|
||||
REM ==============================================================================
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
REM Culori (Windows 10+)
|
||||
set "GREEN=[92m"
|
||||
set "YELLOW=[93m"
|
||||
set "RED=[91m"
|
||||
set "BLUE=[94m"
|
||||
set "NC=[0m"
|
||||
|
||||
REM Banner
|
||||
cls
|
||||
echo.
|
||||
echo ========================================
|
||||
echo MASTER MIGRARE ORACLE 10g - 21c XE
|
||||
echo Windows Edition
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Acest script te va ghida prin intregul proces de migrare Oracle.
|
||||
echo.
|
||||
echo IMPORTANT: Ruleaza ca ADMINISTRATOR!
|
||||
echo.
|
||||
pause
|
||||
|
||||
REM ==============================================================================
|
||||
REM CONFIGURARE MEDIU
|
||||
REM ==============================================================================
|
||||
|
||||
cls
|
||||
echo.
|
||||
echo ========================================
|
||||
echo CONFIGURARE CONEXIUNI ORACLE
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
REM Detectare SQLPlus (Oracle Client)
|
||||
set SQLPLUS_AVAILABLE=0
|
||||
where sqlplus >nul 2>&1
|
||||
if %errorlevel% equ 0 (
|
||||
set SQLPLUS_AVAILABLE=1
|
||||
echo %GREEN%[✓] SQLPlus disponibil%NC%
|
||||
) else (
|
||||
echo %YELLOW%[!] SQLPlus nu este instalat sau nu este in PATH%NC%
|
||||
)
|
||||
echo.
|
||||
|
||||
echo Unde este instalat Oracle 21c XE?
|
||||
echo 1) Acest PC Windows (local)
|
||||
echo 2) VM/Server Linux (cu WSL pentru scripturi)
|
||||
echo 3) LXC Proxmox (necesita WSL + SSH)
|
||||
echo.
|
||||
set /p ORACLE_LOCATION="Alegere (1/2/3): "
|
||||
|
||||
if "%ORACLE_LOCATION%"=="1" (
|
||||
set ORACLE_CONNECT_TYPE=WINDOWS_LOCAL
|
||||
echo - Oracle 21c: Windows Local
|
||||
) else if "%ORACLE_LOCATION%"=="2" (
|
||||
set /p ORACLE_HOST="IP/hostname server Linux: "
|
||||
set ORACLE_CONNECT_TYPE=LINUX_REMOTE
|
||||
echo - Oracle 21c: Linux Remote ^(!ORACLE_HOST!^)
|
||||
) else if "%ORACLE_LOCATION%"=="3" (
|
||||
set /p PROXMOX_HOST="IP/hostname Proxmox: "
|
||||
set /p LXC_ID="ID LXC: "
|
||||
set ORACLE_CONNECT_TYPE=LXC
|
||||
echo - Oracle 21c: LXC !LXC_ID! @ !PROXMOX_HOST!
|
||||
) else (
|
||||
echo %RED%Alegere invalida!%NC%
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo CONFIGURARE EXPORT
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Cum vrei sa faci EXPORTUL din Oracle sursa?
|
||||
echo 1) AUTOMAT - SSH catre server sursa (export automat)
|
||||
echo 2) MANUAL - Tu exporti, scriptul preia fisierele DMP
|
||||
echo 3) LOCAL - Migrare pe acelasi server (porturi diferite)
|
||||
echo 4) UPGRADE IN-PLACE - Oracle vechi - Oracle nou (acest PC, ghidare completa)
|
||||
echo.
|
||||
set /p EXPORT_CHOICE="Alegere (1/2/3/4): "
|
||||
|
||||
if "%EXPORT_CHOICE%"=="1" (
|
||||
REM Export AUTOMAT via SSH
|
||||
set /p ORACLE_SOURCE_HOST="IP/hostname Oracle sursa: "
|
||||
set /p ORACLE_SOURCE_USER="User SSH: "
|
||||
set /p ORACLE_SOURCE_OS="Tip server sursa (Linux/Windows): "
|
||||
set EXPORT_MODE=AUTO
|
||||
echo - Export AUTOMAT via SSH
|
||||
|
||||
) else if "%EXPORT_CHOICE%"=="2" (
|
||||
REM Export MANUAL
|
||||
set /p EXPORT_DIR="Director unde vei pune fisierele DMP (ex: D:\ORACLE_EXPORT): "
|
||||
set EXPORT_MODE=MANUAL
|
||||
echo - Export MANUAL (tu exporti local)
|
||||
|
||||
) else if "%EXPORT_CHOICE%"=="3" (
|
||||
REM Migrare LOCALA (porturi diferite)
|
||||
echo.
|
||||
echo %YELLOW%Migrare LOCALA detectata (acelasi server)%NC%
|
||||
echo.
|
||||
set /p ORACLE_SOURCE_PORT="Port Oracle SURSA (ex: 1521): "
|
||||
set /p ORACLE_SOURCE_SID="SID Oracle SURSA (ex: XE): "
|
||||
set /p ORACLE_SOURCE_PASS="Password SYSTEM pentru Oracle SURSA: "
|
||||
set /p ORACLE_DEST_PORT="Port Oracle DESTINATIE (ex: 1522): "
|
||||
set /p ORACLE_DEST_SID="SID Oracle DESTINATIE (ex: roa): "
|
||||
set /p EXPORT_DIR="Director pentru export local (ex: D:\oracle-export): "
|
||||
set EXPORT_MODE=LOCAL
|
||||
echo - Export LOCAL (acelasi server: !ORACLE_SOURCE_PORT! - !ORACLE_DEST_PORT!)
|
||||
|
||||
) else if "%EXPORT_CHOICE%"=="4" (
|
||||
REM UPGRADE IN-PLACE
|
||||
cls
|
||||
echo.
|
||||
echo ╔══════════════════════════════════════════════════════════════╗
|
||||
echo ║ UPGRADE ORACLE IN-PLACE - GHIDARE COMPLETA ║
|
||||
echo ╚══════════════════════════════════════════════════════════════╝
|
||||
echo.
|
||||
echo Acest mod te va ghida prin urmatorii pasi:
|
||||
echo 1. 📤 Export DMP din Oracle vechi (pe Windows)
|
||||
echo 2. ⏸️ Oprire servicii Oracle vechi
|
||||
echo 3. 📥 Instalare Oracle 21c XE nou
|
||||
echo 4. 📦 Import DMP in Oracle 21c
|
||||
echo 5. ✅ Verificare si finalizare
|
||||
echo.
|
||||
|
||||
set /p OLD_ORACLE_PORT="Port Oracle VECHI (default 1521): "
|
||||
if "!OLD_ORACLE_PORT!"=="" set OLD_ORACLE_PORT=1521
|
||||
|
||||
set /p OLD_ORACLE_SID="SID Oracle VECHI (ex: XE, ROA): "
|
||||
set /p OLD_ORACLE_PASS="Password SYSTEM pentru Oracle VECHI: "
|
||||
set /p EXPORT_DIR="Director pentru salvare DMP (ex: D:\oracle-export): "
|
||||
|
||||
set EXPORT_MODE=INPLACE
|
||||
set ORACLE_SOURCE_OS=Windows
|
||||
|
||||
echo.
|
||||
echo %GREEN%Configurare UPGRADE IN-PLACE completa!%NC%
|
||||
echo Oracle vechi: !OLD_ORACLE_SID! @ localhost:!OLD_ORACLE_PORT!
|
||||
echo Export in: !EXPORT_DIR!
|
||||
|
||||
) else (
|
||||
echo %RED%Alegere invalida!%NC%
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo REZUMAT CONFIGURARE
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Oracle 21c: %ORACLE_CONNECT_TYPE%
|
||||
echo Export mode: %EXPORT_MODE%
|
||||
if "%EXPORT_MODE%"=="INPLACE" (
|
||||
echo Oracle vechi: !OLD_ORACLE_SID! @ localhost:!OLD_ORACLE_PORT!
|
||||
echo Export dir: !EXPORT_DIR!
|
||||
)
|
||||
echo.
|
||||
set /p CONFIRM="Configurarea este corecta? (Y/N): "
|
||||
if /i not "%CONFIRM%"=="Y" (
|
||||
echo.
|
||||
echo Reconfigureaza si ruleaza din nou
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM ==============================================================================
|
||||
REM MOD OPERARE
|
||||
REM ==============================================================================
|
||||
|
||||
cls
|
||||
echo.
|
||||
echo ========================================
|
||||
echo SELECTARE MOD OPERARE
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Selecteaza modul de lucru:
|
||||
echo 1) MIGRARE COMPLETA (Oracle 10g - 21c)
|
||||
echo 2) INSTALARE NOUA (din template-uri)
|
||||
echo.
|
||||
set /p MODE_CHOICE="Alegere (1/2): "
|
||||
|
||||
if "%MODE_CHOICE%"=="1" (
|
||||
set MODE=MIGRATION
|
||||
echo.
|
||||
echo %GREEN%Mod selectat: MIGRARE COMPLETA%NC%
|
||||
) else if "%MODE_CHOICE%"=="2" (
|
||||
set MODE=NEW_INSTALL
|
||||
echo.
|
||||
echo %GREEN%Mod selectat: INSTALARE NOUA%NC%
|
||||
) else (
|
||||
echo %RED%Alegere invalida!%NC%
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo.
|
||||
pause
|
||||
|
||||
REM ==============================================================================
|
||||
REM UPGRADE IN-PLACE - WORKFLOW SPECIAL
|
||||
REM ==============================================================================
|
||||
|
||||
if "%EXPORT_MODE%"=="INPLACE" (
|
||||
call :InPlaceUpgrade
|
||||
goto :End
|
||||
)
|
||||
|
||||
REM ==============================================================================
|
||||
REM WORKFLOW NORMAL (AUTO/MANUAL/LOCAL)
|
||||
REM ==============================================================================
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo PORNIRE MIGRARE
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
if %WSL_AVAILABLE% equ 1 (
|
||||
echo %GREEN%Rulare scripturi bash prin WSL...%NC%
|
||||
echo.
|
||||
|
||||
REM Converteste path-ul Windows la WSL
|
||||
set SCRIPT_PATH=%~dp0
|
||||
set SCRIPT_PATH=!SCRIPT_PATH:\=/!
|
||||
set SCRIPT_PATH=!SCRIPT_PATH:C:=/mnt/c!
|
||||
set SCRIPT_PATH=!SCRIPT_PATH:D:=/mnt/d!
|
||||
set SCRIPT_PATH=!SCRIPT_PATH:E:=/mnt/e!
|
||||
|
||||
echo Scripturi in: !SCRIPT_PATH!
|
||||
echo.
|
||||
|
||||
REM Export variabile environment pentru WSL
|
||||
wsl export EXPORT_MODE="%EXPORT_MODE%"
|
||||
wsl export ORACLE_CONNECT_TYPE="%ORACLE_CONNECT_TYPE%"
|
||||
|
||||
if "%EXPORT_MODE%"=="MANUAL" (
|
||||
wsl export EXPORT_DIR="%EXPORT_DIR%"
|
||||
)
|
||||
|
||||
REM Ruleaza master script bash prin WSL
|
||||
wsl bash -c "cd '!SCRIPT_PATH!' && ./00-MASTER-MIGRATION.sh"
|
||||
|
||||
) else (
|
||||
echo %YELLOW%WSL nu este disponibil!%NC%
|
||||
echo.
|
||||
echo Optiuni:
|
||||
echo 1. Instaleaza WSL: https://docs.microsoft.com/en-us/windows/wsl/install
|
||||
echo 2. SAU ruleaza manual scripturile (vezi README.md)
|
||||
echo.
|
||||
pause
|
||||
)
|
||||
|
||||
goto :End
|
||||
|
||||
REM ==============================================================================
|
||||
REM FUNCTIE: UPGRADE IN-PLACE
|
||||
REM ==============================================================================
|
||||
:InPlaceUpgrade
|
||||
|
||||
cls
|
||||
echo.
|
||||
echo ╔══════════════════════════════════════════════════════════════╗
|
||||
echo ║ UPGRADE IN-PLACE - PASUL 1/5: EXPORT DMP ║
|
||||
echo ╚══════════════════════════════════════════════════════════════╝
|
||||
echo.
|
||||
echo %YELLOW%IMPORTANT: Executa comenzile de mai jos in acest Command Prompt%NC%
|
||||
echo (sau deschide un nou Command Prompt CA ADMINISTRATOR)
|
||||
echo.
|
||||
pause
|
||||
|
||||
REM Genereaza timestamp pentru fisiere
|
||||
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b)
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo COMENZI EXPORT (COPY-PASTE)
|
||||
echo ========================================
|
||||
echo.
|
||||
echo REM Creaza director export
|
||||
echo mkdir "%EXPORT_DIR%" 2^>nul
|
||||
echo cd /d "%EXPORT_DIR%"
|
||||
echo.
|
||||
echo REM Export CONTAFIN_ORACLE
|
||||
echo exp system/%OLD_ORACLE_PASS%@localhost:%OLD_ORACLE_PORT%/%OLD_ORACLE_SID% ^
|
||||
echo FILE=CONTAFIN_ORACLE_%mydate%.dmp ^
|
||||
echo OWNER=CONTAFIN_ORACLE ^
|
||||
echo LOG=contafin_export.log ^
|
||||
echo CONSISTENT=Y
|
||||
echo.
|
||||
echo REM Export MARIUSM_AUTO (daca ai)
|
||||
echo exp system/%OLD_ORACLE_PASS%@localhost:%OLD_ORACLE_PORT%/%OLD_ORACLE_SID% ^
|
||||
echo FILE=MARIUSM_AUTO_%mydate%.dmp ^
|
||||
echo OWNER=MARIUSM_AUTO ^
|
||||
echo LOG=mariusm_export.log ^
|
||||
echo CONSISTENT=Y
|
||||
echo.
|
||||
echo REM Verificare fisiere create
|
||||
echo dir *.dmp
|
||||
echo.
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
REM Creeaza fisier batch pentru export
|
||||
set EXPORT_BATCH=%EXPORT_DIR%\RUN-EXPORT.bat
|
||||
echo @echo off > "%EXPORT_BATCH%"
|
||||
echo REM Export generat automat >> "%EXPORT_BATCH%"
|
||||
echo cd /d "%EXPORT_DIR%" >> "%EXPORT_BATCH%"
|
||||
echo. >> "%EXPORT_BATCH%"
|
||||
echo echo Exportare CONTAFIN_ORACLE... >> "%EXPORT_BATCH%"
|
||||
echo exp system/%OLD_ORACLE_PASS%@localhost:%OLD_ORACLE_PORT%/%OLD_ORACLE_SID% FILE=CONTAFIN_ORACLE_%mydate%.dmp OWNER=CONTAFIN_ORACLE LOG=contafin_export.log CONSISTENT=Y >> "%EXPORT_BATCH%"
|
||||
echo. >> "%EXPORT_BATCH%"
|
||||
echo echo Exportare MARIUSM_AUTO... >> "%EXPORT_BATCH%"
|
||||
echo exp system/%OLD_ORACLE_PASS%@localhost:%OLD_ORACLE_PORT%/%OLD_ORACLE_SID% FILE=MARIUSM_AUTO_%mydate%.dmp OWNER=MARIUSM_AUTO LOG=mariusm_export.log CONSISTENT=Y >> "%EXPORT_BATCH%"
|
||||
echo. >> "%EXPORT_BATCH%"
|
||||
echo echo Export complet! >> "%EXPORT_BATCH%"
|
||||
echo dir *.dmp >> "%EXPORT_BATCH%"
|
||||
echo pause >> "%EXPORT_BATCH%"
|
||||
|
||||
echo %GREEN%[✓] Am creat fisier batch automat: %EXPORT_BATCH%%NC%
|
||||
echo.
|
||||
echo Poti rula direct: "%EXPORT_BATCH%"
|
||||
echo.
|
||||
set /p RUN_EXPORT_NOW="Vrei sa rulez exportul ACUM? (Y/N): "
|
||||
|
||||
if /i "%RUN_EXPORT_NOW%"=="Y" (
|
||||
echo.
|
||||
echo %GREEN%Pornire export...%NC%
|
||||
call "%EXPORT_BATCH%"
|
||||
) else (
|
||||
echo.
|
||||
echo %YELLOW%OK - ruleaza manual exportul cand esti gata%NC%
|
||||
)
|
||||
|
||||
echo.
|
||||
set /p EXPORT_DONE="Ai terminat exportul si ai verificat fisierele DMP? (Y/N): "
|
||||
if /i not "%EXPORT_DONE%"=="Y" (
|
||||
echo.
|
||||
echo Termina exportul si apoi continua...
|
||||
pause
|
||||
goto :InPlaceUpgrade
|
||||
)
|
||||
|
||||
REM Verificare fisiere DMP
|
||||
echo.
|
||||
echo Verificare fisiere in %EXPORT_DIR%...
|
||||
if exist "%EXPORT_DIR%\CONTAFIN*.dmp" (
|
||||
echo %GREEN%[✓] Fisier CONTAFIN gasit!%NC%
|
||||
dir "%EXPORT_DIR%\CONTAFIN*.dmp"
|
||||
) else (
|
||||
echo %RED%[✗] Nu gasesc fisier CONTAFIN in %EXPORT_DIR%%NC%
|
||||
pause
|
||||
)
|
||||
|
||||
REM ==============================================================================
|
||||
REM PASUL 2: OPRIRE ORACLE VECHI
|
||||
REM ==============================================================================
|
||||
|
||||
cls
|
||||
echo.
|
||||
echo ╔══════════════════════════════════════════════════════════════╗
|
||||
echo ║ UPGRADE IN-PLACE - PASUL 2/5: OPRIRE ORACLE VECHI ║
|
||||
echo ╚══════════════════════════════════════════════════════════════╝
|
||||
echo.
|
||||
echo %YELLOW%ATENTIE: Vei opri Oracle VECHI!%NC%
|
||||
echo Asigura-te ca ai backup la fisierele DMP!
|
||||
echo.
|
||||
pause
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo COMENZI OPRIRE SERVICII (COPY-PASTE)
|
||||
echo ========================================
|
||||
echo.
|
||||
echo REM Oprire servicii Oracle vechi
|
||||
echo net stop OracleServiceXE
|
||||
echo net stop OracleXETNSListener
|
||||
echo.
|
||||
echo REM Optional: Dezactiveaza pornirea automata
|
||||
echo sc config OracleServiceXE start= disabled
|
||||
echo sc config OracleXETNSListener start= disabled
|
||||
echo.
|
||||
echo REM Verificare
|
||||
echo sc query OracleServiceXE
|
||||
echo.
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
REM Creeaza fisier batch pentru oprire
|
||||
set STOP_BATCH=%EXPORT_DIR%\STOP-ORACLE-OLD.bat
|
||||
echo @echo off > "%STOP_BATCH%"
|
||||
echo REM Oprire Oracle vechi >> "%STOP_BATCH%"
|
||||
echo echo Oprire servicii Oracle vechi... >> "%STOP_BATCH%"
|
||||
echo net stop OracleServiceXE >> "%STOP_BATCH%"
|
||||
echo net stop OracleXETNSListener >> "%STOP_BATCH%"
|
||||
echo echo. >> "%STOP_BATCH%"
|
||||
echo sc config OracleServiceXE start= disabled >> "%STOP_BATCH%"
|
||||
echo sc config OracleXETNSListener start= disabled >> "%STOP_BATCH%"
|
||||
echo echo. >> "%STOP_BATCH%"
|
||||
echo echo Verificare status: >> "%STOP_BATCH%"
|
||||
echo sc query OracleServiceXE >> "%STOP_BATCH%"
|
||||
echo pause >> "%STOP_BATCH%"
|
||||
|
||||
echo %GREEN%[✓] Am creat fisier batch: %STOP_BATCH%%NC%
|
||||
echo.
|
||||
set /p STOP_NOW="Vrei sa opresc Oracle VECHI ACUM? (Y/N): "
|
||||
|
||||
if /i "%STOP_NOW%"=="Y" (
|
||||
echo.
|
||||
echo %GREEN%Oprire Oracle vechi...%NC%
|
||||
call "%STOP_BATCH%"
|
||||
) else (
|
||||
echo.
|
||||
echo %YELLOW%OK - opreste manual Oracle vechi cand esti gata%NC%
|
||||
)
|
||||
|
||||
echo.
|
||||
set /p ORACLE_STOPPED="Ai oprit Oracle vechi? (Y/N): "
|
||||
if /i not "%ORACLE_STOPPED%"=="Y" (
|
||||
echo.
|
||||
echo Opreste Oracle vechi si apoi continua...
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM ==============================================================================
|
||||
REM PASUL 3: INSTALARE ORACLE 21c XE
|
||||
REM ==============================================================================
|
||||
|
||||
cls
|
||||
echo.
|
||||
echo ╔══════════════════════════════════════════════════════════════╗
|
||||
echo ║ UPGRADE IN-PLACE - PASUL 3/5: INSTALARE ORACLE 21c ║
|
||||
echo ╚══════════════════════════════════════════════════════════════╝
|
||||
echo.
|
||||
echo Urmatorul pas: Instalare Oracle 21c XE
|
||||
echo.
|
||||
echo Optiuni:
|
||||
echo 1. Download Oracle XE 21c pentru Windows:
|
||||
echo https://www.oracle.com/database/technologies/xe-downloads.html
|
||||
echo.
|
||||
echo 2. Fisier: OracleXE213_Win64.zip (~2.5 GB)
|
||||
echo.
|
||||
echo 3. Instalare:
|
||||
echo - Extrage ZIP
|
||||
echo - Ruleaza setup.exe CA ADMINISTRATOR
|
||||
echo - Port: 1521 (acelasi ca Oracle vechi)
|
||||
echo - Password SYS: OraclePass123 (sau custom)
|
||||
echo.
|
||||
echo 4. Dupa instalare, revino aici pentru import!
|
||||
echo.
|
||||
pause
|
||||
|
||||
echo.
|
||||
echo Deschid browser pentru download...
|
||||
start https://www.oracle.com/database/technologies/xe-downloads.html
|
||||
|
||||
echo.
|
||||
set /p ORACLE21_INSTALLED="Ai instalat Oracle 21c XE? (Y/N): "
|
||||
if /i not "%ORACLE21_INSTALLED%"=="Y" (
|
||||
echo.
|
||||
echo Instaleaza Oracle 21c XE si apoi continua...
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM ==============================================================================
|
||||
REM PASUL 4: SETUP + IMPORT
|
||||
REM ==============================================================================
|
||||
|
||||
cls
|
||||
echo.
|
||||
echo ╔══════════════════════════════════════════════════════════════╗
|
||||
echo ║ UPGRADE IN-PLACE - PASUL 4/5: SETUP ^& IMPORT ║
|
||||
echo ╚══════════════════════════════════════════════════════════════╝
|
||||
echo.
|
||||
|
||||
REM ==============================================================================
|
||||
REM RULARE NATIVA WINDOWS (fara WSL)
|
||||
REM ==============================================================================
|
||||
|
||||
if %SQLPLUS_AVAILABLE% equ 1 (
|
||||
echo %GREEN%Rulare setup ^& import NATIV pe Windows...%NC%
|
||||
echo.
|
||||
|
||||
set SCRIPT_DIR=%~dp0
|
||||
set ORACLE21_PASSWORD=OraclePass123
|
||||
|
||||
REM Pasul 1: Setup Oracle 21c
|
||||
echo ========================================
|
||||
echo PASUL 1: Setup Tablespace ^& Useri
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
call :CreateSetupScript
|
||||
|
||||
echo Rulare setup SQL...
|
||||
sqlplus sys/!ORACLE21_PASSWORD!@localhost:1521/XE as sysdba @"%SCRIPT_DIR%setup-windows.sql"
|
||||
|
||||
if %errorlevel% neq 0 (
|
||||
echo %RED%Eroare la setup!%NC%
|
||||
pause
|
||||
goto :End
|
||||
)
|
||||
|
||||
echo %GREEN%[✓] Setup complet!%NC%
|
||||
echo.
|
||||
|
||||
REM Pasul 2: Import DMP
|
||||
echo ========================================
|
||||
echo PASUL 2: Import DMP
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
call :CreateImportScript
|
||||
|
||||
echo Import CONTAFIN_ORACLE...
|
||||
call "%SCRIPT_DIR%import-windows.bat"
|
||||
|
||||
if %errorlevel% neq 0 (
|
||||
echo %YELLOW%Importul poate avea warning-uri normale (obiecte existente)%NC%
|
||||
)
|
||||
|
||||
echo %GREEN%[✓] Import complet!%NC%
|
||||
echo.
|
||||
|
||||
REM Pasul 3: Sinonime + Grant-uri
|
||||
echo ========================================
|
||||
echo PASUL 3: Sinonime ^& Grant-uri
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
call :CreateSynonymsScript
|
||||
|
||||
sqlplus system/!ORACLE21_PASSWORD!@localhost:1521/roa @"%SCRIPT_DIR%synonyms-windows.sql"
|
||||
|
||||
echo %GREEN%[✓] Sinonime create!%NC%
|
||||
echo.
|
||||
|
||||
REM Pasul 4: Finalizare
|
||||
echo ========================================
|
||||
echo PASUL 4: Recompilare ^& Verificare
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
call :CreateFinalizeScript
|
||||
|
||||
sqlplus system/!ORACLE21_PASSWORD!@localhost:1521/roa @"%SCRIPT_DIR%finalize-windows.sql"
|
||||
|
||||
echo %GREEN%[✓] Finalizare completa!%NC%
|
||||
|
||||
) else (
|
||||
echo %YELLOW%SQLPlus nu este disponibil!%NC%
|
||||
echo.
|
||||
echo Pentru import manual, instaleaza Oracle Client si adauga sqlplus in PATH
|
||||
echo SAU urmeaza pasii din README-UPGRADE-IN-PLACE.md
|
||||
echo.
|
||||
pause
|
||||
)
|
||||
|
||||
REM ==============================================================================
|
||||
REM PASUL 5: VERIFICARE
|
||||
REM ==============================================================================
|
||||
|
||||
cls
|
||||
echo.
|
||||
echo ╔══════════════════════════════════════════════════════════════╗
|
||||
echo ║ UPGRADE IN-PLACE - PASUL 5/5: VERIFICARE FINALA ║
|
||||
echo ╚══════════════════════════════════════════════════════════════╝
|
||||
echo.
|
||||
echo %GREEN%Migrare completata!%NC%
|
||||
echo.
|
||||
echo Verificare conexiune:
|
||||
echo sqlplus CONTAFIN_ORACLE/OraclePass123@localhost:1521/roa
|
||||
echo.
|
||||
echo Verificare obiecte:
|
||||
echo SELECT COUNT(*) FROM user_tables;
|
||||
echo SELECT COUNT(*) FROM user_objects WHERE status = 'INVALID';
|
||||
echo.
|
||||
echo Log-uri disponibile:
|
||||
echo %EXPORT_DIR%\*.log
|
||||
echo.
|
||||
echo %GREEN%Succes!%NC%
|
||||
echo.
|
||||
pause
|
||||
|
||||
goto :End
|
||||
|
||||
REM ==============================================================================
|
||||
REM FUNCTII GENERARE SCRIPTURI SQL
|
||||
REM ==============================================================================
|
||||
|
||||
:CreateSetupScript
|
||||
echo Generare script setup...
|
||||
set SETUP_SQL=%SCRIPT_DIR%setup-windows.sql
|
||||
|
||||
(
|
||||
echo -- Setup Oracle 21c - Generat automat
|
||||
echo SET ECHO ON
|
||||
echo SET SERVEROUTPUT ON
|
||||
echo.
|
||||
echo -- Conectare la CDB
|
||||
echo ALTER SESSION SET CONTAINER = CDB$ROOT;
|
||||
echo.
|
||||
echo -- Creare PDB ROA ^(daca nu exista^)
|
||||
echo DECLARE
|
||||
echo v_count NUMBER;
|
||||
echo BEGIN
|
||||
echo SELECT COUNT^(^*^) INTO v_count FROM dba_pdbs WHERE pdb_name = 'ROA';
|
||||
echo IF v_count = 0 THEN
|
||||
echo EXECUTE IMMEDIATE 'CREATE PLUGGABLE DATABASE roa ADMIN USER pdbadmin IDENTIFIED BY OraclePass123';
|
||||
echo EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE roa OPEN';
|
||||
echo EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE roa SAVE STATE';
|
||||
echo END IF;
|
||||
echo END;
|
||||
echo /
|
||||
echo.
|
||||
echo -- Conectare la PDB ROA
|
||||
echo ALTER SESSION SET CONTAINER = ROA;
|
||||
echo.
|
||||
echo -- Creare tablespace ROA
|
||||
echo CREATE TABLESPACE roa_data
|
||||
echo DATAFILE 'roa_data01.dbf' SIZE 2G
|
||||
echo AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
|
||||
echo EXTENT MANAGEMENT LOCAL
|
||||
echo SEGMENT SPACE MANAGEMENT AUTO;
|
||||
echo.
|
||||
echo -- Creare user CONTAFIN_ORACLE
|
||||
echo CREATE USER CONTAFIN_ORACLE IDENTIFIED BY OraclePass123
|
||||
echo DEFAULT TABLESPACE roa_data
|
||||
echo TEMPORARY TABLESPACE temp
|
||||
echo QUOTA UNLIMITED ON roa_data;
|
||||
echo.
|
||||
echo -- Grant-uri CONTAFIN_ORACLE
|
||||
echo GRANT CONNECT, RESOURCE, DBA TO CONTAFIN_ORACLE;
|
||||
echo GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW TO CONTAFIN_ORACLE;
|
||||
echo GRANT CREATE PROCEDURE, CREATE TRIGGER, CREATE SEQUENCE TO CONTAFIN_ORACLE;
|
||||
echo GRANT CREATE SYNONYM, CREATE PUBLIC SYNONYM TO CONTAFIN_ORACLE;
|
||||
echo.
|
||||
echo -- Creare user MARIUSM_AUTO
|
||||
echo CREATE USER MARIUSM_AUTO IDENTIFIED BY OraclePass123
|
||||
echo DEFAULT TABLESPACE roa_data
|
||||
echo TEMPORARY TABLESPACE temp
|
||||
echo QUOTA UNLIMITED ON roa_data;
|
||||
echo.
|
||||
echo GRANT CONNECT, RESOURCE TO MARIUSM_AUTO;
|
||||
echo GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW TO MARIUSM_AUTO;
|
||||
echo.
|
||||
echo PROMPT Setup complet!
|
||||
echo EXIT;
|
||||
) > "%SETUP_SQL%"
|
||||
|
||||
echo %GREEN%[✓] Script generat: %SETUP_SQL%%NC%
|
||||
goto :eof
|
||||
|
||||
:CreateImportScript
|
||||
echo Generare script import...
|
||||
set IMPORT_BAT=%SCRIPT_DIR%import-windows.bat
|
||||
|
||||
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b)
|
||||
|
||||
(
|
||||
echo @echo off
|
||||
echo REM Import DMP - Generat automat
|
||||
echo cd /d "%EXPORT_DIR%"
|
||||
echo.
|
||||
echo echo Import CONTAFIN_ORACLE...
|
||||
echo imp system/%ORACLE21_PASSWORD%@localhost:1521/roa ^
|
||||
echo FILE=CONTAFIN_ORACLE*.dmp ^
|
||||
echo FROMUSER=CONTAFIN_ORACLE ^
|
||||
echo TOUSER=CONTAFIN_ORACLE ^
|
||||
echo IGNORE=Y ^
|
||||
echo COMMIT=Y ^
|
||||
echo BUFFER=10485760 ^
|
||||
echo LOG=contafin_import.log
|
||||
echo.
|
||||
echo echo Import MARIUSM_AUTO...
|
||||
echo imp system/%ORACLE21_PASSWORD%@localhost:1521/roa ^
|
||||
echo FILE=MARIUSM_AUTO*.dmp ^
|
||||
echo FROMUSER=MARIUSM_AUTO ^
|
||||
echo TOUSER=MARIUSM_AUTO ^
|
||||
echo IGNORE=Y ^
|
||||
echo COMMIT=Y ^
|
||||
echo BUFFER=10485760 ^
|
||||
echo LOG=mariusm_import.log
|
||||
echo.
|
||||
echo echo Import complet!
|
||||
echo dir *.log
|
||||
) > "%IMPORT_BAT%"
|
||||
|
||||
echo %GREEN%[✓] Script generat: %IMPORT_BAT%%NC%
|
||||
goto :eof
|
||||
|
||||
:CreateSynonymsScript
|
||||
echo Generare script sinonime...
|
||||
set SYN_SQL=%SCRIPT_DIR%synonyms-windows.sql
|
||||
|
||||
(
|
||||
echo -- Sinonime + Grant-uri - Generat automat
|
||||
echo SET ECHO ON
|
||||
echo.
|
||||
echo -- Grant SELECT on CONTAFIN tables to PUBLIC
|
||||
echo DECLARE
|
||||
echo CURSOR c_tables IS
|
||||
echo SELECT table_name FROM dba_tables WHERE owner = 'CONTAFIN_ORACLE';
|
||||
echo BEGIN
|
||||
echo FOR rec IN c_tables LOOP
|
||||
echo BEGIN
|
||||
echo EXECUTE IMMEDIATE 'GRANT SELECT ON CONTAFIN_ORACLE.' ^|^| rec.table_name ^|^| ' TO PUBLIC';
|
||||
echo EXECUTE IMMEDIATE 'CREATE OR REPLACE PUBLIC SYNONYM SYN_' ^|^| rec.table_name ^|^| ' FOR CONTAFIN_ORACLE.' ^|^| rec.table_name;
|
||||
echo EXCEPTION
|
||||
echo WHEN OTHERS THEN NULL;
|
||||
echo END;
|
||||
echo END LOOP;
|
||||
echo END;
|
||||
echo /
|
||||
echo.
|
||||
echo PROMPT Sinonime create!
|
||||
echo EXIT;
|
||||
) > "%SYN_SQL%"
|
||||
|
||||
echo %GREEN%[✓] Script generat: %SYN_SQL%%NC%
|
||||
goto :eof
|
||||
|
||||
:CreateFinalizeScript
|
||||
echo Generare script finalizare...
|
||||
set FIN_SQL=%SCRIPT_DIR%finalize-windows.sql
|
||||
|
||||
(
|
||||
echo -- Finalizare - Generat automat
|
||||
echo SET ECHO ON
|
||||
echo SET SERVEROUTPUT ON
|
||||
echo.
|
||||
echo -- Recompilare obiecte invalide
|
||||
echo BEGIN
|
||||
echo DBMS_UTILITY.compile_schema^(schema =^> 'CONTAFIN_ORACLE', compile_all =^> FALSE^);
|
||||
echo DBMS_UTILITY.compile_schema^(schema =^> 'MARIUSM_AUTO', compile_all =^> FALSE^);
|
||||
echo END;
|
||||
echo /
|
||||
echo.
|
||||
echo -- Verificare obiecte invalide
|
||||
echo SELECT owner, object_type, object_name, status
|
||||
echo FROM dba_objects
|
||||
echo WHERE owner IN ^('CONTAFIN_ORACLE', 'MARIUSM_AUTO'^)
|
||||
echo AND status = 'INVALID';
|
||||
echo.
|
||||
echo -- Statistici finale
|
||||
echo SELECT 'CONTAFIN_ORACLE' AS schema, COUNT^(^*^) AS total_tables
|
||||
echo FROM dba_tables WHERE owner = 'CONTAFIN_ORACLE'
|
||||
echo UNION ALL
|
||||
echo SELECT 'MARIUSM_AUTO', COUNT^(^*^)
|
||||
echo FROM dba_tables WHERE owner = 'MARIUSM_AUTO';
|
||||
echo.
|
||||
echo PROMPT Migrare completa!
|
||||
echo EXIT;
|
||||
) > "%FIN_SQL%"
|
||||
|
||||
echo %GREEN%[✓] Script generat: %FIN_SQL%%NC%
|
||||
goto :eof
|
||||
|
||||
REM ==============================================================================
|
||||
REM FINAL
|
||||
REM ==============================================================================
|
||||
:End
|
||||
echo.
|
||||
echo ========================================
|
||||
echo MIGRARE COMPLETA
|
||||
echo ========================================
|
||||
echo.
|
||||
pause
|
||||
exit /b 0
|
||||
Reference in New Issue
Block a user