Oracle DR: Phase 6.5 - Complete cleanup and restore scripts (TESTING)
Major improvements to DR restore workflow: **New Scripts:** - cleanup_database.cmd: Complete cleanup using oradim + registry deletion - rman_restore_from_zero.cmd: Copy backups to recovery_area + restore **Key Solutions Implemented:** 1. RMAN AUTOBACKUP limitation: Must have backups in recovery_area - Solution: Copy ALL backups from F:\ (NFS) to C:\...\recovery_area - Performance: 6.7 GB copied in ~2 minutes 2. Oracle service persistence issue: Service remains after sc delete - Solution: Use oradim -delete -sid ROA (proper Oracle cleanup) - Bonus: Delete registry keys to ensure clean state **Current Status:** - Cleanup: ✅ TESTED (oradim works perfectly) - Backup copy: ✅ TESTED (6.7 GB in 2 min) - RMAN restore: 🟡 IN PROGRESS (expected completion 03:35-03:40) **Updated:** - DR_UPGRADE_TO_CUMULATIVE_PLAN.md: Progress tracking + solutions documented - rman_restore_final.cmd: Use F:\ mount point 🤖 Generated with Claude Code
This commit is contained in:
102
oracle/standby-server-scripts/cleanup_database.cmd
Normal file
102
oracle/standby-server-scripts/cleanup_database.cmd
Normal file
@@ -0,0 +1,102 @@
|
||||
@echo off
|
||||
REM Oracle Database Complete Cleanup Script
|
||||
REM Purpose: Remove all database files and services to restore DR VM to clean state
|
||||
REM Run as: Administrator
|
||||
REM Location: D:\oracle\scripts\cleanup_database.cmd
|
||||
|
||||
set ORACLE_HOME=C:\Users\Administrator\Downloads\WINDOWS.X64_193000_db_home
|
||||
set ORACLE_SID=ROA
|
||||
set PATH=%ORACLE_HOME%\bin;%PATH%
|
||||
|
||||
echo ============================================
|
||||
echo Oracle Database Cleanup Script
|
||||
echo ============================================
|
||||
echo.
|
||||
echo This script will:
|
||||
echo 1. Stop and delete Oracle service
|
||||
echo 2. Delete all database files (datafiles, control files, redo logs)
|
||||
echo 3. Delete local FRA (backups are on F:\, safe to delete)
|
||||
echo 4. Delete trace files
|
||||
echo 5. Leave VM in completely clean state (no service, no DB files)
|
||||
echo.
|
||||
echo WARNING: This will DELETE the entire database!
|
||||
echo Starting cleanup in 3 seconds... (Press Ctrl+C to cancel)
|
||||
timeout /t 3 /nobreak > nul
|
||||
|
||||
REM Create temp directory
|
||||
if not exist D:\oracle\temp mkdir D:\oracle\temp
|
||||
if not exist D:\oracle\logs mkdir D:\oracle\logs
|
||||
|
||||
echo.
|
||||
echo [1/6] Shutting down database (if running)...
|
||||
echo SHUTDOWN ABORT; > D:\oracle\temp\cleanup_shutdown.sql
|
||||
echo EXIT; >> D:\oracle\temp\cleanup_shutdown.sql
|
||||
sqlplus -s / as sysdba @D:\oracle\temp\cleanup_shutdown.sql > nul 2>&1
|
||||
timeout /t 3 /nobreak > nul
|
||||
|
||||
echo [2/6] Stopping and deleting Oracle service + registry + instance...
|
||||
REM Method 1: Use oradim to delete Oracle instance (recommended)
|
||||
set ORACLE_HOME=C:\Users\Administrator\Downloads\WINDOWS.X64_193000_db_home
|
||||
set PATH=%ORACLE_HOME%\bin;%PATH%
|
||||
oradim -delete -sid ROA >nul 2>&1
|
||||
echo Oracle instance deleted with oradim
|
||||
|
||||
REM Method 2: Delete service directly (backup method)
|
||||
sc query OracleServiceROA > nul 2>&1
|
||||
if %errorlevel% equ 0 (
|
||||
sc stop OracleServiceROA > nul 2>&1
|
||||
timeout /t 2 /nobreak > nul
|
||||
sc delete OracleServiceROA > nul 2>&1
|
||||
echo Oracle service deleted with sc
|
||||
)
|
||||
|
||||
REM Method 3: Delete Oracle registry keys (ensures clean state)
|
||||
reg delete "HKLM\SOFTWARE\ORACLE\KEY_OraDB19Home1" /v ORA_ROA_PFILE /f >nul 2>&1
|
||||
reg delete "HKLM\SOFTWARE\ORACLE\KEY_OraDB19Home1" /v ORA_ROA_AUTOSTART /f >nul 2>&1
|
||||
reg delete "HKLM\SOFTWARE\ORACLE\KEY_OraDB19Home1" /v ORA_ROA_SHUTDOWN /f >nul 2>&1
|
||||
reg delete "HKLM\SOFTWARE\ORACLE\KEY_OraDB19Home1" /v ORA_ROA_SHUTDOWNTYPE /f >nul 2>&1
|
||||
reg delete "HKLM\SOFTWARE\ORACLE\KEY_OraDB19Home1" /v ORA_ROA_SHUTDOWN_TIMEOUT /f >nul 2>&1
|
||||
echo Registry keys cleaned
|
||||
timeout /t 2 /nobreak > nul
|
||||
|
||||
echo [3/6] Deleting database files...
|
||||
echo Deleting datafiles...
|
||||
del /Q C:\Users\oracle\oradata\ROA\*.dbf 2>nul
|
||||
echo Deleting control files...
|
||||
del /Q C:\Users\oracle\oradata\ROA\*.ctl 2>nul
|
||||
echo Deleting redo logs...
|
||||
del /Q C:\Users\oracle\oradata\ROA\*.log 2>nul
|
||||
|
||||
echo [4/6] Deleting local FRA (backups are on F:\)...
|
||||
if exist C:\Users\oracle\recovery_area\ROA (
|
||||
rmdir /S /Q C:\Users\oracle\recovery_area\ROA 2>nul
|
||||
mkdir C:\Users\oracle\recovery_area\ROA
|
||||
echo FRA cleared
|
||||
) else (
|
||||
mkdir C:\Users\oracle\recovery_area\ROA 2>nul
|
||||
echo FRA directory created
|
||||
)
|
||||
|
||||
echo [5/6] Deleting trace files (to save space)...
|
||||
del /Q C:\Users\oracle\diag\rdbms\roa\ROA\trace\*.trc 2>nul
|
||||
del /Q C:\Users\oracle\diag\rdbms\roa\ROA\trace\*.trm 2>nul
|
||||
echo Trace files deleted
|
||||
|
||||
echo.
|
||||
echo ============================================
|
||||
echo Database Cleanup Complete!
|
||||
echo ============================================
|
||||
echo.
|
||||
echo Current state:
|
||||
echo [YES] Oracle software installed
|
||||
echo [YES] PFILE exists (C:\Users\oracle\admin\ROA\pfile\initROA.ora)
|
||||
echo [NO] Oracle service (will be created during restore)
|
||||
echo [NO] Database files (will be restored from backups)
|
||||
echo [NO] Control files (will be restored from backups)
|
||||
echo [NO] Datafiles (will be restored from backups)
|
||||
echo.
|
||||
echo VM is now in COMPLETELY CLEAN STATE!
|
||||
echo.
|
||||
echo Next step: Run D:\oracle\scripts\rman_restore_from_zero.cmd
|
||||
echo (It will create the Oracle service and restore the database)
|
||||
echo.
|
||||
Reference in New Issue
Block a user