Oracle Database Backup Service: Errores comunes y Mejores prácticas

Por Matheus Boesing, Joel Pérez  & Sebastián D'Alessandro
Publicado en Septiembre 2016

Este es el tercer artículo de una trilogía enfocada en el conocimiento, instalación, configuración y utilización de Oracle Database Backup Service, el cual es ofrecido como servicio en la categoría Data Management Cloud de Oracle Cloud Platafform as a Service (PaaS).

En esta última parte, abordaremos los errores más comunes y las mejores prácticas sobre la utilización de Oracle Database Backup Service.

Aquí puede leer los dos primeros artículos de esta serie:

Errores comunes

Como vimos en las partes 1 y 2 de esta trilogía, el uso de Oracle Database Backup Service es bastante simple y sólo requiere dos o tres puntos de atención en su instalación y configuración. Es en estos puntos,es donde  por lo general se producen los problemas más comunes. Ellos son:

1. Configuración de la Replication Policy

A menudo, el primer error encontrado por los nuevos usuarios es durante la ejecución del jar utilizado para la instalación de Oracle Database Cloud Backup Module (ODCBM), también denominado OPC (Oracle Private Cloud). El error es algo similar a:

java -jar opc_install.jar -serviceName Storage -identityDomain usmatheusdba -opcId 'matheus@boesing.com.br' 
-opcPass 'BestBlog2016' -walletDir /db/oracle/admin/cloud/wallet -libDir /db/oracle/admin/cloud/libs

Oracle Database Cloud Backup Module Install Tool, build 2016-02-04
java.net.UnknownHostException: usmatheusdba.storage.oraclecloud.com
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:175)
atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:385)
atjava.net.Socket.connect(Socket.java:546)
atsun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:602)
at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:160)
atsun.net.NetworkClient.doConnect(NetworkClient.java:178)
atsun.net.www.http.HttpClient.openServer(HttpClient.java:427)
atsun.net.www.http.HttpClient.openServer(HttpClient.java:529)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:275)
atsun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:332)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient
(AbstractDelegateHttpsURLConnection.java:191)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:891)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect
(AbstractDelegateHttpsURLConnection.java:177)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1226)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at oracle.backup.opc.install.OpcConfig.testConnection(OpcConfig.java:235)
at oracle.backup.opc.install.OpcConfig.doOpcConfig(OpcConfig.java:204)
atoracle.backup.opc.install.OpcConfig.main(OpcConfig.java:197)
Could not authenticate to Oracle Database Cloud Backup Module</init>

Esta configuración se refiere a la geo replicación de sus archivos de backup y es necesaria para poder utilizar el servicio. Para configurarla basta con acceder a la opción " Set Replication Policy " de Oracle Storage Cloud Service, que se encuentra en el menú "My Services", como se muestra en la imagen de abajo. Hay que tener precaución, una vez configurada, no se pueden realizar cambios.

Description: Oracle Database Backup Service Errors Comuns

Una vez terminada la configuración se recomienda que esperar unos 10 minutos para el aprovisionamiento del área en el servidor seleccionado.

2. Configuración de Encryption para el backup

Causa el error KBHS-01602 tal como se puede ver abajo:

RMAN>backupdatafile 1;
Startingbackup at 03-MAY-2016 19:23:32
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=226 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=3.15.12.30
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
inputdatafile file number=00001 name=/db/u1001/teste/cloud_test/system01.dbf
channel ORA_SBT_TAPE_1: starting piece 1 at 03-MAY-2016 19:23:34
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on ORA_SBT_TAPE_1 channel at 05/03/2016 19:23:41
ORA-27030: skgfwrt: sbtwrite2 returned error
ORA-19511: Error received from media manager layer, error text:
KBHS-01602: backup piece 0nr4mddm_1_1 is not encrypted

En este caso, vale la pena recordar que la utilización de la solución de encryption es pre-requisito para la utilización de Oracle Database Backup Service. Este mecanismo de seguridad garantiza que no sea posible realizar backups sin criptografía. Como vimos en la parte 1, RMAN ofrece básicamente 3 modalidades para esto: Transparent Encryption of Backups; Password Encryption of Backups; Dual Mode Encryption of Backups.

En el artículo 2 utilizamos "Password Encryption", la forma más sencilla a efecto de una validación de concepto.

Veamos abajo el ejemplo:

