Este artículo describe la Copia de una base de datos Oracle (10g y superiores) "en frío", es decir, con la base de datos abajo, copiando cada archivo de datos a otro host y en las mismas rutas u otra.
Cold Backup
1) Obtener listado de datafiles en el Origen:
BD Origen:
set termout off
set heading off
SET ECHO OFF
set feedback
set verify off
spool datafiles_BD.txt
select file_name from dba_data_files;
select name from v$controlfile;
select member from v$logfile;
spool off
quit
2) Verificar espacio origen y destino.
2.1) Origen:
[/u03/oradata/gest] $ df -h /u03
Filesystem size used avail capacity Mounted on
/dev/dsk/c0d4s6 295G 215G 77G 74% /u03
[/u03/oradata/gest] $ du -srh /u03/oradata/gest
144G /u03/oradata/gest
2.2) Destino:
[/u00/appl/oracle/DBA_ALTIUZ] $ df -h /u03
Filesystem size used avail capacity Mounted on
/dev/dsk/c0d4s6 295G 203G 89G 70% /u03
[/u00/appl/oracle/DBA_ALTIUZ] $ du -srh /u03/oradata/gest
141G /u03/oradata/gest
3) Borrar Datafiles destino, si corresponde:
rm /u03/oradata/gest/bdump/*.dbf *.log *.ctl *.trc
rm /u03/oradata/gede/*.*
rm /u03/oradata/gede/*dump/*
rm -R /u03/oradata/gede/cdump/core*
4) Crear el parameter file: init.ora en el Origen.
create pfile from spfile;
5) Crear controlfile to trace en el origen.
alter database backup controlfile to trace as '/tmp/controlfile_to_trace.txt';
5) Bajar BD origen:
lsnrctl stop
shutdown immediate
6) Copiar datafiles, controlfile_to_trace, controlfile, redolog file y pfile al host de la BD Destino.
(obtener listado del punto 1).
scp *.dbf host_destino:*.dbf
Cold Restore
1) Modificar pfile del destino, si correspode.
2) Modificar el controlfile to trace, cambiandole las rutas (si corresponde) y sacar el reuse. (/tmp/controlfile_to_trace.txt)
Ejemplo:
CREATE CONTROLFILE DATABASE "GEST" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 254
MAXINSTANCES 8
MAXLOGHISTORY 34487
LOGFILE
GROUP 1 '/u03/oradata/gest/redo01.log' SIZE 50M,
GROUP 2 '/u03/oradata/gest/redo02.log' SIZE 50M,
GROUP 3 '/u03/oradata/gest/redo03.log' SIZE 50M,
GROUP 4 '/u03/oradata/gest/redo04.log' SIZE 50M,
GROUP 5 '/u03/oradata/gest/redo05.log' SIZE 50M,
GROUP 6 '/u03/oradata/gest/redo06.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/u03/oradata/gest/system01.dbf',
'/u03/oradata/gest/tools01.dbf',
'/u03/oradata/gest/parcom_data01.dbf',
'/u03/oradata/gest/undotbs_01.dbf',
'/u03/oradata/gest/users01.dbf',
'/u03/oradata/gest/undotbs_02.dbf',
'/u03/oradata/gest/drsys01.dbf',
'/u03/oradata/gest/tablas_01.dbf',
'/u03/oradata/gest/tablas_02.dbf',
'/u03/oradata/gest/tablas_03.dbf',
'/u03/oradata/gest/tablas_04.dbf',
'/u03/oradata/gest/tablas_05.dbf',
'/u03/oradata/gest/indices_01.dbf',
'/u03/oradata/gest/indices_02.dbf',
'/u03/oradata/gest/indices_03.dbf',
'/u03/oradata/gest/indices_04.dbf',
'/u03/oradata/gest/tablas_06.dbf',
'/u03/oradata/gest/tablas_07.dbf',
'/u03/oradata/gest/tablas_08.dbf',
'/u03/oradata/gest/parcom_ind01.dbf',
'/u03/oradata/gest/parcom_data02.dbf',
'/u03/oradata/gest/tablas_09.dbf',
'/u03/oradata/gest/indices_05.dbf',
'/u03/oradata/gest/indices_06.dbf',
'/u03/oradata/gest/tablas_10.dbf',
'/u03/oradata/gest/C:TAB_FICHERO.ora',
'/u03/oradata/gest/sysaux01.dbf',
'/u03/oradata/gest/sitrel_data01.dbf',
'/u03/oradata/gest/sitrel_ind01.dbf',
'/u03/oradata/gest/indices_07.dbf',
'/u03/oradata/gest/indices_08.dbf',
'/u03/oradata/gest/indices_09.dbf',
'/u03/oradata/gest/tablas_11.dbf',
'/u03/oradata/gest/tablas_12.dbf',
'/u03/oradata/gest/indices_10.dbf',
'/u03/oradata/gest/sitrel_data02.dbf',
'/u03/oradata/gest/sitrel_ind02.dbf',
'/u03/oradata/gest/tablas_13.dbf',
'/u03/oradata/gest/sysaux_02.dbf',
'/u03/oradata/gest/dlegal_01.dbf',
'/u03/oradata/gest/tab_base.dbf',
'/u03/oradata/gest/ind_base.dbf',
'/u03/oradata/gest/system20.dbf',
'/u03/oradata/gest/b_carga_dat_auto_01.dbf',
'/u03/oradata/gest/b_carga_dat_auto_02.dbf',
'/u03/oradata/gest/b_carga_dat_auto_03.dbf',
'/u03/oradata/gest/b_carga_dat_auto_04.dbf',
'/u03/oradata/gest/b_carga_dat_auto_05.dbf',
'/u03/oradata/gest/b_carga_dat_auto_06.dbf',
'/u03/oradata/gest/b_carga_dat_auto_07.dbf',
'/u03/oradata/gest/b_carga_dat_auto_08.dbf',
'/u03/oradata/gest/b_carga_dat_auto_09.dbf',
'/u03/oradata/gest/webpay_data_16.dbf',
'/u03/oradata/gest/webpay_data_17.dbf',
'/u03/oradata/gest/webpay_data_18.dbf',
'/u03/oradata/gest/webpay_ind_16.dbf',
'/u03/oradata/gest/indices_11.dbf',
'/u03/oradata/gest/tablas_14.dbf',
'/u03/oradata/gest/indices_12.dbf',
'/u03/oradata/gest/indices_13.dbf',
'/u03/oradata/gest/indices_14.dbf',
'/u03/oradata/gest/tablas_15.dbf'
CHARACTER SET WE8ISO8859P9
;
3) Iniciar BD en modo NO-MOUNT:
export ORACLE_SID=gest
startup nomount
* Luego ejecutar el script control file to trace, para crar el CONTROLFILE actualizado del destino.
sql> @/u03/oradata/gest/ctrl_gest_082016.sql
* Luego abrir el control file con (si es que no ha sido montada por el query anterior)
alter database mount;
* Ahora podemos leer los datafiles, controlfile y redolog con:
select name from v$controlfile;
select member from v$logfile;
5) Si corresponde, cambiar el PATH y nombre del datafile de esta forma Ej:
alter database rename file
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF' to
'D:\oracle\product\10.2.0\oradata\SYSTEM01.DBF';
:
:
6) Ahora abrir la BD:
alter database open;
7) Crear datafile para tablespace TEMP:
ALTER TABLESPACE TEMP ADD TEMPFILE '/u00/oracle/unifdesa/temp1_01.tmp'
SIZE 3448M REUSE AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
set line 100
col format file_name a40
select file_name from dba_data_files;
select file_name from DBA_TEMP_FILES;
8) Ejecutar:
sql> @?/rdbms/admin/utlrp.sql -- recompila objetos invalidos de la BD despues de un upgrade o parche.
...puede demorar unos minutos largos...
9) Ahora la BD esta en modo READ/WRITE.
Fin
No hay comentarios:
Publicar un comentario