Gerenciando Chaves de Criptografia em Dispositivos Externos

Saiba como armazenar e gerenciar chaves de criptografia de banco de dados.

Há duas opções para armazenar e gerenciar chaves de criptografia de banco de dados dos seus bancos de dados no Oracle Exadata Database Service on Cloud@Customer:

  1. Em um arquivo de wallet de log-in automático armazenado em um Oracle Advanced Cluster File System (Oracle ACFS) acessível pelo sistema operacional da VM do cliente.
  2. Oracle Key Vault.

Chaves Gerenciadas pelo Cliente no Oracle Exadata Database Service on Cloud@Customer

As chaves gerenciadas pelo cliente para o Oracle Exadata Database Service on Cloud@Customer são um recurso que permite migrar a Chave de Criptografia Principal de TDE do Oracle Database para um Oracle Database do arquivo wallet protegido por senha armazenado no equipamento Oracle Exadata Database Service on Cloud@Customer para um servidor OKV que você controla.

O Oracle Key Vault (OKV) fornece gerenciamento de chaves e segredos tolerante a falhas, altamente disponível e escalável para seus bancos de dados criptografados ExaDB-C@C. Use chaves gerenciadas pelo cliente quando precisar de controle de segurança, conformidade regulatória e criptografia homogênea de dados, enquanto gerencia, armazena e monitora de modo centralizado o ciclo de vida das chaves usadas para proteger seus dados.

É possível:

  • Alternar chaves gerenciadas pela Oracle para chaves gerenciadas pelo cliente em bancos de dados que não estão ativados com o Oracle Data Guard.
  • Alternar suas chaves para manter a conformidade de segurança.
  • A rotação da chave do PDB também é suportada. As operações de rotação de chave do CDB e do PDB só serão permitidas se o banco de dados for gerenciado pelo cliente.

Requisitos

Sobre o Oracle Key Vault

O Oracle Key Vault é um appliance de software com segurança reforçada e pilha completa, criado para centralizar o gerenciamento de chaves e objetos de segurança dentro da empresa.

Observação

O Oracle Key Vault é um sistema gerenciado e provisionado pelo cliente que não faz parte dos serviços gerenciados do Oracle Cloud Infrastructure.

Visão Geral do Armazenamento de Chaves

Integre o Oracle Key Vault (OKV) local com serviços de nuvem de banco de dados gerenciados pelo cliente para proteger seus dados críticos no local.

A integração do Oracle Key Vault permite assumir o controle total das suas chaves de criptografia e armazená-las com segurança em um dispositivo de gerenciamento de chaves externo e centralizado.

O OKV é otimizado para wallets da Oracle, armazenamentos de chaves Java e chaves principais TDE (Criptografia Transparente de Dados) do Oracle Advanced Security. O Oracle Key Vault suporta o padrão OASIS KMIP. O appliance de software com segurança reforçada e pilha completa usa a tecnologia Oracle Linux e Oracle Database para obter segurança, disponibilidade e escalabilidade, podendo ser implantado em um hardware compatível escolhido por você.

O OKV também fornece uma interface REST para que os clientes façam a inscrição automática de pontos finais e configurem wallets e chaves. Para que os Autonomous Databases no Exadata Cloud@Customer estabeleçam conexão com a interface REST do OKV, crie um armazenamento de chaves em sua tenancy para armazenar o endereço IP e as credenciais de administrador do OKV. O Exadata Cloud@Customer armazena temporariamente a senha do administrador de usuário REST do OKV necessária para estabelecer conexão com o appliance OKV em um arquivo de wallet protegido por senha para que o software em execução na VM do cliente possa estabelecer conexão com o servidor OKV. Após a migração das chaves de TDE para o OKV, o software de automação da nuvem removerá a senha do arquivo da wallet. Certifique-se de criar um segredo com o Serviço de Vault da Oracle, que armazenará a senha exigida para que os bancos de dados autônomos estabeleçam conexão com o OKV para gerenciamento de chaves.

Para obter mais informações, consulte "Oracle Key Vault".

Política Obrigatória do IAM para Gerenciar o OKV no Oracle Exadata Database Service on Cloud@Customer

Verifique a política de gerenciamento de acesso de identidade (IAM) para gerenciar o OKV nos Sistemas Oracle Exadata Database Service on Cloud@Customer.

Política é um documento do IAM que especifica quem tem qual tipo de acesso aos seus recursos. Esse documento é usado de diferentes formas: para indicar uma instrução individual escrita no idioma da política; para indicar um conjunto de instruções em um documento único, denominado "política" (que tem um OCID (Oracle Cloud ID) designado a ele) e para indicar o corpo geral das políticas que a sua organização usa para controlar o acesso aos recursos.

Compartimento é uma coleção de recursos relacionados que só podem ser acessados por determinados grupos que receberam permissão de um administrador da sua organização.

Para usar o Oracle Cloud Infrastructure, você deve receber o tipo necessário de acesso em uma política criada por um administrador, quer você esteja usando a Console ou a API REST com um SDK (Software Development Kit), uma interface de linha de comando (CLI) ou outra ferramenta. Se você tentar executar uma ação e receber uma mensagem informando que não tem permissão ou não está autorizado, confirme com o administrador o tipo de acesso concedido e em qual compartimento você deve trabalhar.

Para administradores: A política em "Permitir que administradores de banco de dados gerenciem sistemas de BD" permite que o grupo especificado faça tudo com bancos de dados e recursos de banco de dados relacionados.

Se você não conhecer as políticas, consulte "Conceitos Básicos de Políticas" e "Políticas Comuns". Se quiser saber mais sobre a criação de políticas para bancos de dados, consulte "Detalhes do Serviço de Banco de Dados".

Aplicando Tags a Recursos

Você pode aplicar tags aos seus recursos para ajudar a organizá-los de acordo com suas necessidades comerciais.

Você pode aplicar tags no momento da criação de um recurso ou pode atualizar o recurso posteriormente com as tags desejadas. Para obter informações gerais sobre como aplicar tags, consulte "Tags de Recursos".

Movendo Recursos para Outro Compartimento

Você pode mover os recursos do Vault, do Segredo e do Armazenamento de Chaves do OKV de um compartimento para outro.

Depois de mover um recurso do OCI para um novo compartimento, as políticas inerentes são aplicadas imediatamente e afetam o acesso ao recurso. A movimentação de um recurso do Vault do OKV não afeta o acesso a quaisquer Chaves do Vault do OKV ou Segredos do Vault do OKV que o Vault do OKV contém. Você pode mover Chaves de Vault do OKV ou Segredos de Vault do OKV de um compartimento para outro, independentemente de mover o Vault do OKV ao qual ele está associado. Para obter mais informações, consulte Gerenciando Compartimentos.

Configurando o Oracle Exadata Database Service on Cloud@Customer para Trabalhar com o Oracle Key Vault

Pré-requisitos
  1. Certifique-se de que o OKV esteja configurado e de que a rede esteja acessível na rede do cliente Exadata. Abra as portas 443, 5695 e 5696 para saída na rede do cliente para o software cliente OKV e a instância do banco de dados Oracle para acessar o servidor OKV.
  2. Verifique se a interface REST está ativada na interface do usuário do OKV.
  3. Crie o usuário "Administrador REST do OKV".

    Você pode usar qualquer nome de usuário qualificado de sua escolha, por exemplo, "okv_rest_user". Para ADB-C@C e ExaDB-C@C, use os mesmos usuários REST ou diferentes. Esses bancos de dados podem ser gerenciados por chave nos mesmos clusters ou em clusters OKV locais diferentes. ExaDB-C@C precisa do usuário REST com o privilégio create endpoint. O ADB-C@C precisa do usuário REST com privilégios create endpoint e create endpoint group.

  4. Reúna as credenciais de administrador do OKV e o endereço IP, que é obrigatório para estabelecer conexão com o OKV.

