Asunto: Copia de seguridad física BD Oracle de todos los ficheros
Cuando se habla de una copia de seguridad física de Oracle ¿qué ficheros hay que copiar? ¿qué ficheros son necesarios para restaurar una BD de Oracle en otro PC (para hacer una réplica exacta)?
Sé que se puede hacer con RMAN pero quisiera saber cómo hacerlo manualmente.
Gracias.
Publicado:
Mar Ago 15, 2006 9:22 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Copia de seguridad física BD Oracle de todos los fichero
Anuncios
A continuación te explicamos paso a paso lo que has de hacer, ten en cuenta que para hacer una copia de seguridad de los ficheros (física) de Oracle sin RMAN tendrás que detener la base de datos completamente. Con lo cual deberás realizarlo cuando no haya usuarios conectados (o perderán la conexión). Algunas de las consultas y comandos que se van a ejecutar requieren permisos de conexión SYSDBA:
1. En primer lugar has de recopilar la siguiente información, necesaria para los restantes pasos:
* Ubicación de los ficheros de datos (los que componen los TableSpaces), para ello puedes ejecutar la siguiente consulta SQL:
* La siguiente consulta nos indicará si la base de datos está en modo ARCHIVELOG:
Código:
select log_mode
from V$DATABASE
* Si la consulta anterior devuelve "ARCHIVELOG" guardaremos la ubicación de los log archivados, con la consulta:
Código:
select recid, substr(name, 1, 255), deleted, archived
from V$ARCHIVED_LOG
* Esta otra consulta nos dará el nombre de la base de datos, la versión de Oracle y el nombre del host donde está instalada (esta información puede ser necesaria para duplicar la base de datos):
Código:
select instance_name, host_name, version
from v$instance
* También nos puede ser útil saber cuánto ocupa la base de datos, para reservar el espacio necesario para la restauración. Ejecutaremos la consulta:
Código:
select sum(BYTES)/1024/1024 MB
from DBA_EXTENTS
2. A continuación copiaremos el fichero de configuración actual de nuestra BD de Oracle. Ejecutando la siguiente consulta SQL obtendremos dónde se encuentra:
Código:
select name, substr(value, 1, 255)
from v$parameter
where name like '%spfile%'
Devolverá algo como esto:
%ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA
donde "%ORACLE_HOME%" será el directorio de instalación de Oracle y "%ORACLE_SID%" será el nombre de la base de datos. Copiaremos también este fichero.
3. Detenemos la base de datos desde SQL Plus con el siguiente comando. Recuerda que al hacer esto cualquier transacción que haya ejecutándose sin que se haya hecho commit se perderá:
shutdown immediate;
4. Una vez detenida la base de datos, procederemos a copiar todos los ficheros obtenidos en los pasos anteriores al destino deseado para la copia de seguridad (unidad USB extraíble, unidad de cinta, etc):
* Ficheros de datos (Datafiles)
* Redo log
* Log archivado (log archived)
* Ficheros de control (control files)
* Fichero .ora de configuración
5. También será necesario el fichero de contraseñas de los usuarios DBA de Oracle. Es un fichero donde Oracle guarda la contraseña (encriptada, por supuesto) de los usuarios administradores. Este fichero se suele encontrar en:
C:\Oracle\database\PWDOracl.ora
Teniendo en cuenta que "C:\Oracle" será el directorio de instalación de Orace y "Oracl" será el nombre de la base de datos de Oracle.
En principio, con estos ficheros y guardando los resultados de las consultas SQL anteriores sería suficiente para poder restaurar esta copia en cualquier otro equipo con Oracle Server instalado (recomendable la misma versión que la que hemos copiado).
Para restaurar la base de datos, sería suficiente con:
1. Instalar Oracle Server (misma versión).
2. Crear una base de datos (a ser posible con el mismo nombre SID), utilizando el asistente. Esta base de datos no es necesario configurarla.
3. Detener la base de datos creada.
4. Machacar el fichero de contraseñas "PWDNombreBD.ora" por el copiado.
5. Copiar todos los ficheros anteriores (datafiles, controlfiles, redolog, etc) a las mismas unidades y carpetas de las que se copiaron. Reemplazando, incluso, el fichero del tablespace system y los ficheros de control.
Es conveniente respetar las rutas, si no se respetan habrá que iniciar la base de datos en modo "mount" con "startup mount" y cambiar las ubicaciones de los ficheros de datos con "alter database rename file 'ubiacion_anterior_nombre_fichero' to 'ubicacion_nueva_nombre_fichero'.
6. Reemplazar el fichero de configuración "SPFILE%ORACLE_SID%.ORA".
7. Iniciar la base de datos en modo normal con:
startup
Ultima edición por alonsojpd el Jue May 31, 2007 4:36 am, editado 1 vez
Publicado:
Mar Ago 15, 2006 11:43 am
Invitado
Asunto:
He probado y no me ha funcionado, se ha quedado caída la instancia y me ha sido imposible iniciarla. He instalado otro oracle en otro server, la misma versión y con el mismo nombre, he seguido los pasos anteriores. Había dbf ubicados en ubicación distinta, he aplicado el comando alter database rename.... y se ha ejecutado correctamente, pero a la hora de arrancar la instancia con startup da error y no me deja iniciarla.
En una bd noarchivelog se podrían copiar los dbf y llevarlos a otra bd tambien en noarchivelog e intentar hacer que la otra bd use ese dbf? En definitiva, hacer lo que se puede hacer con sql server 2000, copiar mdf y ldf en otro server y adjuntar.
Muchas gracias.
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A