RMAN> SET ENCRYPTION ON IDENTIFIED BY "matheusdba" only;
executing command: SET encryption
RMAN> backup datafile 1;
Starting backup at 03-MAY-2016 19:25:05
using channel ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
inputdatafile file number=00001 name=/db/u1001/teste/cloud_test/system01.dbf
channel ORA_SBT_TAPE_1: starting piece 1 at 03-MAY-2016 19:25:05
channel ORA_SBT_TAPE_1: finished piece 1 at 03-MAY-2016 19:31:10
piece handle=0or4mdgh_1_1 tag=TAG20160503T192505 comment=API Version 2.0,MMS Version 3.15.12.30
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:06:05
channel ORA_SBT_TAPE_1: starting full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_SBT_TAPE_1: starting piece 1 at 03-MAY-2016 19:31:11
channel ORA_SBT_TAPE_1: finished piece 1 at 03-MAY-2016 19:31:26
piece handle=0pr4mdru_1_1 tag=TAG20160503T192505 comment=API Version 2.0,MMS Version 3.15.12.30
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:15
Finishedbackup at 03-MAY-2016 19:31:26

3. Configuración de Decryption para Restore/Recover

De la misma manera que en la situación anterior, para la restauración de archivos cuyo backup fue realizado con la cláusula “Encrypt” es necesario configurar Decrypt. Este mecanismo es estándar de RMAN, pero a menudo genera dudas en los usuarios no acostumbrados a utilizar esta funcionalidad.

Veamos el error:

RMAN> restore datafile 6;
Starting restore at 03-MAY-2016 19:49:53
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=210 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: Oracle Database Backup Service Library VER=3.15.12.30
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=226 device type=DISK
channel ORA_SBT_TAPE_1: starting datafile backup set restore
channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set
channel ORA_SBT_TAPE_1: restoring datafile 00006 to /db/u1001/teste/cloud_test/teste_restore.dbf
channel ORA_SBT_TAPE_1: reading from backup piece 0sr4mdun_1_1

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 05/03/2016 19:49:59
ORA-19870: error while restoring backup piece 0sr4mdun_1_1
ORA-19913: unable to decrypt backup
ORA-28365: wallet is not open

Para solucionarlo, basta con utilizar la misma contraseña de ENCRYPTION (usada durante el backup) para DERYPTION, de la siguiente manera:

RMAN> set decryption identified by "matheusdba";
executing command: SET decryption
RMAN> restore datafile 6;
Starting restore at 03-MAY-2016 20:00:58
using channel ORA_SBT_TAPE_1
using channel ORA_DISK_1
channel ORA_SBT_TAPE_1: starting datafile backup set restore
channel ORA_SBT_TAPE_1: specifying datafile(s) to restore from backup set
channel ORA_SBT_TAPE_1: restoring datafile 00006 to /db/u1001/teste/cloud_test/teste_restore.dbf
channel ORA_SBT_TAPE_1: reading from backup piece 0sr4mdun_1_1
channel ORA_SBT_TAPE_1: piece handle=0sr4mdun_1_1 tag=TAG20160503T193239
channel ORA_SBT_TAPE_1: restored backup piece 1
channel ORA_SBT_TAPE_1: restore complete, elapsed time: 00:00:03
Finished restore at 03-MAY-2016 20:01:02

Mejores prácticas

Teniendo en cuenta que el uso de backup en la nube no representa grandes cambios en relación con procesos ya existentes de copia de seguridad, las recomendaciones técnicas sobre mejores prácticas son en gran medida las mismas que tradicionalmente se aplican para RMAN. Utilizar backups incrementales de nivel 1 diferenciales y acumulativos, paralelismo, block change tracking file, entre otras.

Entre las funcionalidades de RMAN, aparte de Secure Backup implementado mediante las soluciones de cifrado ya mencionadas, se destaca la importancia de las funcionalidades de compresión “backup compression”, ya que como mencionamos anteriormente la limitante de throughput del canal el backup pasa a ser el acceso a Internet. En este sentido, las soluciones que optimizan el tráfico de archivos proporcionan ganancias no sólo en el tiempo de backup, sino también en la utilización del ancho de banda. Sin embargo, existe un trade-off en relación a la tasa de compresión y consumo de CPU, factor que debe ser considerado en la elección del algoritmo.

La siguiente tabla, extraída de la vista v$rman_compression_algorithm presenta los algoritmos de compresión disponibles:

