Proteger y recuperar bases de datos de Oracle en un entorno Windows
Organízate con las colecciones
Guarda y clasifica el contenido según tus preferencias.
Antes de empezar
Antes de poder detectar, proteger y montar bases de datos de Oracle en un entorno de Windows, asegúrate de que se cumplen los siguientes requisitos:
Comprueba los siguientes ajustes en el servidor de la base de datos:
La base de datos de Oracle y el Listener de Oracle están en funcionamiento (comprueba los servicios de Windows).
Confirma que hay una entrada tns con el nombre SID.
El archivo tnsnames.ora se encuentra en
%ORACLE_HOME%\network\admin
Comprueba que la entrada tns sea válida ejecutando el siguiente comando:
%ORACLE_HOME%\bin\tnsping <SID>
Comprueba si el modo de registro está configurado como modo de registro de archivo:
sql> archive log list
Si la base de datos está en el modo de registro sin archivo, vuelve a ponerla en el modo de registro con archivo:
sql> shutdown immediate;
sql> startup mount;
sql> alter database archivelog;
sql> alter database open;
Habilita el seguimiento de bloques modificados de la base de datos. Si la BCT de la base de datos está desactivada, el tiempo de copia de seguridad incremental se verá afectado. La función de seguimiento de bloques modificados está disponible en Oracle Enterprise Edition. Ejecuta una consulta de SQL para comprobar que el seguimiento de bloques modificados está habilitado. Ejecuta la consulta:
sqlplus / as sysdba
sql> select * from v$block_change_tracking;
Para habilitar el seguimiento de bloques de cambios, sigue estos pasos:
sql> alter database enable block change tracking
using file '<Oracle home directory>\orcl.bct';
Crear una copia de seguridad de una base de datos de Oracle en un entorno de Windows
Para crear una copia de seguridad de una base de datos de Oracle en un entorno Windows, sigue estos pasos:
Aplica un plan de copia de seguridad para proteger la base de datos.
Problema conocido
Oracle 19c SQLPlus (sqlplus.exe) se bloquea ocasionalmente en Windows al ejecutar el comando exit (ID de documento 2820655.1).
Este error es específico de Windows. Oracle ha confirmado que este problema se produce en las versiones 19.10, 19.11 y 19.12 de SQLPlus. Oracle ha proporcionado estas soluciones:
Usa SQL*Plus 21.1 o una versión posterior.
Aplica el parche 31466370. Este parche está disponible para las versiones 19.11 y 19.13.
Recuperar manualmente bases de datos de Oracle en un entorno de Windows mediante RMAN en un punto de copia de seguridad programado si el archivo de registro no está protegido mediante Backup and DR
Para recuperar una base de datos de Oracle completa en un entorno de Windows, sigue estos pasos:
Define el entorno de la base de datos e inicia la base de datos en estado sin montar
con el archivo de parámetros del volumen montado de Backup and DR
(por ejemplo, para un volumen de base de datos montado en E:):
Cataloga el archivo de datos y la carpeta del archivo en el volumen montado de Backup and DR en RMAN:
rman>run{catalogstartwith'E:\datafile' noprompt;catalog start with 'E:\archivelog'noprompt;}
Restaura y recupera la base de datos:
rman> run
{
restore database;
recover database;
}
Abre la base de datos con la opción de restablecer el registro:
rman> alter database open resetlogs;
Recuperar manualmente bases de datos de Oracle en un entorno de Windows mediante RMAN hasta un punto de copia de seguridad programado con la restauración de los archivelogs protegidos por Backup and DR
Monta la imagen desde el servidor de la base de datos de origen
para recuperarla. Monta la captura de la copia de seguridad de Backup and DR en el servidor de Oracle, tal como se explica en el artículo Montar una base de datos de Oracle como un montaje estándar.
Define el entorno de la base de datos e inicia la base de datos
en el estado sin montar con el archivo de parámetros del volumen montado de Backup and DR.
En este ejemplo, la imagen de backup de la base de datos se monta en E:\ y el registro de archivo protegido se monta en Z:.
sqlplus/assysdba
startupnomountpfile='E:\<sid>___backup.ora';
Crear un archivo spfile a partir de un archivo pfile:
Cataloga el archivo de datos y la carpeta de registro de archivo de la imagen de la base de datos y la imagen del registro de archivo montadas de Backup and DR en RMAN:
```rmanrman>run{catalogstartwith'E:\datafile' noprompt;catalog start with 'E:\archivelog' noprompt;catalog start with 'Z:\archivelog'noprompt;}```
Restaura y recupera la base de datos:
```rman
rman> run
{
restore database;
recover database;
}
```
Para restaurar a un momento dado específico, ejecuta el comando de recuperación de la siguiente manera:
```rman
rman> run
{
restore database;
recover database until time "to_date('<time stamp>','yyyymmddhh24mi')";
}
```
Abre la base de datos con la opción de restablecer el registro:
```rman
rman> alter database open resetlogs;
```
La base de datos está disponible para lectura y escritura.
Secuencia de comandos para monitorizar el montaje de volúmenes de bases de datos
Si creas un montaje compatible con aplicaciones, puedes usar un script de monitorización para mostrar los volúmenes que se están montando desde Backup and DR y los procesos de Oracle que se están ejecutando. Los montajes que tienen en cuenta las aplicaciones se describen en Montar una base de datos de Oracle como una aplicación virtual.
Cuando realices un montaje compatible con aplicaciones, puedes usar este script de monitorización.
La ubicación de la secuencia de comandos debe ser C:\Archivos de programa\Backup and DR\scripts.
Los scripts que se ejecutan en hosts de Windows deben ser archivos .bat o .vbs.
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-21 (UTC)."],[[["\u003cp\u003eBefore backing up Oracle databases in Windows, ensure the database and listener are running, a valid tns entry exists, and the database is in archive log mode.\u003c/p\u003e\n"],["\u003cp\u003eEnabling database change block tracking is recommended for Oracle Enterprise Edition to reduce incremental backup times.\u003c/p\u003e\n"],["\u003cp\u003eBackups on the windows environment rely on OS authentication and do not support database authentication.\u003c/p\u003e\n"],["\u003cp\u003eRecovering an Oracle database involves mounting a backup snapshot, setting the database environment, restoring the control file using RMAN, and then restoring and recovering the database.\u003c/p\u003e\n"],["\u003cp\u003eA watch script can monitor mounted volumes from Backup and DR and identify running Oracle processes during an application-aware mount.\u003c/p\u003e\n"]]],[],null,["# Protect and recover Oracle databases in a Windows environment\n\nBefore you begin\n----------------\n\nBefore you can discover, protect, and mount Oracle databases in a Windows\nenvironment, be sure to check the following:\n\n1. Check the following settings on the database server:\n\n 1. The Oracle database and the Oracle Listener\n are up and running (check Windows services).\n\n 2. Confirm that there is a tns entry with the name SID.\n The file tnsnames.ora is under\n\n %ORACLE_HOME%\\network\\admin\n\n 3. Verify tns entry is valid by running:\n\n %ORACLE_HOME%\\bin\\tnsping \u003cSID\u003e\n\n2. Check if the log mode is set to Archive Log mode:\n\n sql\u003e archive log list\n\n If the database is in no-archive log mode, then return it to archive log mode:\n **Note:** This will take down the database. \n\n sql\u003e shutdown immediate;\n sql\u003e startup mount;\n sql\u003e alter database archivelog;\n sql\u003e alter database open;\n\n3. Enable database change block tracking. With database BCT off,\n incremental backup time is impacted. Change block tracking feature\n is available in Oracle Enterprise Edition. Run a SQL query to\n check that change block tracking is enabled. Run the query:\n\n sqlplus / as sysdba\n sql\u003e select * from v$block_change_tracking;\n\nTo enable change block tracking: \n\n sql\u003e alter database enable block change tracking\n using file '\u003cOracle home directory\u003e\\orcl.bct';\n\nBack up an Oracle database in a Windows environment\n---------------------------------------------------\n\n| **Note:** Database authentication is not supported for Oracle in a Windows environment. OS authentication is fully supported.\n\nTo back up an Oracle database in a Windows environment, follow these steps:\n\n1. Set the [Application Details \\& Settings for Oracle Databases](/backup-disaster-recovery/docs/backup/app-details-settings-oracle).\n\n2. Apply a backup plan to protect the database.\n\n**Known issue**\n\nOracle 19c SQL*Plus (sqlplus.exe) occasionally hangs on Windows when executing exit command (Doc ID 2820655.1).\nThis bug is specific to Windows. Oracle has confirmed that this issue occurs in SQL*Plus versions 19.10, 19.11 and 19.12. Oracle provided these solutions:\n\n- Use SQL\\*Plus 21.1 or later (or)\n- Apply patch:31466370. This patch is available for 19.11 and 19.13.\n\nRecover Oracle databases in a Windows environment manually using RMAN to a scheduled backup point if the archivelog is not protected through Backup and DR\n----------------------------------------------------------------------------------------------------------------------------------------------------------\n\nTo recover an entire Oracle database in a Windows environment:\n\n1. Mount the database backup snapshot from Backup and DR\n back to the Oracle server as detailed in [Mount an Oracle database as a standard mount](/backup-disaster-recovery/docs/access-data/mount-oracle).\n\n2. Set the database environment and start the database in no-mount state\n using the parameter file from the Backup and DR mounted volume\n (for example for a mounted database volume to E:):\n\n sqlplus / as sysdba\n sql\u003e startup nomount pfile='E:\\\u003csid\u003e___backup.ora';\n\n3. Create spfile from pfile:\n\n sql\u003e create spfile='%ORACLE_HOME%\\database\\spfile\u003csid\u003e.ora'\n from pfile='E:\\\u003csid\u003e___backup.ora';\n\n4. Start the database with spfile in the `nomount` state:\n\n sql\u003e shutdown immediate;\n sql\u003e startup nomount;\n\n5. Restore the control file using RMAN from the Backup and DR mounted volume:\n\n rman target /\n rman\u003e restore controlfile from 'E:\\cf-D_\u003csid\u003e-id_\u003cid\u003e.ctl';\n\n6. Mount the database:\n\n rman\u003e alter database mount;\n\n7. Catalog the datafile and the archive file folder\n from the Backup and DR mounted volume to RMAN:\n\n rman\u003e run\n {\n catalog start with 'E:\\datafile' noprompt;\n catalog start with 'E:\\archivelog' noprompt;\n }\n\n8. Restore and recover the database:\n\n rman\u003e run\n {\n restore database;\n recover database;\n }\n\n9. Open the database with reset log option:\n\n rman\u003e alter database open resetlogs;\n\nRecover Oracle databases in a Windows environment manually using RMAN to a scheduled backup point with roll-forward of Backup and DR-protected archivelog\n---------------------------------------------------------------------------------------------------------------------------------------------------------\n\n1. Mount the image from the source database server\n to recover. Mount the backup snapshot from Backup and DR back to the Oracle\n server as detailed in [Mount an Oracle database as a standard mount](/backup-disaster-recovery/docs/access-data/mount-oracle).\n\n2. Set the database environment and start the database\n in no-mount state using the parameter file from the Backup and DR mounted volume.\n In this example, the database backup image is mounted at: E:\\\\ and\n the protected archive log is mounted at: Z:.\n\n sqlplus / as sysdba\n\n startup nomount pfile='E:\\\u003csid\u003e___backup.ora';\n\n3. Create spfile from pfile:\n\n sql\u003e create spfile='%ORACLE_HOME%\\database\\spfile\u003csid\u003e.ora' from\n pfile='E:\\\u003csid\u003e___backup.ora';\n\n4. Start the database with spfile in the nomount state:\n\n ```sql\n shutdown immediate;\n startup nomount;\n ```\n\n5. Restore the control file using RMAN from the Backup and DR mounted\n archive log image:\n\n ```rman\n rman target /\n rman\u003e restore controlfile from 'Z:\\cf-D_\u003csid\u003e-id_\u003cid\u003e.ctl';\n ```\n\n6. Mount the database:\n\n ```rman\n rman\u003e alter database mount;\n ```\n\n7. Catalog the datafile and archivelog folder from Backup and DR mounted\n database image and archive log image to RMAN:\n\n ```rman\n rman\u003e run\n {\n catalog start with 'E:\\datafile' noprompt;\n catalog start with 'E:\\archivelog' noprompt;\n catalog start with 'Z:\\archivelog' noprompt;\n }\n ```\n\n8. Restore and recover the database:\n\n ```rman\n rman\u003e run\n {\n restore database;\n recover database;\n }\n ```\n\n For a specific point in time recovery run the recover command as follows: \n\n ```rman\n rman\u003e run\n {\n restore database;\n recover database until time \"to_date('\u003ctime stamp\u003e','yyyymmddhh24mi')\";\n }\n ```\n\n9. Open the database with reset log option:\n\n ```rman\n rman\u003e alter database open resetlogs;\n ```\n\n The database is available for read and write.\n\n### Watch script to watch for database volumes being mounted\n\nIf you create an application-aware mount, then you can use a watch script to\nshow the volumes being mounted from Backup and DR, and the Oracle\nprocesses running. Application-aware mounts are described in\n[Mounting an Oracle Database as a Virtual Application](/backup-disaster-recovery/docs/access-data/mount-oracle-virtualdb).\n\nWhen performing an application-aware mount, you can use this watch script.\nThe script location must be: C:\\\\Program Files\\\\Backup and DR\\\\scripts.\nScripts run on Windows hosts must be .bat or .vbs files. \n\n ```Windows\n @echo off\n :loop\n echo. \u003e watchtemp\n echo ------------------ \u003e\u003e watchtemp\n echo Oracle Processes \u003e\u003e watchtemp\n echo ------------------ \u003e\u003e watchtemp\n tasklist /svc | findstr oracle \u003e\u003e watchtemp\n echo. \u003e\u003e watchtemp\n echo ------------------ \u003e\u003e watchtemp\n echo Backup and DR Mounts \u003e\u003e watchtemp\n echo ------------------ \u003e\u003e watchtemp\n wmic volume get label, name | findstr Backup and DR \u003e\u003e watchtemp\n echo. \u003e\u003e watchtemp\n cls\n type watchtemp\n timeout 2 \u003e null\n goto loop\n ```\n\nWhich produces output like this: \n\n Oracle Processes\n ------------------\n oracle.exe 1492 OracleServiceORCL\n oracle.exe 3768 OracleServiceTestDB\n oracle.exe 872 OracleServiceTestDB2\n ------------------\n Backup and DR Mounts\n ------------------\n Backup and DR-Backup-ORCL D:\\mount_1"]]