Restauración y mantenimiento de backups de Oracle Database en “la nube”


En este post anterior vimos cómo configurar los backups en el servicio de Cloud de Oracle. En esta entrada veremos cómo restaurar ficheros a partir de uno de estos backups y como administrar nuestros backups (básicamente como eliminar los que ya consideremos obsoletos).

Restauración de un backup

En este caso la única diferencia entre hacer una restauración de cinta o disco y hacerlo desde la nube será que deberemos especificar la clave de cifrado, tener configurado el Wallet de TDE o ambos según lo hubiéramos hecho durante el backup.

Partiendo del de backup usado en el anterior post (cifrado con una clave) lanzaremos una restauración de un fichero.

En primer lugar eliminamos el fichero de la BBDD, seleccionamos un tablespace y lo ponemos “offline”.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[oracle@centos1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Wed Oct 14 04:32:24 2015
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SYS @ one > select tablespace_name,file_name from dba_data_files;
TABLESPACE_NAME
------------------------------
FILE_NAME
---------------------------------------------------------------------------------------
USERS
+DATOS/one/datafile/users.257.848555587
UNDOTBS1
+DATOS/one/datafile/undotbs1.258.848555587
SYSAUX
+DATOS/one/datafile/sysaux.259.848555585
SYSTEM
+DATOS/one/datafile/system.265.848555585
SYS @ one > alter tablespace users offline;
Tablespace altered.

Nos conectamos a la instancia ASM y eliminamos el fichero.

1
2
3
4
5
6
7
8
9
10
[oracle@centos1 ~]$ . ./env_grid.sh
[oracle@centos1 ~]$ asmcmd
ASMCMD> ls
DATA/
DATOS/
ASMCMD> cd datos
ASMCMD> cd one
ASMCMD> cd datafile
ASMCMD> rm users.257.848555587
ASMCMD> exit

Podemos intentar poner de nuevo online el tablespace y nos encontramos con el error esperado, el fichero no es accesible.

1
2
3
4
5
6
SYS @ one > alter tablespace users online;
alter tablespace users online
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '+DATOS/one/datafile/users.257.848555587'

Nos conectamos a RMAN y lanzamos el comando de restauración del fichero, deberemos indicar a RMAN la Media Management Library (MML) a usar y la clave de cifrado usada durante el backup.

La clave de cifrado la indicaremos mediante el comando “SET DECRYPTION IDENTIFIED BY MyPasswordSecreto”.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
[oracle@centos1 ~]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Wed Oct 14 04:36:59 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: ONE (DBID=737395295)
RMAN> SET DECRYPTION IDENTIFIED BY MyPasswordSecreto;
executing command: SET decryption
using target database control file instead of recovery catalog
RMAN> RUN
{
2>> ALLOCATE CHANNEL c1 DEVICE TYPE SBT_TAPE PARMS  'SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libopc.so,      SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/opcone.ora)';
4> RESTORE DATAFILE '+DATOS/one/datafile/users.257.848555587';
5> RECOVER DATAFILE 4;
6> }
allocated channel: c1
channel c1: SID=153 device type=SBT_TAPE
channel c1: Oracle Database Backup Service Library VER=3.15.1.16
Starting restore at 14-OCT-15
channel c1: starting datafile backup set restore
channel c1: specifying datafile(s) to restore from backup set
channel c1: restoring datafile 00004 to +DATOS/one/datafile/users.257.848555587
channel c1: reading from backup piece 0oqjlj22_1_1
channel c1: piece handle=0oqjlj22_1_1 tag=TAG20151014T041705
channel c1: restored backup piece 1
channel c1: restore complete, elapsed time: 00:00:15
Finished restore at 14-OCT-15
Starting recover at 14-OCT-15
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=153 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=3.15.1.16
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=157 device type=DISK
starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 14-OCT-15
RMAN> EXIT
Recovery Manager complete.

La restauración ya ha terminado, si nos conectamos a la BBDD podremos ver que ya tenemos nuevamente el fichero disponible.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[oracle@centos1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Wed Oct 14 04:39:47 2015
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SYS @ one > select file_name,status from dba_data_files;
FILE_NAME
-----------------------------------------------------------------------------------------------
STATUS
---------
+DATOS/one/datafile/users.257.893047063
AVAILABLE
+DATOS/one/datafile/undotbs1.258.848555587
AVAILABLE
+DATOS/one/datafile/sysaux.259.848555585
AVAILABLE
+DATOS/one/datafile/system.265.848555585
AVAILABLE
SYS @ one > exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

Mantenimiento de los backups

La segunda demostración consistirá en la eliminación de los backups que tengamos en la nube y que consideremos obsoletos.

Esta tarea es tan simple como indicar a RMAN cuál es nuestra política en cuanto a recuperación de la BBDD (de hecho le indicaremos la política de retención de backups) y ejecutar un comando de mantenimiento para que realice el purgado de los backups que ya no sean necesarios.

Podemos definir políticas de purgado basadas en una ventana de recuperación de “n” días o basadas en disponer de una redundancia de “n” backups anteriores.

Por ejemplo, en nuestro caso tenemos la política “por defecto” de redundancia 1 de backups, lo que implica que siempre debemos tener como mínimo un backup. En caso de tener mas de uno, los más antiguos se consideran obsoletos.

Podemos ver la politica activa en cada momento con el comando “show all” de RMAN.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ONE are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE 'SBT_TAPE' BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libopc.so,      SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/opcone.ora)';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'HIGH' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/snapcf_one.f'; # default

Si ya hemos hecho más de un backup podemos lanzar el comando “DELETE OBSOLETE” para que haga purgado de todos los backups no necesarios y así satisfacer nuestra politica de retención.

Antes de lanzar ese comando abriremos un canal de mantenimiento indicando la libreria MML de almacenamiento en la nube y el fichero de configuración a usar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[oracle@centos1 ~]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Wed Oct 14 04:28:43 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: ONE (DBID=737395295)
RMAN> ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE SBT_TAPE PARMS  'SBT_LIBRARY=/u01/app/oracle/product/11.2.0/dbhome_1/lib/libopc.so,      SBT_PARMS=(OPC_PFILE=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/opcone.ora)';
using target database control file instead of recovery catalog
allocated channel: ORA_MAINT_SBT_TAPE_1
channel ORA_MAINT_SBT_TAPE_1: SID=32 device type=SBT_TAPE
channel ORA_MAINT_SBT_TAPE_1: Oracle Database Backup Service Library VER=3.15.1.16
RMAN> DELETE OBSOLETE DEVICE TYPE SBT;
RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
Deleting the following obsolete backups and copies:
Type                 Key    Completion Time    Filename/Handle
-------------------- ------ ------------------ --------------------
Backup Set           3      14-OCT-15
  Backup Piece       3      14-OCT-15          0lqjlgqf_1_1
Backup Set           4      14-OCT-15
  Backup Piece       4      14-OCT-15          c-737395295-20151014-01
Do you really want to delete the above objects (enter YES or NO)? YES
deleted backup piece
backup piece handle=0lqjlgqf_1_1 RECID=3 STAMP=893043536
deleted backup piece
backup piece handle=c-737395295-20151014-01 RECID=4 STAMP=893043843
Deleted 2 objects
RMAN> EXIT
Recovery Manager complete.

Los backups en la nube tienen las mismas funcionalidades que los realizados a disco o cinta, esto es, los podemos marcar con “TAG” (una etiqueta) para manejarlos mas fácilmente (y restaurar/purgar backups puntuales basándonos en ella), marcar backups como permanentes (para que no sean purgardos siguiendo la politica de retención), etc.

Con esto ya tenemos todas las herramientas básicas para poder empezar a trabajar con nuestro sistema de backup en la nube.

Twitter
LinkedIn
Evolución, innovación y transformación
37 Service Expertise avalados por Oracle 
Nuestra propuesta de valor
Posts 100% Oracle
Sigue nuestro día a día