Algoritmo Release Inicial Release Final Descripción Compatibilidade
BZIP2 10.0.0.0.0 11.2.0.0.0 Boa taxa de compressão Buena tasa de compresión 9.2.0.0.0
BASIC 10.0.0.0.0 - Boa taxa de compressão Buena tasa de compresión 9.2.0.0.0
ZLIB 11.0.0.0.0 11.2.0.0.0 Balanço entre velocidade e taxa de compressão Balance entre velocidad y tasa de compresión 11.0.0.0.0
LOW 11.2.0.0.0 - Máxima velocidade de compressão Máxima velocidad de compresión 11.2.0.0.0
MEDIUM 11.2.0.0.0 - Balanço entre velocidade e taxa de compressão Balance entre velocidad y tasa de compresión 11.0.0.0.0
HIGH 11.2.0.0.0 - Máximataxa de compressão Máximatasa de compresión 11.2.0.0.0

Es importante llevar a cabo una evaluación previa del tamaño de su base de datos y enlace de internet. Existe, más allá de cualquier solución de compresión, una limitación física que debe ser considerada como un riesgo que puede llegar a afectar otros servicios que comparten el mismo canal de acceso a la red. Se recomienda, en este sentido, la evaluación de soluciones de calidad de servicio (QoS) para proteger a los demás ambientes o aislar estas rutinas de backup, teniendo en cuenta la ecuación: Tiempo de respaldo = volumen de datos/ancho de banda.

Del mismo modo, debemos hacer hincapié en tener cuidado con la modalidad de fijación de precios seleccionada, considerando el volumen y naturaleza de las operaciones que van a llevarse a cabo. A modo de ejemplo: Utilizando valores vigentes al momento de la preparación de este artículo y contemplando como ejemplo un área de backup de 1TB: utilizando la fijación de precio “no-métrica”, el valor sería de $ 33/mes. Para el mismo ejemplo mediante la fijación de precios “métrica”, tendríamos $ 0.264/GB x 1TB = $ 26.40. Recordando que los valores de $ 0.005 por 1.000 comandos COPY, POST o LIST y $ 0,004 para 1000 comandos GET nos llevan a $ 26.409. ¿Más barato verdad? . A menos que sea necesario restaurar la base de datos, en este caso, la transferencia de salida (outbound) tiene un precio de $ 0.12/GB. En cálculos sencillos, para restaurar 1 TB el costo sería de $120.00 equivalente al costo de casi 4 meses de solución “no-métrica”. Sabemos que la restauración de copia de seguridad es un procedimiento que hay que evitar, priorizando Flashback y otras características ofrecidas por la base de datos Oracle, pero vale la pena señalar que la elección de este tipo de fijación de precios impacta en actividades tales como test de restauración de backup.

Hay una tendencia natural a priorizar el uso de servicios tales como Database as a Service también ofrecido en la categoría de PaaS (ya sea en formato instancia o esquema), para situaciones con limitaciones contractuales o cuyo tiempo de latencia con otros ambientes internos es un requisito funcional. Sin embargo, el uso de Oracle Database Backup Service se muestra como una alternativa atractiva, ampliamente ventajosa, especialmente para ambientes pequeños y medianos. Se trata de un servicio con un bajo costo de contratación y que ofrece una solución completa para DR, con seguridad garantizada por protocolo y total transparencia para los procesos existentes.

Si éste es su caso, entonces no dude en probar este servicio!

Matheus Boesing es un DBA especialista en infraestructura de base de datos, alta disponibilidad y rendimiento. Tiene una amplia experiencia en la gestión de VLDBs en Oracle RAC, varias certificaciones técnicas y es entusiasta de PaaS/DBaaS, Cloud Computing y entrega continua. Ha trabajado 7 anos exclusivamente con base de datos Oracle, Matheus es evangelista de tecnología Oracle y comparte sus conocimientos con la comunidad a través de los mensajes de blogs semanales en GrepOra.com.

Joel Pérez es un experto DBA (Oracle ACE Director, Maximum Availability OCM, OCM Cloud Admin. & OCM12c/11g) con más de 16 años de experiencia real en el mundo de tecnología Oracle, especializado en diseño e implementación de soluciones de: Cloud, Alta disponibilidad, Recuperación contra desastres, Upgrades, Replicación y toda área relacionada con bases de datos Oracle. Joel se desempeña como "Chief Technologist & MAA, HA Architect" para www.Enmotech.com Yunhe Enmo (Beijing) Technology Co. Ltd. Beijing, China. Perfil OCM Joel Pérez: http://education.oracle.com/education/otn/JoelPerez.htm

Sebastián D'Alessandro es un Senior DBA con más de 12 años de experiencia en tecnología Oracle, focalizado principalmente en seguridad de base de datos, soluciones de alta disponibilidad, disaster recovery y virtualización. Actualmente desarrolla su actividad como consultor e instructor de manera independiente.

Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.