oracle migrare

This commit is contained in:
Marius
2025-10-01 16:08:13 +03:00
parent b414b3c338
commit 02ef8775ab
19 changed files with 4832 additions and 1864 deletions

View 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