Para obter mais informações, consulte Requisitos de Porta de Rede, Gerenciando Usuários do Oracle Key Vault e Gerenciando Atribuições Administrativas e Privilégios do Usuário

Etapa 1: Criar um Vault no OKV Vault Service e Adicionar um Segredo ao Vault para Armazenar a Senha do Administrador REST do OKV

Sua infraestrutura do Exadata Cloud@Customer se comunica com o OKV sobre REST sempre que um Oracle Database é provisionado para registrar o Oracle Database e solicitar uma wallet no OKV. Portanto, a infraestrutura do Exadata precisa acessar as credenciais de administrador REST para se registrar no servidor OKV.

Essas credenciais são armazenadas com segurança no Oracle Vault Service no OCI como Segredo e acessadas pela infraestrutura do Exadata Cloud@Customer somente quando necessário. Quando necessário, as credenciais são armazenadas em um arquivo de wallet protegido por senha.

Para armazenar a senha do administrador do OKV no serviço OKV Vault, crie um vault seguindo as instruções descritas em Gerenciando Vaults e crie um Segredo nesse vault seguindo as instruções descritas em Gerenciando Segredos.

Etapa 2: Criar um Grupo Dinâmico e uma Instrução de Política de Armazenamento de Chaves para Acessar o Segredo no Vault do OKV

Para conceder aos seus recursos de Armazenamento de Chaves permissão para acessar o segredo no Vault do OKV, você cria um grupo dinâmico de IAM que identifica esses recursos e, em seguida, cria uma política de IAM que concede a esse grupo dinâmico acesso ao segredo criado nos Vaults e Segredos do OKV.

Ao definir o grupo dinâmico, você identifica os recursos do Armazenamento de Chaves especificando o OCID do compartimento que contém o Armazenamento de Chaves.

  1. Copie o OCID do compartimento que contém o recurso do Armazenamento de Chaves.

    Você pode encontrar esse OCID na página Detalhes do Compartimento.

  2. Crie um grupo dinâmico seguindo as instruções em "Para criar um grupo dinâmico" na Documentação do Oracle Cloud Infrastructure. Ao seguir estas instruções, digite uma regra correspondente deste formato:
    ALL {resource.compartment.id ='<compartment-ocid>'}

    em que <compartment-ocid> é o OCID do compartimento que contém o recurso de Armazenamento de Chaves.

  3. Depois de criar o grupo dinâmico, navegue até (ou crie) uma política de IAM em um compartimento superior na hierarquia ao compartimento que contém vaults e segredos. Em seguida, adicione uma instrução de política deste formato:
    allow dynamic-group <dynamic-group> to use secret-family in compartment <vaults-and-secrets-compartment>

    em que <dynamic-group> é o nome do grupo dinâmico que você criou e <vaults-and-secrets-compartment> é o nome do compartimento no qual você criou seus vaults e segredos.

Etapa 3: Criar um Grupo Dinâmico e uma Instrução de Política do Exadata Infrastructure para o Armazenamento de Chaves

Para conceder aos seus recursos de infraestrutura do Exadata permissão para acessar o Armazenamento de Chaves, crie um grupo dinâmico de IAM que identifique esses recursos e, em seguida, crie uma política de IAM que conceda a esse grupo dinâmico acesso ao Armazenamento de Chaves criado.

Ao definir o grupo dinâmico, você identifica os recursos de infraestrutura do Exadata especificando o OCID do compartimento que contém a infraestrutura do Exadata.

  1. Copie o OCID do compartimento que contém o recurso de infraestrutura do Exadata.
    Você pode encontrar esse OCID na página Detalhes do Compartimento.
  2. Crie um grupo dinâmico seguindo as instruções em "Para criar um grupo dinâmico" na Documentação do Oracle Cloud Infrastructure. Ao seguir estas instruções, digite uma regra correspondente deste formato:
    ALL {resource.compartment.id ='<compartment-ocid>'}

    em que <compartment-ocid> é o OCID do compartimento que contém o recurso de infraestrutura do Exadata.

  3. Depois de criar o grupo dinâmico, navegue até (ou crie) uma política de IAM em um compartimento superior na hierarquia ao compartimento que contém o Armazenamento de Chaves. Em seguida, adicione uma instrução de política deste formato:
    Allow dynamic-group <dynamic-group> to use keystores in compartment <key-store-compartment>

    em que <dynamic-group> é o nome do grupo dinâmico que você criou e <key-store-compartment> é o nome do compartimento no qual você criou seu Armazenamento de Chaves.

Etapa 4: Criar uma instrução de política do Database Service para usar o segredo no OKV Vault Service

Para conceder ao serviço de Banco de Dados do Exadata permissão para usar o segredo no OKV Vault para fazer log-in na interface REST do OKV, navegue até (ou crie) uma política de IAM em um compartimento mais alto na sua hierarquia do que o compartimento que contém os Vaults e Segredos do OKV. Em seguida, adicione uma instrução de política deste formato:
allow service database to read secret-family in compartment <vaults-and-secrets-compartment>

em que <vaults-and-secrets-compartment> é o nome do compartimento no qual você criou seus Vaults e Segredos do OKV.

Depois que o OKV Vault estiver configurado e a configuração de IAM estiver em vigor, você agora está pronto para implantar o 'Armazenamento de Chaves' do Oracle Key Vault no OCI e associá-lo ao Cluster de VMs do Exadata Cloud@Customer.

Etapa 5: Criar Armazenamento de Chaves

Siga estas etapas para criar um Armazenamento de Chaves para estabelecer conexão com um appliance de chave de criptografia local, como o Oracle Key Vault (OKV).

  1. Abra o menu de navegação. Em Oracle Database, clique em Exadata Database Service on Cloud@Customer.
  2. Escolha seu Compartimento.
  3. Clique em Armazenamentos de Chaves.

    A página Armazenamentos de Chaves exibe a lista de nomes de armazenamentos de chaves, o número de bancos de dados associados a cada armazenamento de chaves e a data de criação de cada armazenamento de chaves.

  4. Clique em Criar Armazenamento de Chaves.
  5. Na caixa de diálogo Criar Armazenamento de Chaves, digite as seguintes informações gerais:
    • Nomear seu armazenamento de chaves: Uma descrição simples ou outras informações que ajudem a identificar facilmente o recurso do Armazenamento de Chaves. Evite digitar informações confidenciais.
    • Definições de Conexão do Oracle Key Vault
      • Endereços IP de conexão: Informe pelo menos um endereço IP de nó do cluster do OKV; vários endereços IP separados por vírgulas (do mesmo cluster do OKV) são possíveis, por exemplo, 193.10.20.1, 193.10.20.2.
      • Nome do usuário administrador: Informe o nome do usuário okv_rest_user.
      • Segredo da Senha de Administrador: A senha de administrador é armazenada com o serviço de gerenciamento de segredo no OCI. Selecione o Vault do OKV na tenancy que contém a senha okv_rest_user armazenada como Segredo.
    • Tags: Você tem a opção de aplicar tags. Se você tiver permissão para criar um recurso, também terá permissão para aplicar tags de formato livre a esse recurso. Para aplicar uma tag definida, você deverá ter permissão para usar o namespace de tag. Para obter mais informações sobre tags, consulte Tags de Recurso. Se você não tiver certeza se deverá aplicar tags, ignore essa opção (você poderá aplicar tags posteriormente) ou pergunte ao seu administrador. Evite digitar informações confidenciais.
  6. Clique em Criar.
  7. Certifique-se de usar as mesmas credenciais de usuário "okv_rest_user" ao provisionar o Autonomous Database.

    Para obter mais informações, consulte Gerenciando Vaults, Gerenciando Chaves e Gerenciando Segredos.

