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
Experiences in Oracle databases
viernes, 20 de julio de 2018
miércoles, 28 de agosto de 2013
Presentación de las Buenas Practicas de Objetos de Bases de Datos Oracle en ambientes Productivos
Esta presentación tiene como proposito explicar las políticas de mejores prácticas para los ambientes productivos de bases de datos Oracle.
Estableciendo reglas y estándares para los objetos de BD nuevos y antiguos.
Nota: Material preparado por los DBAs Jose Gonzalez y David Mateluna.
Esta presentación tiene como proposito explicar las políticas de mejores prácticas para los ambientes productivos de bases de datos Oracle.
Estableciendo reglas y estándares para los objetos de BD nuevos y antiguos.
Para regularizar los antiguos, se deberán hacer los ajustes correspondientes, aplicando un proceso de mejora continua.
Nota: Material preparado por los DBAs Jose Gonzalez y David Mateluna.
jueves, 27 de diciembre de 2012
Disaster & Recovery with RMAN using parallelism and compression on Oracle DB 11.1.0.6
Platform
Host:
name=rhora01
O.S.=Red Hat Enterprise Linux Server release 5.6
Database:
SID=fapp
Version=Oracle Data base Enterprise Edition 11.1.0.6.0
archivelog=enable
Full backup configuration
1) Define parameters RMAN
$ rman terget /
rman> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 1 DAYS ;
rman> CONFIGURE CONTROLFILE AUTOBACKUP ON;
rman> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u02/backup_fapp/autobackup_%F.bkp';
2) Clean Catalog
$ rman terget /
run {
CROSSCHECK BACKUP;
CROSSCHECK ARCHIVELOG ALL;
}
run {
DELETE NOPROMPT EXPIRED BACKUP;
DELETE NOPROMPT OBSOLETE;
}
3) If the DB is using pfile (init.ora), then make a backup
cd $ORACLE_HOME/dbs
cp -p initfapp.ora initfapp_backup.ora
4) Backup of the database
$ rman terget /
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 3;
run {
allocate channel D1 type disk Format '/u02/backup_fapp/backup_full_db_d1_%d_%u_%s_%p.bkp';
allocate channel D2 type disk Format '/u02/backup_fapp/backup_full_db_d2_%d_%u_%s_%p.bkp';
allocate channel D3 type disk Format '/u02/backup_fapp/backup_full_db_d3_%d_%u_%s_%p.bkp';
sql 'alter system archive log current';
backup full database plus archivelog DELETE ALL INPUT TAG='BKP BD Daily Full';
release channel D1;
release channel D2;
release channel D3;
}
Disaster Simulation
We remove all datafiles, controlfile and pfile / spfile.
Now, we retrieve the full backup.
1) Restore pfile or spfile
1.a) Restore pfile from backup from o.s.:
cd $ORACLE_HOME/dbs
cp -p initfapp_backup.ora initfapp.ora
1.b) Restore spfile from RMAN autobackup:rman target /
SET DBID=3953304193; # <--- Obtained from rman backup log.
startup nomount;
restore spfile from '/u02/backup_fapp/autobackup_c-153873094-20121120-00.bkp';
shutdown immediate;
sqlplus / as sysdba
startup nomount;
2) Restore Controfiles:
rman target /
SET DBID=153873094;
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u02/backup_fapp/autobackup_%F.bkp';
run {
restore controlfile FROM AUTOBACKUP;
alter database mount;
}
3) Restore and recover data base full;
rman target /
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 3;
run {
allocate channel D1 type disk Format '/u02/backup_fapp/backup_full_db_d1_%d_%u_%s_%p.bkp';
allocate channel D2 type disk Format '/u02/backup_fapp/backup_full_db_d2_%d_%u_%s_%p.bkp';
allocate channel D3 type disk Format '/u02/backup_fapp/backup_full_db_d3_%d_%u_%s_%p.bkp';
restore database;
switch datafile all;
recover database;
release channel D1;
release channel D2;
release channel D3;
}
4) Open database:
$ export ORACLE_SID=fapp
$ sqlplus / as sysdba
SQL> alter database open resetlogs;
Database altered.
SQL> select INSTANCE_NAME,STARTUP_TIME,STATUS from v$instance;
INSTANCE_NAME STARTUP_T STATUS
---------------- --------- ------------
fapp 20-NOV-12 OPEN
5) The end;
Host:
name=rhora01
O.S.=Red Hat Enterprise Linux Server release 5.6
Database:
SID=fapp
Version=Oracle Data base Enterprise Edition 11.1.0.6.0
archivelog=enable
Full backup configuration
1) Define parameters RMAN
$ rman terget /
rman> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 1 DAYS ;
rman> CONFIGURE CONTROLFILE AUTOBACKUP ON;
rman> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u02/backup_fapp/autobackup_%F.bkp';
2) Clean Catalog
$ rman terget /
run {
CROSSCHECK BACKUP;
CROSSCHECK ARCHIVELOG ALL;
}
run {
DELETE NOPROMPT EXPIRED BACKUP;
DELETE NOPROMPT OBSOLETE;
}
3) If the DB is using pfile (init.ora), then make a backup
cd $ORACLE_HOME/dbs
cp -p initfapp.ora initfapp_backup.ora
4) Backup of the database
$ rman terget /
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 3;
run {
allocate channel D1 type disk Format '/u02/backup_fapp/backup_full_db_d1_%d_%u_%s_%p.bkp';
allocate channel D2 type disk Format '/u02/backup_fapp/backup_full_db_d2_%d_%u_%s_%p.bkp';
allocate channel D3 type disk Format '/u02/backup_fapp/backup_full_db_d3_%d_%u_%s_%p.bkp';
sql 'alter system archive log current';
backup full database plus archivelog DELETE ALL INPUT TAG='BKP BD Daily Full';
release channel D1;
release channel D2;
release channel D3;
}
Disaster Simulation
We remove all datafiles, controlfile and pfile / spfile.
Now, we retrieve the full backup.
1) Restore pfile or spfile
1.a) Restore pfile from backup from o.s.:
cd $ORACLE_HOME/dbs
cp -p initfapp_backup.ora initfapp.ora
1.b) Restore spfile from RMAN autobackup:rman target /
SET DBID=3953304193; # <--- Obtained from rman backup log.
startup nomount;
restore spfile from '/u02/backup_fapp/autobackup_c-153873094-20121120-00.bkp';
shutdown immediate;
sqlplus / as sysdba
startup nomount;
2) Restore Controfiles:
rman target /
SET DBID=153873094;
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u02/backup_fapp/autobackup_%F.bkp';
run {
restore controlfile FROM AUTOBACKUP;
alter database mount;
}
3) Restore and recover data base full;
rman target /
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 3;
run {
allocate channel D1 type disk Format '/u02/backup_fapp/backup_full_db_d1_%d_%u_%s_%p.bkp';
allocate channel D2 type disk Format '/u02/backup_fapp/backup_full_db_d2_%d_%u_%s_%p.bkp';
allocate channel D3 type disk Format '/u02/backup_fapp/backup_full_db_d3_%d_%u_%s_%p.bkp';
restore database;
switch datafile all;
recover database;
release channel D1;
release channel D2;
release channel D3;
}
4) Open database:
$ export ORACLE_SID=fapp
$ sqlplus / as sysdba
SQL> alter database open resetlogs;
Database altered.
SQL> select INSTANCE_NAME,STARTUP_TIME,STATUS from v$instance;
INSTANCE_NAME STARTUP_T STATUS
---------------- --------- ------------
fapp 20-NOV-12 OPEN
5) The end;
Suscribirse a:
Comentarios (Atom)