Oracle Database Backup Service: Erros Comuns e Melhores Práticas
Por Matheus Boesing,
Postado em Junho 2016
Revisado por Marcelo Pivovar - Solution Architect
Saudações Comunidade! Este é o terceiro artigo de uma trilogia focada no entendimento, instalação, configuração e utilização do Oracle Database Backup Service, ofertado na categoria Data Management Cloud do Oracle Cloud Platform as a Service (PaaS).
Nesta última etapa abordaremos os erros mais comuns e melhores práticas sobre a utilização do Oracle Database Backup Service.
Você pode ler os dois artigos anteriores aqui:
- Entendendo o Backup para Cloud e Oracle Database Backup Cloud Service
- Oracle Database Backup Service: Backup de Banco de Dados On-Premise para Cloud
Erros Comuns
Como vimos nas partes 1 e 2 desta trilogia, a utilização do Oracle Database Backup Service é bastante simples, havendo apenas dois ou três pontos de atenção na sua instalação e configuração. É justamente nestes pontos que os problemas mais comuns costumam ocorrer. São eles:
1. Configuraração da Replication Policy Costuma ser a causa do primeiro erro encontrado por novos usuários, durante a execução do jar utilizado para instalação do Oracle Database Cloud Backup Module (ODCBM), também chamado de OPC (Oracle Private Cloud). Neste caso, o erro será semelhante 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)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:385)
at java.net.Socket.connect(Socket.java:546)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:602)
at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:160)
at sun.net.NetworkClient.doConnect(NetworkClient.java:178)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:427)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:275)
at sun.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)
at oracle.backup.opc.install.OpcConfig.main(OpcConfig.java:197)
Could not authenticate to Oracle Database Cloud Backup Module
Esta configuração diz respeito a georeplicação dos seus arquivos de backup e é necessária para utilização do serviço. Para configurar basta acessar a opção “Set Replication Policy” do Oracle Storage Cloud Service, que pode ser localizado no menu “My Services”, conforme imagem abaixo. Mas atenção, uma vez configurado, não é possível realizar alterações.