Gerenciando seu Armazenamento de Chaves

Exibir Detalhes do Armazenamento de Chaves

Siga estas etapas para exibir os detalhes do Armazenamento de Chaves que incluem os detalhes da conexão do Oracle Key Vault (OKV) e a lista de bancos de dados associados.

  1. Abra o menu de navegação. Em Oracle Database, clique em Exadata Database Service on Cloud@Customer.
  2. Escolha seu Compartimento.
  3. Clique em Armazenamentos de Chaves.

    A página Armazenamentos de Chaves exibe o nome da lista de Armazenamentos de Chaves, o número de bancos de dados associados a cada armazenamento de chaves e a data de criação de cada Armazenamento de Chaves.

  4. Clique no nome do Armazenamento de Chaves ou no ícone Ações ( três pontos) e clique em Exibir Detalhes.
  5. Clique no link no campo Segredo da Senha do Administrador para exibir os detalhes do segredo.

    A seção Bancos de Dados Associados exibe a lista de CDBs associados a esse Armazenamento de Chaves.

Editar Detalhes do Armazenamento de Chaves

Você só poderá editar um Armazenamento de Chaves se ele não estiver associado a nenhum CDB.

  1. Abra o menu de navegação. Em Oracle Database, clique em Exadata Database Service on Cloud@Customer.
  2. Escolha seu Compartimento.
  3. Clique em Armazenamentos de Chaves.
  4. Clique no nome do Armazenamento de Chaves ou no ícone Ações ( três pontos) e clique em Exibir Detalhes.
  5. Na página Detalhes do Armazenamento de Chaves, clique em Editar.
  6. Na página Editar Armazenamento de Chaves, faça alterações conforme necessário e clique em Salvar Alterações.

Mover um Armazenamento de Chaves para Outro Compartimento

Siga estas etapas para mover um Armazenamento de Chaves em um sistema Oracle Exadata Database Service on Cloud@Customer de um compartimento para outro.

  1. Abra o menu de navegação. Em Oracle Database, clique em Exadata Database Service on Cloud@Customer.
  2. Escolha seu Compartimento.
  3. Clique em Armazenamentos de Chaves.
  4. Clique no nome do Armazenamento de Chaves, clique em Ações e selecione Mover recurso.

    (ou)

    Clique no ícone Ações (três pontos) do armazenamento de chaves que você deseja mover e, em seguida, clique em Mover Recurso.

  5. Na página Mover Recurso para Outro Compartimento, selecione o novo compartimento.
  6. Clique em Mover Recurso.

Excluir um Armazenamento de Chaves

Você só poderá excluir um Armazenamento de Chaves se ele não estiver associado a nenhum CDB.

  1. Abra o menu de navegação. Em Oracle Database, clique em Exadata Database Service on Cloud@Customer.
  2. Escolha seu Compartimento.
  3. Clique em Armazenamentos de Chaves.
  4. Clique no nome do Armazenamento de Chaves, clique em Ações e selecione Excluir.

    (ou)

    Clique no ícone Ações (três pontos) para o armazenamento de chaves que você deseja excluir e clique em Excluir.

  5. Na caixa de diálogo Excluir Armazenamento de Chaves, clique em Excluir.

Exibir Detalhes do Banco de Dados Contêiner Associado ao Armazenamento de Chaves

Siga estas etapas para exibir detalhes do banco de dados contêiner associado a um Armazenamento de Chaves.

  1. Abra o menu de navegação. Em Oracle Database, clique em Exadata Database Service on Cloud@Customer.
  2. Escolha seu Compartimento.
  3. Clique em Armazenamentos de Chaves.
  4. Na página Armazenamentos de Chaves resultante, clique no nome do Armazenamento de Chaves ou no ícone Ações ( três pontos) e clique em Exibir Detalhes.
  5. Clique em Bancos de Dados Associados.
  6. Clique no nome do banco de dados associado ou no ícone Ações ( três pontos) e clique em Exibir Detalhes.

Usando a API para Gerenciar o Armazenamento de Chaves

Saiba como usar a API para gerenciar o armazenamento de chaves.

Para obter informações sobre como usar a API e assinar solicitações, consulte "APIs REST" e "Credenciais de Segurança". Para obter informações sobre SDKs, consulte "Kits de Desenvolvimento de Software e Interface de Linha de Comando".

A tabela a seguir lista os pontos finais da API REST para gerenciar o armazenamento de chaves.

Operação Ponto Final da API REST

Criar Armazenamento de Chaves do OKV

CreateKeyStore

Exibir Armazenamento de Chaves do OKV

GetKeyStore

Atualizar Armazenamento de Chaves do OKV

UpdateKeyStore

Excluir Armazenamento de Chaves do OKV

DeleteKeyStore

Alterar compartimento do Armazenamento de chaves

ChangeKeyStoreCompartment

Escolher entre criptografia gerenciada pelo cliente e gerenciada pela Oracle

CreateDatabase

Obter o Armazenamento de Chaves (gerenciado pelo OKV ou pela Oracle) e o nome da wallet do OKV

GetDatabase

Alterar tipo de armazenamento de chaves

changeKeyStoreType

Alternar chave gerenciada pelo OKV e pela Oracle

RotateVaultKey

Administrar Chaves de TDE (Transparent Data Encryption)

Use este procedimento para alterar a configuração do gerenciamento de chaves.

Depois de provisionar um banco de dados em um sistema ExaDB-C@C, você pode alterar o gerenciamento de chaves e executar operações, como rotacionar as chaves TDE.

Observação

  • Você pode alterar o gerenciamento de chaves do Oracle Wallet para outras opções disponíveis.
  • Quando você alterar o gerenciamento de chaves para OKV, o banco de dados experimentará uma operação de cancelamento de shutdown seguida por uma reinicialização. Planeje executar a migração em uma janela de manutenção planejada.
  • Você só deve rotacionar chaves de TDE por meio de interfaces do OCI (Console, API).
  • Não é possível rotacionar uma chave de criptografia:
    • quando uma restauração de banco de dados está em andamento em um determinado Oracle Home.
    • quando um patch de banco de dados ou um patch de home de banco de dados está em andamento.
  1. Abra o menu de navegação. Clique em Oracle Database e, em seguida, clique em Exadata Database Service on Cloud@Customer.
  2. Escolha seu compartimento na lista drop-down Compartimento.
  3. Navegue até o Cluster de VMs que contém o banco de dados no qual você deseja alterar o gerenciamento de criptografia ou alternar uma chave.
    1. Em Infraestrutura do Exadata Database Service on Cloud@Customer, clique em Clusters de VMs do Exadata.
    2. Na lista de clusters de VMs, localize o cluster de VMs que você deseja acessar e clique em seu nome destacado para exibir a página de detalhes do cluster
  4. Na seção Bancos de Dados, clique no nome do banco de dados para o qual você deseja alterar o gerenciamento de criptografia ou alternar uma chave para exibir a página de detalhes.
  5. Vá para a seção Criptografia na página de detalhes do banco de dados.
    • Para alterar o gerenciamento de chaves:

      Se você tiver configurado o Oracle Wallet como gerenciamento de chaves, o sistema exibirá a opção Alterar para alterar o gerenciamento de chaves para o Oracle Key Vault.

      1. Clique em Alterar.
      2. Selecione o gerenciamento de chaves como Oracle Key Vault.

        Você deve ter uma chave válida de criptografia no serviço Oracle Key Vault e fornecer as informações nas etapas subsequentes. Para obter mais informações, consulte Conceitos de Gerenciamento de Chaves e Segredos.

      3. Escolha uma região.
      4. Escolher um compartimento.

        Você pode alterar o compartimento clicando no link Alterar Compartimento.

      5. Clique em Salvar Alterações.
    • Para rotacionar uma chave da criptografia:

      Se você tiver configurado o Oracle Key Vault como gerenciamento de chaves, o sistema exibirá a opção Rotacionar para rotacionar a chave de criptografia.

      1. Clique em Girar.
      2. Na caixa de diálogo Rotate key resultante, clique em Rotate.
