Problema

Em um DB System com Oracle Database 11.2.0.4, todos os backups falham com a seguinte mensagem:

DCS-10045:Validation error encountered: Backup password ******** mandatory to take OSS backup for non-tde enabled database...

Exemplo:

Cenário

O banco foi criado a partir de um duplicate RMAN e a wallet original do banco de dados criado automaticamente durante o provisionamento do DB System foi reutilizada.

Solução para Versão 11gR2

Redefinir a Master Encryption Key para o “novo” banco de dados usando a wallet existente.

Para realizar esse procedimento, é necessário ter conhecimento da senha atual da wallet existente. Na OCI, por padrão essa senha é a mesma que foi definida como senha do “SYS” no provisionamento do DB System. Note que se a senha do SYS foi alterada depois do provisionamento do DB System, a senha da Wallet permanence a mesma (ou seja, ter conhecimento da senha atual do SYS não é suficiente para executar o procedimento a seguir).

A solução a seguir é restrita a versão 11gR2, ao final do post tem um algumas considerações adicionais caso esse problema ocorra na versão 12cR1 ou superior.

1) No SQLPLUS, identifique a localização da wallet:

SQL> select wrl_parameter from v$encryption_wallet;

WRL_PARAMETER
--------------------------------------------------------------------------------
/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME

2) No terminal Linux, remova o arquivo de autologin:

[oracle@dbsystem]$ cd /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME
[oracle@dbsystem]$ ls -lrt
total 8
-rwx------ 1 oracle oinstall 2840 Dec  6 11:34 ewallet.p12
-rwx------ 1 oracle oinstall 2917 Dec  6 11:34 cwallet.sso
[oracle@dbsystem]$
[oracle@dbsystem]$ mv cwallet.sso cwallet.sso.OLD

3) Feche a Wallet Autologin:

SQL> alter system set wallet close;

System altered.

SQL> select status from v$encryption_wallet;

STATUS
------------------
CLOSED

4) Abra a Wallet Password:

SQL> alter system set wallet open identified by "SenhaAtualWallet";

System altered.

5) Redefina a Master Encryption Key:

SQL> alter system set encryption key identified by "SenhaAtualWallet";

System altered.

6) Recrie a Wallet Autologin com o utilitário orapki.

Note que no parâmetro -wallet está sendo passado o diretório da Wallet existente.

[oracle@dbsystem]$ orapki wallet create -wallet /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME -auto_login
Oracle PKI Tool : Version 11.2.0.4.0 - Production
Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.

Enter wallet password: 

Informe a senha atual da Wallet existente.

7) Execute um Novo Backup

Essa é uma execução para validar que a configuração teve efeito e pode ser realizada via console ou diretamente pelo dbcli. Neste exemplo estou usando o dbcli para iniciar um backup full (LV0):

[root@dbsystem]# dbcli create-backup -bt Regular-L0 -in ORCL
{
  "jobId" : "a6a13ab0-89ae-4616-82b3-27eac2fab421",
  "status" : "Created",
  "message" : null,
  "reports" : [ ],
  "createTimestamp" : "March 14, 2022 15:21:47 PM BRT",
  "resourceList" : [ ],
  "description" : "Create Regular-L0 Backup with TAG-auto for Db:ORCL in OSS:bIsE35b3L113ez4IRapH",
  "updatedTime" : "March 14, 2022 15:21:48 PM BRT",
  "percentageProgress" : "0%",
  "cause" : null,
  "action" : null
}

O JOB passou da etapa de validate:

[root@dbsystem]# dbcli describe-job -i a6a13ab0-89ae-4616-82b3-27eac2fab421

Job details
----------------------------------------------------------------
                     ID:  a6a13ab0-89ae-4616-82b3-27eac2fab421
            Description:  Create Regular-L0 Backup with TAG-auto for Db:ORCL in OSS:bIsE35b3L113ez4IRapH
                 Status:  Running
                Created:  March 14, 2022 3:21:47 PM BRT
               Progress:  28%
                Message:

Task Name                                                                Start Time                          End Time                            Status
------------------------------------------------------------------------ ----------------------------------- ----------------------------------- ----------
Validate Database backup Configuration                                   March 14, 2022 3:21:48 PM BRT       March 14, 2022 3:22:33 PM BRT       Success
Backup Database                                                          March 14, 2022 3:22:33 PM BRT       March 14, 2022 3:22:33 PM BRT       Running

A depender da configuração atual do RMAN, o backup poderia falhar com um erro diferente. Exemplo, uma divergência entre a janela de recuperação configurada no RMAN vs o que está configurado na console poderia gerar erro na execução do backup, mas uma vez que a mensagem de erro seja diferente, já é um indicativo que o problema da wallet foi resolvido.

Solução para Versão 12c+

Caso esse problema ocorra no 12c, precisaríamos usar os novos comandos “ADMINISTER KEY MANAGEMENT” para manipular a wallet.

Como alternativa equivalente para a versão 12c, podemos seguir as instruções do post “TDE: WALLET_TYPE com valor UNKNOWN na view V$ENCRYPTION_WALLET após upgrade de 11g para 12c“, mas executando o seguinte comando depois do passo 3 e antes do passo 4:

SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "SenhaAtualWallet" WITH BACKUP;

Se for um Container Database, os comandos de abertura e fechamento da wallet, assim como da definição da Master Encryption Key, precisariam incluir a cláusula CONTAINER=ALL. Exemplo:

SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "SenhaAtualWallet" WITH BACKUP CONTAINER=ALL;

Na versão 12cR1 pode ocorrer de o banco requerer que o comando seja executado diretamente dentro do PDB, exemplo:

SQL> ALTER SESSION SET CONTAINER=PDB1;
SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "SenhaAtualWallet" WITH BACKUP;

Leave a Reply

Discover more from Blog do Dibiei

Subscribe now to keep reading and get access to the full archive.

Continue reading