Após realização da configuração recomenda-se aguardar em torno de 10 minutos para o provisionamento da área no servidor escolhido.
2. Configuraração de Encryption para Backup Causa do erro KBHS-01602, conforme demonstrado abaixo:
RMAN> backup datafile 1;
Starting backup 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
input datafile 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
Neste caso, cabe lembrar que a utilização de solução de encryption é pré-requisito para utilização do Oracle Database Backup Service. Este dispositivo de segurança garante que não seja possível realizar backup sem criptografia. Conforme desatacado na parte 1, o RMAN oferece basicamente 3 modalidades para tal: Transparent Encryption of Backups; Password Encryption of Backups; Dual Mode Encryption of Backups.
No artigo 2, utilizamos o Password Encryption, o formato mais simples, para efeitos de validação de conceito. Veja exemplo:
RMAN> SET ENCRYPTION ON IDENTIFIED BY "matheusdba" only; executing command: SET encryption
.....CODE BLOCK
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
input datafile 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
Finished backup at 03-MAY-2016 19:31:26
3. Configuraração de Decryption para Restore/Recover Da mesma forma que a situação supracitada, para restauração de arquivo cujo backup foi feito com “Encrypt”, é necessário configurar “Decrypt”. Este mecanismo é padrão do RMAN, porém costuma causar dúvida para usuários não habituados ao uso do recurso. Veja o erro:
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_1channel 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 solução, basta utilizar a mesma senha do ENCRYPTION (durante o backup) para DECRYPTION, conforme:
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
Melhores Práticas
Levando em consideração que a utilização do backup para cloud não representa grandes mudanças em relação aos processos pré-existentes de backup, as recomendações técnicas de melhores práticas são majoritariamente as mesmas que tradicionalmente se aplicam ao RMAN. Cita-se utilização de backups incrementais level 1 diferenciais e cumulativos, paralelismo, block change tracking file, entre outros.
Dentre as funcionalidades do RMAN, além do Secure Backup aplicado através das soluções de encryption já citadas, cabe destacar a importância de recursos como backup compression, uma vez que o limitador de throughput do canal de backup passa a ser o acesso a internet. Neste sentido, soluções que otimizam o tráfego de arquivos proporcionam ganhos não somente ao tempo de backup, mas também na utilização banda. Existe, contudo, um trade-off em relação a taxa de compressão e consumo de CPU, fator que deve ser considerado na escolha do algoritmo.
A tabela abaixo, elaborada a partir da view v$rman_compression_algorithm, apresenta os algoritmos de compressão disponíveis:
Algoritmo |
Release Inicial |
Release Final |
Descrição |
Compatibilidade |
BZIP2 |
10.0.0.0.0 |
11.2.0.0.0 |
Boa taxa de compressão |
9.2.0.0.0 |
BASIC |
10.0.0.0.0 |
- |
Boa taxa de compressão |
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 |
11.0.0.0.0 |
LOW |
11.2.0.0.0 |
- |
Máxima velocidade de compressão |
11.2.0.0.0 |
MEDIUM |
11.2.0.0.0 |
- |
Balanço entre velocidade e taxa de compressão |
11.0.0.0.0 |
HIGH |
11.2.0.0.0 |
- |
Máxima taxa de compressão |
11.2.0.0.0 |
É importante realizar avaliação prévia das dimensões do seu banco de dados e do link de internet disponível. Existe, apesar de qualquer solução de compressão, uma limitação física que precisa ser considerada, sob risco de afetar outros serviços que compartilham do mesmo canal de acesso a rede. Recomenda-se, neste sentido, a avaliação de soluções de QoS a fim de blindar os demais ambientes ou isolar estas rotinas de backup, levando em consideração a equação: Tempo de Backup = Volume de Dados/Largura de Banda.
Da mesma forma, é preciso destacar o cuidado com a modalidade de precificação escolhida, considerando a volumetria e a natureza das operações que se tenciona realizar. A título de análise, utilizando os valores vigentes quando da elaboração deste artigo e uma área de backup exemplo de 1TB: Utilizando a precificação não-metrificada, o valor seria $33/mês. Para o mesmo exemplo utilizando precificação metrificada, teríamos $0,264/GB x 1TB = $26,40. Lembrando que os valores de $0,005 por 1.000 comandos PUT, COPY, POST ou LIST e $0,004 para 1.000 comandos GET nos levam a $26,409. Mais barato, correto? A menos que seja necessário restaurar o banco de dados. Neste caso, a transferência de saída (outbound) é precificada a $0,12/GB. Em conta simples, para restaurar 1TB teríamos o custo de $120,00, equivalente ao custo de quase 4 meses da solução não-metrificada. Sabemos que a restauração de backup é um procedimento a ser evitado, priorizando-se Flashback e outros recursos oferecidos pelo Oracle Database, porém vale destacar que a opção por esta modalidade de precificação inibe atividades como testes de restauração de backup.
Existe uma tendência natural de priorização no uso de serviços como o Database as a Service (seja em formato de instância ou schema), também ofertado na categoria de PaaS. Para situações com limitações contratuais ou cuja latência necessária para outros ambientes internos é um requisito funcional, porém, o uso do Oracle Database Backup Service se mostra uma alternativa amplamente vantajosa, sobretudo em ambientes de pequeno e médio porte. Se trata de um serviço com baixo custo de adesão e que oferece solução para DR completa, com segurança garantida pelo protocolo e total transparência para processos existentes. Se esta é sua situação, vale a pena experimentar!
Matheus Boesingé DBA Oracle especialista em infraestrutura de banco de dados, alta disponibilidade e performance. Possui ampla experiência na administração de VLDBs em Oracle RAC, diversas certificações técnicas e é entusiasta de PaaS/DBaaS, Cloud Computinge Continuous Delivery. Há 7 anos trabalhando exclusivamente com Oracle Database, Matheus é evangelista da tecnologia Oracle e compartilha conhecimentos com a comunidade através de posts semanais no blog GrepOra.com.
Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.