Observação

  • A migração de chaves de TDE para o Oracle Key Vault (OKV) requer 10 minutos de inatividade. Durante a migração, o estado do banco de dados será UPDATING e as conexões poderão falhar em decorrência de várias reinicializações do banco de dados para ativar o OKV. Os aplicativos podem retomar a operação após a conclusão da migração e quando o banco de dados retornar ao seu estado ACTIVE original.
  • A senha do armazenamento de chaves do OKV será definida como senha da wallet de TDE.

Cuidado:

Após alterar o gerenciamento de chaves, a exclusão da chave do OKV fará com que o banco de dados fique indisponível.

Na página de detalhes desse banco de dados, a seção Criptografia exibe o nome e o OCID da chave de criptografia.

Como Clonar Manualmente um Banco de Dados Plugável (PDB) de um CDB (Remote Container Database) Quando os Dados são Criptografados com a Chave de Criptografia Principal (MEK) no Oracle Key Vault (OKV)

A ferramenta dbaascli permite clonar PDBs quando o CDB de origem e o CDB de destino forem iguais (clone local) ou se forem diferentes (clone remoto). No entanto, você não poderá clonar um PDB remoto se os dados estiverem criptografados com uma MEK no OKV.

Observação

Para decriptografar/criptografar os dados durante um clone remoto, o banco de dados contêiner deve ter acesso à MEK. A MEK deve ser disponibilizada para o CDB de destino quando for armazenada no servidor OKV.

