@echo off REM RMAN Restore Database - FINAL VERSION REM Backups are in FRA - RMAN will find them automatically REM Run this script as Administrator on DR VM (10.0.20.37) set ORACLE_HOME=C:\Users\Administrator\Downloads\WINDOWS.X64_193000_db_home set ORACLE_SID=ROA set PATH=%ORACLE_HOME%\bin;%PATH% echo ============================================ echo RMAN Database Restore - DR VM (FINAL) echo ============================================ echo. echo Database: ROA echo DBID: 1363569330 echo Backups: C:\Users\oracle\recovery_area\ROA\autobackup echo. REM Create temp directory if not exist D:\oracle\temp mkdir D:\oracle\temp REM Step 1: Shutdown database if running echo [1/5] Shutting down database if running... echo SHUTDOWN ABORT; > D:\oracle\temp\shutdown.sql echo EXIT; >> D:\oracle\temp\shutdown.sql sqlplus -s / as sysdba @D:\oracle\temp\shutdown.sql > nul 2>&1 timeout /t 2 /nobreak > nul REM Step 2: Startup NOMOUNT echo [2/5] Starting database in NOMOUNT mode... echo STARTUP NOMOUNT PFILE='C:\Users\oracle\admin\ROA\pfile\initROA.ora'; > D:\oracle\temp\nomount.sql echo EXIT; >> D:\oracle\temp\nomount.sql sqlplus / as sysdba @D:\oracle\temp\nomount.sql timeout /t 3 /nobreak > nul REM Step 3: Create simplified RMAN script echo [3/5] Creating RMAN restore script... set RMAN_SCRIPT=D:\oracle\temp\restore_final.rman echo SET DBID 1363569330; > %RMAN_SCRIPT% echo. >> %RMAN_SCRIPT% echo RUN { >> %RMAN_SCRIPT% echo ALLOCATE CHANNEL ch1 DEVICE TYPE DISK FORMAT 'C:/Users/oracle/recovery_area/ROA/autobackup/%%U'; >> %RMAN_SCRIPT% echo RESTORE CONTROLFILE FROM 'C:/Users/oracle/recovery_area/ROA/autobackup/O1_MF_S_1214013953_NGFVLL29_.BKP'; >> %RMAN_SCRIPT% echo RELEASE CHANNEL ch1; >> %RMAN_SCRIPT% echo } >> %RMAN_SCRIPT% echo. >> %RMAN_SCRIPT% echo ALTER DATABASE MOUNT; >> %RMAN_SCRIPT% echo. >> %RMAN_SCRIPT% echo CATALOG START WITH 'C:/Users/oracle/recovery_area/ROA/autobackup' NOPROMPT; >> %RMAN_SCRIPT% echo. >> %RMAN_SCRIPT% echo RUN { >> %RMAN_SCRIPT% echo ALLOCATE CHANNEL ch1 DEVICE TYPE DISK; >> %RMAN_SCRIPT% echo ALLOCATE CHANNEL ch2 DEVICE TYPE DISK; >> %RMAN_SCRIPT% echo RESTORE DATABASE; >> %RMAN_SCRIPT% echo RELEASE CHANNEL ch1; >> %RMAN_SCRIPT% echo RELEASE CHANNEL ch2; >> %RMAN_SCRIPT% echo } >> %RMAN_SCRIPT% echo. >> %RMAN_SCRIPT% echo RUN { >> %RMAN_SCRIPT% echo ALLOCATE CHANNEL ch1 DEVICE TYPE DISK; >> %RMAN_SCRIPT% echo RECOVER DATABASE NOREDO; >> %RMAN_SCRIPT% echo RELEASE CHANNEL ch1; >> %RMAN_SCRIPT% echo } >> %RMAN_SCRIPT% echo. >> %RMAN_SCRIPT% echo ALTER DATABASE OPEN RESETLOGS; >> %RMAN_SCRIPT% echo. >> %RMAN_SCRIPT% echo ALTER TABLESPACE TEMP ADD TEMPFILE 'C:\Users\oracle\oradata\ROA\temp01.dbf' SIZE 567M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE 32767M; >> %RMAN_SCRIPT% echo. >> %RMAN_SCRIPT% echo EXIT; >> %RMAN_SCRIPT% REM Step 4: Run RMAN restore echo [4/5] Running RMAN restore (this will take 10-20 minutes)... rman target / cmdfile=%RMAN_SCRIPT% log=D:\oracle\logs\rman_restore_final.log REM Step 5: Verify database status echo. echo [5/5] Verifying database status... echo SET PAGESIZE 100 LINESIZE 200 > D:\oracle\temp\verify.sql echo SELECT 'DB_NAME: ' ^|^| NAME ^|^| ', OPEN_MODE: ' ^|^| OPEN_MODE FROM V$DATABASE; >> D:\oracle\temp\verify.sql echo SELECT 'INSTANCE: ' ^|^| INSTANCE_NAME ^|^| ', STATUS: ' ^|^| STATUS FROM V$INSTANCE; >> D:\oracle\temp\verify.sql echo SELECT 'TABLESPACES: ' ^|^| COUNT(*) FROM DBA_TABLESPACES; >> D:\oracle\temp\verify.sql echo SELECT 'DATAFILES: ' ^|^| COUNT(*) FROM DBA_DATA_FILES; >> D:\oracle\temp\verify.sql echo SELECT 'TABLES: ' ^|^| COUNT(*) FROM DBA_TABLES WHERE OWNER NOT IN ('SYS','SYSTEM'); >> D:\oracle\temp\verify.sql echo EXIT; >> D:\oracle\temp\verify.sql sqlplus -s / as sysdba @D:\oracle\temp\verify.sql echo. echo ============================================ echo Database Restore Complete! echo ============================================ echo. echo Log: D:\oracle\logs\rman_restore_final.log echo. echo Next steps: echo 1. Test database connectivity echo 2. Verify application tables echo 3. Configure RMAN retention echo 4. Shutdown DR VM to conserve resources echo.