O CDB de Origem e o CDB de Destino estão Criptografados com MEK no Mesmo Servidor OKV

  1. Obtenha o ID do objeto do OKV do PDB de origem.
    1. Obtenha a chave de criptografia mais recente do PDB de origem usando o SQL*Plus.
      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env    
      [oracle@testserver oracle]$ sqlplus / as sysdba
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jun 12 23:13:12 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
      
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> set heading off;
      SQL> alter session set container=<SOURCE_PDB>;
       
      Session altered.
       
      SQL> select key_id,keystore_type,activation_time from v$encryption_keys order by activation_time;
       
      0648E5D8D5559B4F0EBFB8AA5EE730401A
      SOFTWARE KEYSTORE
      25-MAR-23 12.01.41.075932 AM +00:00
       
      06AFF5B6E27A954F6EBFFC77296B27C9EC
      SOFTWARE KEYSTORE
      25-MAR-23 11.42.51.336955 AM +00:00
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver oracle]$
    2. Obtenha o ID de objeto do OKV (uuid) da MEK mais recente obtida na etapa acima.

      Informe a senha do Ponto Final do OKV quando solicitado e pressione a tecla Enter no teclado.

      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env 
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil list | grep 06AFF5B6E27A954F6EBFFC77296B27C9EC
      E5344379-8B16-4FE9-BF35-F8ECB057571A    Symmetric Key    TDE Master Encryption Key: MKID 06AFF5B6E27A954F6EBFFC77296B27C9EC
      [oracle@testserver oracle]$
  2. Instale a wallet REST do OKV no banco de dados de origem.
    1. Crie o diretório okv_rest_cli se não existir.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
    2. Faça download e extraia okvrestclipackage.zip.

      Selecione ALL se for solicitada a substituição.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
      [oracle@scaqar06dv0101 okv_rest_cli]$ curl -O -k https://<source_okv_server_ip1>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. Modifique os arquivos okvrestcli.ini e okvrestcli_logging.properties da seguinte forma:
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<source_okv_server_ip1>
      user=<source_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<source_db_name>/okv_home/conf/okvclient.ora
       
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties  
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. Crie o diretório client_wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. Crie a wallet REST do OKV usando a interface de linha de comando REST do OKV.

      Informe a senha REST do OKV de origem quando solicitado.

      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet --wallet-user <source_okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  3. Crie uma nova wallet do OKV para armazenar somente a MEK do PDB obtida na etapa 1.
    1. Obtenha o nome da wallet do OKV no PDB de origem no formato EXA_DB_NAME_DBID_PDB_NAME_WL.

      Por exemplo, o nome da wallet seria EXA_NEWDB1_37508325141_PDB_NAME_WL.

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<source_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
      
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. Crie uma nova wallet usando a interface de linha de comando REST do OKV.
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet create --wallet <SOURCE_PDB_OKV_WALLET> --description "Wallet to clone <source_pdb_name> pdb from <source_db_name>" --unique FALSE
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING",
          "locatorID" : "BA5FBFE1-DB41-4425-8EE4-D58541A1E41A"
        }
      }
      [root@testserver oracle]#
    3. Verifique o status até que esteja ATIVO.
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING"
        }
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "ACTIVE",
          "wallet" : "<SOURCE_PDB_OKV_WALLET>"
        }
      }
      [root@testserver oracle]#
  4. Adicione permissões Leitura e Modificação e Gerenciar Wallet dos Pontos Finais do OKV do banco de dados de origem à wallet do OKV criada na etapa 3.
    1. Obtenha os nomes de Ponto Final do banco de dados de origem. Um por VM.

      Geralmente, a estrutura está no formato, EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Por exemplo, o nome do Ponto Final do nó 1 seria EXA_NEWDB1_UNIQ_3750832514_NEWDB11_EP.

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<source_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. Adicione as permissões Ler e Modificar e Gerenciar Wallet usando a interface de linha de comando REST do OKV.
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP1> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP2> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  5. Armazene a MEK do PDB de origem obtido na etapa 1 na wallet do OKV criada na etapa 3.
    1. Adicione a MEK (uuid obtida na etapa 1.b) usando a interface de linha de comando REST do OKV.

      Informe a senha do Ponto Final do OKV de origem quando solicitado.

      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv managed-object wallet add-member --uuid E5344379-8B16-4FE9-BF35-F8ECB057571A --wallet <SOURCE_PDB_OKV_WALLET>
      Password: 
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  6. Instale a wallet REST do OKV no banco de dados de destino.
    1. Crie o diretório okv_rest_cli se não existir.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
    2. Faça download e extraia okvrestclipackage.zip.

      Selecione ALL quando for solicitada a substituição.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
      [oracle@scaqar06dv0101 okv_rest_cli]$ curl -O -k https://<target_okv_server_ip1>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. Modifique os arquivos okvrestcli.ini e okvrestcli_logging.properties da seguinte forma:
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<target_okv_server_ip1>
      user=<target_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<target_db_name>/okv_home/conf/okvclient.ora
       
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. Crie o diretório client_wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. Crie a wallet REST do OKV usando a interface de linha de comando REST do OKV.

      Informe a senha REST do OKV de destino quando solicitado.

      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet --wallet-user <target_okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  7. Adicione permissões Somente Leitura e Gerenciar Wallet dos Pontos Finais do OKV do banco de dados de destino à wallet do OKV do PDB de origem criada na etapa 3.
    1. Obtenha os nomes de Ponto Final no banco de dados de destino. Um por VM.

      Geralmente, a estrutura está no formato, EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Por exemplo, o nome do Ponto Final do nó 1 seria EXA_NEWDB1_UNIQ_3750832514_NEWDB11_EP.

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<target_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. Adicione permissões Somente Leitura e Gerenciar Wallet usando a interface de linha de comando REST do OKV.
      [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <TARGET_OKV_EP1> --access RO_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <TARGET_OKV_EP2> --access RO_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  8. Clone o PDB.
    1. Execute dbaascli para clonar o PDB.

      Informe a senha do usuário DB SYS de origem quando solicitado.

      [root@testserver oracle]# dbaascli pdb remoteClone --pdbName <source_pdb_name> --dbName <target_db_name> --sourceDBConnectionString <source_db_connection_string> --targetPDBName <target_pdb_name>
      DBAAS CLI version 23.2.1.0.0
      Executing command pdb remoteClone --pdbName <source_pdb_name> --dbName <target_pdb_name> --sourceDBConnectionString scaqar06dvclu01-scan1.us.oracle.com:1521/<source_db_unique_name>.us.oracle.com --targetPDBName <target_pdb_name>
      Job id: 197f30e9-209e-4ec5-9700-a13f7915f8b9
      Session log: /var/opt/oracle/log/alyokv1/pdb/remoteClone/dbaastools_2023-06-12_10-32-17-PM_188384.log
      Enter REMOTE_DB_SYS_PASSWORD:
       
      Enter REMOTE_DB_SYS_PASSWORD (reconfirmation):
       
      Loading PILOT...
      Session ID of the current execution is: 6848
      Log file location: /var/opt/oracle/log/alyokv1/pdb/remoteClone/pilot_2023-06-12_10-32-35-PM_204184
      -----------------
      Running Plugin_initialization job
      Enter REMOTE_DB_SYS_PASSWORD
      ***************
      Completed Plugin_initialization job
      -----------------
      Running Validate_input_params job
      Completed Validate_input_params job
      -----------------
      Running Perform_dbca_prechecks job
      Completed Perform_dbca_prechecks job
      -----------------
      Running PDB_creation job
      Completed PDB_creation job
      -----------------
      Running Load_pdb_details job
      Completed Load_pdb_details job
      -----------------
      Running Configure_pdb_service job
      Completed Configure_pdb_service job
      -----------------
      Running Configure_tnsnames_ora job
      Completed Configure_tnsnames_ora job
      -----------------
      Running Set_pdb_admin_user_profile job
      Completed Set_pdb_admin_user_profile job
      -----------------
      Running Lock_pdb_admin_user job
      Completed Lock_pdb_admin_user job
      -----------------
      Running Register_ocids job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Prepare_blob_for_standby_in_primary job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Generate_dbsystem_details job
      Completed Generate_dbsystem_details job
      dbaascli execution completed
      [root@testserver oracle]#
  9. Exclua a wallet do OKV do PDB de origem criada na etapa 3 usando a interface de linha de comando REST do OKV.
    [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet delete --wallet  <SOURCE_PDB_OKV_WALLET>
    {
      "result" : "Success"
    }
    [root@testserver oracle]#
  10. Exclua a wallet REST do OKV criada na etapa 2.
    1. Exclua os arquivos da wallet no diretório dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#
  11. Exclua a wallet REST do OKV criada na etapa 6.
    1. Exclua os arquivos da wallet no diretório dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#

O CDB de Origem e o CDB de Destino são Criptografados com MEK em Outro Servidor OKV

  1. Obtenha o ID do objeto do OKV do PDB de origem.
    1. Obtenha a chave de criptografia mais recente do PDB de origem usando o SQL*Plus.
      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env    
      [oracle@testserver oracle]$ sqlplus / as sysdba
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jun 12 23:13:12 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> set heading off;
      SQL> alter session set container=<SOURCE_PDB>;
       
      Session altered.
       
      SQL> select key_id,keystore_type,activation_time from v$encryption_keys order by activation_time;
       
      0648E5D8D5559B4F0EBFB8AA5EE730401A
      SOFTWARE KEYSTORE
      25-MAR-23 12.01.41.075932 AM +00:00
       
      06AFF5B6E27A954F6EBFFC77296B27C9EC
      SOFTWARE KEYSTORE
      25-MAR-23 11.42.51.336955 AM +00:00
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver oracle]$
    2. Obtenha o ID de objeto do OKV (uuid) da MEK mais recente obtida na etapa acima.

      Informe a senha do Ponto Final do OKV quando solicitado e pressione a tecla Enter no teclado.

      [root@testserver oracle]# su oracle 
      [oracle@testserver oracle]$ source ~/<source_db_name>.env 
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil list | grep 06AFF5B6E27A954F6EBFFC77296B27C9EC
      E5344379-8B16-4FE9-BF35-F8ECB057571A    Symmetric Key    TDE Master Encryption Key: MKID 06AFF5B6E27A954F6EBFFC77296B27C9EC
      [oracle@testserver oracle]$
  2. Instale a wallet REST do OKV no banco de dados de origem.
    1. Crie o diretório okv_rest_cli se não existir.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
    2. Faça download e extraia okvrestclipackage.zip.

      Selecione ALL se for solicitada a substituição.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
      [oracle@scaqar06dv0101 okv_rest_cli]$ curl -O -k https://<source_okv_server_ip1>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. Modifique os arquivos okvrestcli.ini e okvrestcli_logging.properties da seguinte forma:
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<source_okv_server_ip1>
      user=<source_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<source_db_name>/okv_home/conf/okvclient.ora
       
      
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties  
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. Crie o diretório client_wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. Crie a wallet REST do OKV usando a interface de linha de comando REST do OKV.

      Informe a senha REST do OKV de origem quando solicitado.

      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet --wallet-user <source_okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  3. Crie uma nova wallet do OKV para armazenar somente a MEK do PDB obtida na etapa 1.
    1. Crie uma nova wallet usando a interface de linha de comando REST do OKV. Nome sugerido: EXA_DB_NAME_DBID_PDB_NAME_WL
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet create --wallet <SOURCE_PDB_OKV_WALLET> --description "Wallet to clone <source_pdb_name> pdb from <source_db_name>" --unique FALSE
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING",
          "locatorID" : "BA5FBFE1-DB41-4425-8EE4-D58541A1E41A"
        }
      }
      [root@testserver oracle]#
    2. Verifique o status até que esteja ATIVO.
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "PENDING"
        }
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet check-status --wallet <SOURCE_PDB_OKV_WALLET>
      {
        "result" : "Success",
        "value" : {
          "status" : "ACTIVE",
          "wallet" : "<SOURCE_PDB_OKV_WALLET>"
        }
      }
      [root@testserver oracle]#
  4. Adicione permissões Leitura e Modificação e Gerenciar Wallet dos Pontos Finais do OKV do banco de dados de origem à wallet do OKV criada na etapa 3.
    1. Obtenha os nomes de Ponto Final do banco de dados de origem. Um por VM.

      Geralmente, a estrutura está no formato, EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Por exemplo, o nome do Ponto Final do nó 1 seria EXA_NEWDB1_UNIQ_3750832514_NEWDB11_EP.

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<source_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    2. Adicione permissões Ler e Modificar e Gerenciar Wallet usando a interface de linha de comando REST do OKV.
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP1> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet add-access --wallet <SOURCE_PDB_OKV_WALLET> --endpoint <SOURCE_OKV_EP2> --access RM_MW
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  5. Armazene a MEK do PDB de origem obtido na etapa 1 na wallet do OKV criada na etapa 3.
    1. Adicione a MEK (uuid obtida na etapa 1.b) usando a interface de linha de comando REST do OKV.

      Informe a senha do Ponto Final do OKV de origem quando solicitado.

      [root@testserver oracle]# export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv managed-object wallet add-member --uuid E5344379-8B16-4FE9-BF35-F8ECB057571A --wallet <SOURCE_PDB_OKV_WALLET>
      Password: 
      {
        "result" : "Success"
      }
      [root@testserver oracle]#
  6. Faça download da wallet do OKV criada na etapa 3 do servidor OKV para o sistema de arquivos local.
    1. Crie um novo diretório com permissões para o usuário oracle.

      Esse diretório armazenará a wallet que conterá apenas a MEK do PDB de origem.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ mkdir /home/oracle/<source_pdb_wallet_dir>
      [oracle@testserver oracle]$
    2. Faça download da wallet do OKV criada na etapa 3 para o diretório criado na etapa 6.a usando okvutil.

      Ela solicitará duas vezes uma senha para criptografar a wallet local. Use a mesma senha que a senha do Ponto Final de origem. Além disso, informe a senha do Ponto Final de origem quando solicitado.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ source ~/nfsa.env
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil download -l /home/oracle/<source_pdb_wallet_dir> -t wallet -g <SOURCE_PDB_OKV_WALLET>
      Enter new wallet password (<enter> for auto-login): 
      Confirm new wallet password: 
      Enter Oracle Key Vault endpoint password: 
      Download succeeded
      [oracle@testserver oracle]$
    3. Compactar o diretório da wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /home/oracle
      [oracle@testserver oracle]$ zip -r <source_pdb_wallet_dir>.zip <source_pdb_wallet_dir>  
        adding: <source_pdb_wallet_dir>/ (stored 0%)
        adding: <source_pdb_wallet_dir>/ewallet.p12 (stored 0%)
      [oracle@testserver oracle]$
  7. Exclua a wallet do OKV do PDB de origem criada na etapa 3.
    [root@testserver oracle]#  export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/bin/okv manage-access wallet delete --wallet  <SOURCE_PDB_OKV_WALLET>
    {
      "result" : "Success"
    }
    [root@testserver oracle]#
  8. Exclua a wallet REST do OKV criada na etapa 1.
    1. Exclua os arquivos da wallet no diretório dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#
  9. Copie a wallet do PDB de origem baixada para o sistema de arquivos focal na etapa 6 para a VM do Cluster de destino.
  10. Exclua a wallet do PDB de origem do sistema de arquivos local de origem criado na etapa 6.
    1. Exclua o diretório da wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ rm -rf /home/oracle/<source_pdb_wallet_dir>
      [oracle@testserver oracle]$
    2. Exclua o arquivo zip da wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ rm -f /home/oracle/<source_pdb_wallet_dir>.zip
      [oracle@testserver oracle]$
  11. Instale a wallet REST do OKV no banco de dados de destino.
    1. Crie o diretório okv_rest_cli se não existir.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
    2. Faça download e extraia okvrestclipackage.zip.

      Selecione ALL quando for solicitada a substituição.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
      [oracle@testserver okv_rest_cli]$ curl -O -k https://<target_okv_server_ip>:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3784k  100 3784k    0     0  19.0M      0 --:--:-- --:--:-- --:--:-- 19.1M
      [oracle@testserver okv_rest_cli]$ unzip -q okvrestclipackage.zip
      [oracle@testserver okv_rest_cli]$
    3. Modifique os arquivos okvrestcli.ini e okvrestcli_logging.properties da seguinte forma:
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini
      [Default]
      server=<target_okv_server_ip1>
      user=<target_okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      log_property=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      okv_client_config=/u02/app/oracle/admin/<target_db_name>/okv_home/conf/okvclient.ora
       
      [oracle@testserver okv_rest_cli]$ vi /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties
      [oracle@testserver okv_rest_cli]$ cat /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli_logging.properties  
      handlers=java.util.logging.FileHandler
      java.util.logging.FileHandler.pattern=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/logs/okvrest.log
      java.util.logging.FileHandler.limit=200000
      java.util.logging.FileHandler.count=1
      java.util.logging.FileHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      java.util.logging.ConsoleHandler.level=FINER
      java.util.logging.ConsoleHandler.formatter=com.oracle.okv.rest.log.OkvFormatter
      [oracle@testserver okv_rest_cli]$
    4. Crie o diretório client_wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet
      [oracle@testserver okv_rest_cli]$
    5. Crie a wallet REST do OKV usando a interface de linha de comando REST do OKV.

      Informe a senha REST do OKV de destino quando solicitado.

      [root@testserver oracle]# su oracle
      [oracle@testserver okv_rest_cli]$ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet --wallet-user <target_okv_rest_user>
      /var/opt/oracle/dbaas_acfs/newdb1/okv_rest_cli/logs/okvrest.log.lck
      Password:
      {
        "result" : "Success"
      }
      [oracle@testserver okv_rest_cli]$ ls -ltr /var/opt/oracle/dbaas_acfs/newdb1/okv_rest_cli/client_wallet
      total 8
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 ewallet.p12.lck
      -rw------- 1 oracle oinstall    0 Jun 16 01:29 cwallet.sso.lck
      -rw------- 1 oracle oinstall  976 Jun 16 01:29 ewallet.p12
      -rw------- 1 oracle oinstall 1021 Jun 16 01:29 cwallet.sso
      [oracle@testserver okv_rest_cli]$
  12. Faça upload da wallet do PDB de origem criada na etapa 6 e copiada para a VM do Cluster de destino na etapa 9.
    1. Descompacte a wallet do PDB de origem.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ cd /home/oracle/
      [oracle@testserver ~]$ unzip <source_pdb_wallet_dir>.zip 
      Archive:  nfsa_1672104454_NFSPDB_wallet.zip
         creating: <source_pdb_wallet_dir>/
       extracting: <source_pdb_wallet_dir>/ewallet.p12  
      [oracle@testserver ~]$
    2. Obtenha o nome da wallet do OKV no banco de dados de destino no formato EXA_DB_NAME_DBID_WL.

      Por exemplo, o nome da wallet seria EXA_NEWDB1_37508325141_WL.

      [root@testserver newdb1]# su oracle
      [oracle@testserver newdb1]$ source ~/<target_db_name>.env
      [oracle@testserver newdb1]$ sqlplus / as sysdba 
       
      SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jun 20 21:26:54 2023
      Version 19.19.0.0.0
       
      Copyright (c) 1982, 2022, Oracle.  All rights reserved.
       
      Connected to:
      Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
       
      SQL> select name,db_unique_name,dbid from v$database; 
       
      NAME      DB_UNIQUE_NAME               DBID
      --------- ------------------------------ ----------
      NEWDB1      newdb1_uniq             3750832514
       
      SQL> select value from v$parameter where name='instance_name';
       
      VALUE
      --------------------------------------------------------------------------------
      newdb11
       
      SQL> exit
      Disconnected from Oracle Database 19c EE Extreme Perf Release 19.0.0.0.0 - Production
      Version 19.19.0.0.0
      [oracle@testserver newdb1]$
    3. Faça upload da wallet do PDB de origem para a wallet do OKV de destino usando okvutil.

      Informe a senha da wallet do PDB de origem quando solicitado. Use a mesma senha que a senha do Ponto Final de origem.

      Além disso, informe a senha do Ponto Final de destino quando solicitado.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ source ~/<target_db_name>.env
      [oracle@testserver oracle]$ $OKV_HOME/bin/okvutil upload -t WALLET -l /home/oracle/<source_pdb_wallet_dir> -g <TARGET_OKV_WALLET>
      Enter source wallet password: 
      Enter Oracle Key Vault endpoint password: 
      WARNING: Object ORACLE.SECURITY.ID.ENCRYPTION. already exists; use -o to overwrite
      Upload succeeded
      [oracle@testserver oracle]$
  13. Clone o PDB.
    1. Execute dbaascli para clonar o PDB.
      [root@testserver oracle]# dbaascli pdb remoteClone --pdbName <source_pdb_name> --dbName <target_db_name> --sourceDBConnectionString <source_db_connection_string> --targetPDBName <target_pdb_name> 
      DBAAS CLI version 23.2.1.0.0
      Executing command pdb remoteClone --pdbName <source_pdb_name> --dbName <target_db_name> --sourceDBConnectionString scaqar06dvclu01-scan1.us.oracle.com:1521/<source_db_unique_name>.us.oracle.com --targetPDBName <target_pdb_name>
      Job id: 7d4f638a-1f3a-4219-a05a-0215588dcae8
      Session log: /var/opt/oracle/log/alyokv1/pdb/remoteClone/dbaastools_2023-06-13_01-29-09-AM_179996.log
      Enter REMOTE_DB_SYS_PASSWORD:
       
      Enter REMOTE_DB_SYS_PASSWORD (reconfirmation):
       
      Loading PILOT...
      Session ID of the current execution is: 6857
      Log file location: /var/opt/oracle/log/alyokv1/pdb/remoteClone/pilot_2023-06-13_01-29-21-AM_196991
      -----------------
      Running Plugin_initialization job
      Enter REMOTE_DB_SYS_PASSWORD
      *************
      Completed Plugin_initialization job
      -----------------
      Running Validate_input_params job
      Completed Validate_input_params job
      -----------------
      Running Perform_dbca_prechecks job
      Completed Perform_dbca_prechecks job
      -----------------
      Running PDB_creation job
      Completed PDB_creation job
      -----------------
      Running Load_pdb_details job
      Completed Load_pdb_details job
      -----------------
      Running Configure_pdb_service job
      Completed Configure_pdb_service job
      -----------------
      Running Configure_tnsnames_ora job
      Completed Configure_tnsnames_ora job
      -----------------
      Running Set_pdb_admin_user_profile job
      Completed Set_pdb_admin_user_profile job
      -----------------
      Running Lock_pdb_admin_user job
      Completed Lock_pdb_admin_user job
      -----------------
      Running Register_ocids job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Prepare_blob_for_standby_in_primary job
      Skipping. Job is detected as not applicable.
      -----------------
      Running Generate_dbsystem_details job
      Completed Generate_dbsystem_details job
      dbaascli execution completed
      [root@testserver oracle]#
  14. Exclua a wallet REST do OKV criada na etapa 1.
    1. Exclua os arquivos da wallet no diretório dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#

Como Fazer Upgrade do Home do OKV (Oracle Key Vault) em ExaDB-C@C

Depois que o tipo de criptografia for migrado das Chaves Gerenciadas pela Oracle para Chaves Gerenciadas pelo Cliente (Oracle Key Vault), o home do OKV em DomUs permanecerá com a mesma versão usada para a migração.

Caso o Servidor OKV seja atualizado, a funcionalidade continuará funcionando devido à compatibilidade com versões anteriores. No entanto, talvez o cliente queira obter os novos recursos das ferramentas do cliente. Nesse caso, faça upgrade do home do OKV e da Biblioteca PKCS#11.

  1. Validar se a versão atual do Home do OKV é secundária à versão do Servidor OKV.
    1. Obtenha a versão do Home do OKV executando okvutil. Nesse caso, o valor é 21.6.0.0.0.
      # su oracle
      $ /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/okvutil
      okvutil version 21.6.0.0.0
      Usage: okvutil <command> [-v <verbosity>] [<command args>]
        <command> := list | upload | download | sign | sign-verify | changepwd | diagnostics
      Options:
        -v, --verbose <verbosity>
          Print extra information to standard out.
          Possible verbosity values are 0, 1 and 2 (more detailed information with higher verbosity level).
      For help on a particular command, use [okvutil <command> -h].
      You have new mail in /var/spool/mail/root
    2. Obtenha a versão do OKV Server fazendo log-in na console do OKV Server por meio do browser. Nesse caso, a Versão é 21.7.0.0.0.
  2. Instale a wallet REST do OKV no banco de dados de origem. Esta etapa deve ser feita em apenas um nó.
    1. Se não existir, crie o diretório okv_rest_cli.
      # su oracle
      $ mkdir /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli
    2. Faça download e extraia okvrestclipackage.zip. Se for solicitada uma substituição, selecione ALL.
      $ cd /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli
      $ curl -O -k https://100.75.59.249:5695/okvrestclipackage.zip
        % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                       Dload  Upload   Total   Spent    Left  Speed
      100 3865k  100 3865k    0     0  5102k      0 --:--:-- --:--:-- --:--:-- 5106k
      $ unzip -q okvrestclipackage.zip
    3. Modifique okvrestcli.ini com as próximas informações.
      $ vi /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini
       
      $ cat !$
      cat /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini
      #Provide absolute path for log_property, okv_client_config properties
      [Default]
      #log_property=./conf/okvrestcli_logging.properties
      #server=[OKV IP Address]
      #okv_client_config=./conf/okvclient.ora
      #user=[OKV username]
      #password=[user password]
        
      #[Profile1]
      #server=
      #okv_client_config=
      #user=
        
      #[Profile2]
      #server=
      #okv_client_config=
      #user=
        
      server=<okv_server_ip>
      user=<okv_rest_user>
      client_wallet=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/client_wallet
    4. Crie o diretório client_wallet.
      $ mkdir /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/client_wallet
    5. Criar Wallet REST do OKV usando a CLI REST do OKV. Ele solicitará a senha REST do OKV de origem.
      $ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/bin/okv admin client-wallet add --client-wallet /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/client_wallet --wallet-user <okv_rest_user>
      Password:
      {
        "result" : "Success"
      }
  3. Prepare os diretórios Home do OKV em DomU 1.
    1. Renomeie o diretório Home do OKV como a versão atual do Home do OKV.
      $ mv /u02/app/oracle/admin/<dbname>/okv_home/okv /u02/app/oracle/admin/<dbname>/okv_home/okv<current_okv_home_version>
    2. Crie um novo diretório Home do OKV como a versão do OKV Server.
      $ mkdir /u02/app/oracle/admin/<dbname>/okv_home/okv<okv_server_version>
    3. Crie um symlink do nome do Home do OKV regular para o diretório criado na etapa 3.b.
      $ ln -s /u02/app/oracle/admin/<dbname>/okv_home/okv<okv_server_version> /u02/app/oracle/admin/<dbname>/okv_home/okv
  4. Atualize o Home do OKV em DomU 1.
    1. Obtenha o nome do Ponto Final do OKV via okvutil. Ele solicitará a Senha do Ponto Final do OKV (Senha TDE). A entrada é a chamada "Modelo".

      Observe que o nome do host deve ser igual ao nome do host DomU atual. (Geralmente, esse nome é EXA_<DBNAME>_<resourceID>_<CURRENT_DOMU_HOST_NAME>_EP. <resourceID> pode ser obtido listando o banco de dados por meio do sistema dbaascli getDatabases).

      $ /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/okvutil list
      Enter Oracle Key Vault endpoint password:
      Unique ID                               Type            Identifier
      DC690343-5694-4FC8-BFE4-6C7F1A550F67    Opaque Object   TDE Wallet Metadata
      9E317DDB-0542-553B-A47D-FCC31AB6DD7C    Symmetric Key   TDE Master Encryption Key: MKID AaTAGyAWyk/fv7pnl8qx4s0AAAAAAAAAAA
      D9D840AF-A60E-5850-AA86-8C9F216F5501    Symmetric Key   TDE Master Encryption Key: MKID AUP0Tq+un08Mv1+onNhT4RUAAAAAAAAAAA
      364EFC2F-1909-4F34-BF1B-90D3D03DA7EB    Private Key Private Key
      A9D0134F-C895-4F33-BF85-351B754E9FF9    Opaque Object   TDE Wallet Metadata
      E1AC8D2F-90E9-4F88-BFEE-2883FCBB7271    Opaque Object   TDE Wallet Metadata
      25B7DE14-3849-4F67-BFBE-1934BFE3559B    Opaque Object   TDE Wallet Metadata
      4ED713ED-FE2B-4F35-BF7D-BCBEA8327A0B    Symmetric Key   TDE Master Encryption Key: MKID 06EA813441C26B4F53BFD58E55C4BE90F4
      6162E200-EF0A-4F89-BF25-A8596B3AD7B0    Opaque Object   Certificate Request
      85A55486-28E5-4FFB-BF1C-B93C4C0BAD74    Secret Data Oracle Secret Data: ID HSM_PASSWORD
      67E74D97-56F6-407A-A035-009D953F907A    Template    Default template for EXA_DB1902_7274B2A2-6F71-4516-B2BB-6D67CC3824FC_SCAQAE08DV0308_EP
      E621EA72-5DD1-4F4F-BFD4-451E5B7DB8A9    Symmetric Key   TDE Master Encryption Key: MKID 0625BA455B03CD4F57BFA5D2290FD379A1
    2. Inscreva novamente o Ponto Final em DomU 1.
      $ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/bin/okv admin endpoint re-enroll --endpoint <endpoint_name>
      {
        "result" : "Success"
      }
    3. Ponto Final de Provisão em DomU 1. Ele solicitará uma senha de Ponto Final (senha de TDE) do OKV.
      $ export JAVA_HOME=/usr/java/latest; export OKV_RESTCLI_CONFIG=/var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/conf/okvrestcli.ini; /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/bin/okv admin endpoint provision --endpoint <endpoint_name> --location /u02/app/oracle/admin/<dbname>/okv_home/okv --auto-login FALSE
      Enter Oracle Key Vault endpoint password:
      {
        "result" : "Success"
      }
  5. Validar se o Upgrade do Home do OKV foi concluído com sucesso.
    1. Valide as listas de Pontos Finais do OKV na Wallet do OKV. Ele solicitará uma senha de Ponto Final (senha de TDE) do OKV.
      $ /u02/app/oracle/admin/db1902/okv_home/okv/bin/okvutil list
      Enter Oracle Key Vault endpoint password:
      Unique ID                               Type            Identifier
      DC690343-5694-4FC8-BFE4-6C7F1A550F67    Opaque Object   TDE Wallet Metadata
      9E317DDB-0542-553B-A47D-FCC31AB6DD7C    Symmetric Key   TDE Master Encryption Key: MKID AaTAGyAWyk/fv7pnl8qx4s0AAAAAAAAAAA
      D9D840AF-A60E-5850-AA86-8C9F216F5501    Symmetric Key   TDE Master Encryption Key: MKID AUP0Tq+un08Mv1+onNhT4RUAAAAAAAAAAA
      364EFC2F-1909-4F34-BF1B-90D3D03DA7EB    Private Key Private Key
      A9D0134F-C895-4F33-BF85-351B754E9FF9    Opaque Object   TDE Wallet Metadata
      E1AC8D2F-90E9-4F88-BFEE-2883FCBB7271    Opaque Object   TDE Wallet Metadata
      25B7DE14-3849-4F67-BFBE-1934BFE3559B    Opaque Object   TDE Wallet Metadata
      4ED713ED-FE2B-4F35-BF7D-BCBEA8327A0B    Symmetric Key   TDE Master Encryption Key: MKID 06EA813441C26B4F53BFD58E55C4BE90F4
      6162E200-EF0A-4F89-BF25-A8596B3AD7B0    Opaque Object   Certificate Request
      85A55486-28E5-4FFB-BF1C-B93C4C0BAD74    Secret Data Oracle Secret Data: ID HSM_PASSWORD
      67E74D97-56F6-407A-A035-009D953F907A    Template    Default template for EXA_DB1902_7274B2A2-6F71-4516-B2BB-6D67CC3824FC_SCAQAE08DV0308_EP
      E621EA72-5DD1-4F4F-BFD4-451E5B7DB8A9    Symmetric Key   TDE Master Encryption Key: MKID 0625BA455B03CD4F57BFA5D2290FD379A1
      You have new mail in /var/spool/mail/root
    2. Obtenha a versão do Home do OKV executando okvutil. A versão deve ser igual à versão do OKV Server. Nesse caso, o valor deve ser 21.7.0.0.0.
      # su oracle
       
      $ /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/okvutil
      okvutil version 21.7.0.0.0
      Usage: okvutil <command> [-v <verbosity>] [<command args>]
        <command> := list | upload | download | sign | sign-verify | changepwd | diagnostics
      Options:
        -v, --verbose <verbosity>
          Print extra information to standard out.
          Possible verbosity values are 0, 1 and 2 (more detailed information with higher verbosity level).
      For help on a particular command, use [okvutil <command> -h].
      You have new mail in /var/spool/mail/root
  6. Repita as Etapas de 3 a 5 no restante do DomUs.
  7. Repita as etapas 1 a 6 para qualquer outro banco de dados que precise fazer upgrade do Home do OKV.
  8. Interrompa as instâncias DomU 1 de todos os Bancos de Dados com TDE baseada em OKV. Isso pode ser feito por meio da Console, do comando srvctl ou do SQL* Plus.
  9. Execute root.sh no Home do OKV selecionado. Normalmente deve ser aquele com a versão mais recente do OKV. Ele solicitará a substituição da Biblioteca PKCS11, YES deverá ser selecionado.
    # /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/root.sh
  10. Inicie as instâncias DomU 1 de todos os bancos de dados com TDE baseada em OKV. Isso pode ser feito por meio da Console, do comando srvctl ou do SQL* Plus.
  11. Repita as Etapas de 8 a 10 no restante do DomUs.