Gestione delle chiavi di cifratura su dispositivi esterni

Scopri come memorizzare e gestire le chiavi di cifratura del database.

Sono disponibili due opzioni per memorizzare e gestire le chiavi di cifratura del database per i database in Oracle Exadata Database Service on Dedicated Infrastructure:

  1. In un file wallet di login automatico memorizzato in un file system Oracle Advanced Cluster File System (Oracle ACFS) accessibile dal sistema operativo VM del cliente.
  2. Oracle Key Vault.

Chiavi gestite dal cliente in Oracle Exadata Database Service on Dedicated Infrastructure

Le chiavi gestite dal cliente per Oracle Exadata Database Service on Dedicated Infrastructure sono una funzione che consente di eseguire la migrazione della chiave di cifratura principale TDE di Oracle Database per un Oracle Database dal file wallet protetto da password memorizzato nell'apparecchiatura di Oracle Exadata Database Service on Dedicated Infrastructure a un server OKV controllato dall'utente.

Oracle Key Vault (OKV) fornisce la gestione delle chiavi e dei segreti con tolleranza degli errori, alta disponibilità e scalabilità per i database ExaDB-D cifrati. Utilizza le chiavi gestite dal cliente quando hai bisogno di governance della sicurezza, compliance normativa e crittografia omogenea dei dati, gestendo, memorizzando e monitorando centralmente il ciclo di vita delle chiavi che utilizzi per proteggere i tuoi dati.

È possibile effettuare le seguenti operazioni.

  • Passa dalle chiavi gestite da Oracle alle chiavi gestite dal cliente per i database, indipendentemente dal fatto che siano abilitate o meno con Data Guard.
  • Ruotare le chiavi per mantenere la conformità alla sicurezza.
  • È supportata anche la rotazione della chiave PDB. Le operazioni Ruota CDB e Chiave PDB sono consentite solo se il database è gestito dal cliente.

Requisiti

Informazioni su Oracle Key Vault

Oracle Key Vault è un'appliance software full-stack e con protezione avanzata creata per centralizzare la gestione delle chiavi e degli oggetti di sicurezza all'interno dell'azienda.

Nota

Oracle Key Vault è un sistema gestito e con provisioning eseguito dai clienti e non fa parte dei servizi gestiti di Oracle Cloud Infrastructure.

Panoramica del keystore

Integra Oracle Key Vault (OKV) on-premise con i servizi cloud di database gestiti dal cliente per proteggere i dati critici su ExaDB-D.

L'integrazione di Oracle Key Vault consente di assumere il controllo completo delle chiavi di cifratura e di memorizzarle in modo sicuro su un dispositivo di gestione delle chiavi esterno e centralizzato.

OKV è ottimizzato per i wallet Oracle, i keystore Java e le chiavi principali TDE (Transparent Data Encryption) di Oracle Advanced Security. Oracle Key Vault supporta lo standard KMIP OASIS. L'appliance software full-stack e con protezione avanzata utilizza la tecnologia Oracle Linux e Oracle Database per garantire sicurezza, disponibilità e scalabilità e può essere distribuita su un hardware compatibile a scelta.

OKV fornisce inoltre un'interfaccia REST per i client per l'iscrizione automatica degli endpoint e l'impostazione di wallet e chiavi. Oracle Exadata Database Service on Dedicated Infrastructure memorizza temporaneamente la password dell'amministratore utente REST OKV necessaria per connettersi all'appliance OKV in un file wallet protetto da password in modo che il software in esecuzione nella VM del cliente possa connettersi al server OKV. Dopo la migrazione delle chiavi TDE in OKV, il software di automazione del cloud rimuoverà la password dal file wallet. Assicurarsi di creare un segreto con il servizio Vault di Oracle, in cui verrà memorizzata la password necessaria per consentire ai database autonomi di connettersi a OKV per la gestione delle chiavi.

Per ulteriori informazioni, vedere Oracle Key Vault.

Criteri IAM necessari per la gestione di OKV su Oracle Exadata Database Service on Dedicated Infrastructure

Esaminare il criterio di gestione dell'accesso alle identità (IAM) per gestire OKV sui sistemi Oracle Exadata Database Service on Dedicated Infrastructure.

Un criterio è un documento IAM che specifica chi dispone del tipo di accesso alle risorse. Viene utilizzato in diversi modi: per singola istruzione scritta nel linguaggio dei criteri, per raccolta di istruzioni in un singolo documento denominato "criterio" (a cui è assegnato un ID Oracle Cloud (OCID) e per indicare il corpo complessivo dei criteri utilizzati dall'organizzazione per controllare l'accesso alle risorse.

Per compartimento si intende una raccolta di risorse correlate alle quali possono accedere solo determinati gruppi autorizzati da un amministratore dell'organizzazione.

Per utilizzare Oracle Cloud Infrastructure, devi ricevere il tipo di accesso richiesto in un criterio scritto da un amministratore, sia che tu stia utilizzando la console, sia che tu stia utilizzando l'API REST con un kit di sviluppo software (SDK), un'interfaccia della riga di comando (CLI) o qualche altro strumento. Se si tenta di eseguire un'azione e si riceve un messaggio che informa che non si dispone dell'autorizzazione o che non si è autorizzati, confermare con l'amministratore il tipo di accesso concesso e il compartimento in cui si dovrebbe lavorare.

Per gli amministratori: il criterio in Consenti agli amministratori del database di gestire i sistemi DB consente al gruppo specificato di eseguire qualsiasi operazione con i database e le risorse di database correlate.

Se non si ha familiarità con i criteri, vedere Introduzione ai criteri e Criteri comuni. Se si desidera approfondire la scrittura dei criteri per i database, vedere Dettagli per il servizio di database.

Applicazione di tag alle risorse

Puoi applicare tag alle tue risorse per aiutarti a organizzarle in base alle tue esigenze aziendali.

È possibile applicare le tag al momento della creazione di una risorsa oppure aggiornare la risorsa in un secondo momento con le tag desiderate. Per informazioni generali sull'applicazione delle tag, vedere Tag risorsa.

Spostamento delle risorse in un altro compartimento

È possibile spostare le risorse del vault, del segreto e del keystore OKV da un compartimento all'altro.

Dopo aver spostato una risorsa OCI in un nuovo compartimento, i criteri intrinseci vengono applicati immediatamente e influiscono sull'accesso alla risorsa. Lo spostamento di una risorsa del vault OKV non influisce sull'accesso a chiavi del vault OKV o a segreti del vault OKV contenuti nel vault. È possibile spostare una chiave OCI o un segreto OCI da un compartimento a un altro indipendentemente dallo spostamento del vault OKV a cui è associato. Per ulteriori informazioni, vedere Gestione dei compartimenti.

Impostazione di Oracle Exadata Database Service on Dedicated Infrastructure per l'utilizzo di Oracle Key Vault

Rivedere i prerequisiti per impostare Oracle Exadata Database Service on Dedicated Infrastructure in modo che funzioni con Oracle Key Vault.

Requisiti indispensabili

  1. Assicurarsi che OKV sia impostato e che la rete sia accessibile dalla rete client Exadata. Aprire le porte 443, 5695 e 5696 per i dati in uscita sulla rete client per il software client OKV e l'istanza di database Oracle per accedere al server OKV.
  2. Assicurarsi che l'interfaccia REST sia abilitata dall'interfaccia utente OKV.
  3. Crea l'utente "Amministratore REST OKV".

    È possibile utilizzare qualsiasi nome utente qualificato di propria scelta, ad esempio "okv_rest_user". Per ADB-C@C, ExaDB-C@C e ExaDB-D utilizzare gli stessi utenti REST o diversi. Tali database possono essere gestiti mediante chiavi negli stessi cluster OKV on premise o in altri cluster. ExaDB-C@C e ExaDB-D richiedono un utente REST con il privilegio di creazione dell'endpoint. ADB-C@C richiede un utente REST con privilegi create endpoint e create endpoint group.

  4. Raccogliere le credenziali e l'indirizzo IP dell'amministratore OKV, necessario per connettersi a OKV.

Per ulteriori informazioni, vedere: "Requisiti delle porte di rete", "Gestione degli utenti di Oracle Key Vault" e "Gestione dei ruoli amministrativi e dei privilegi utente".

Passo 1: creare un vault nel servizio vault OKV e aggiungere un segreto al vault per memorizzare la password dell'amministratore REST OKV

L'infrastruttura Exadata Cloud comunica con OKV su REST ogni volta che viene eseguito il provisioning di un Oracle Database per registrare Oracle Database e richiedere un wallet su OKV. Pertanto, l'infrastruttura Exadata deve accedere alle credenziali di amministratore REST per eseguire la registrazione con il server OKV.

Queste credenziali vengono memorizzate in modo sicuro nel servizio Oracle Vault in OCI sotto forma di segreto e vi si accede dall'infrastruttura dell'infrastruttura Exadata Cloud solo quando necessario. Se necessario, le credenziali vengono memorizzate in un file wallet protetto da password.

Per memorizzare la password dell'amministratore OKV nel servizio OKV Vault, creare un vault attenendosi alle istruzioni descritte in Gestione dei vault e creare un segreto in tale vault seguendo le istruzioni descritte in Gestione dei segreti.

Passo 2: creare un gruppo dinamico e un'istruzione dei criteri per consentire al keystore di accedere al segreto nel vault OCI

Per concedere alle risorse del keystore l'autorizzazione per accedere al segreto nel vault OCI, creare un gruppo dinamico IAM che identifichi queste risorse, quindi creare un criterio IAM che conceda a questo gruppo dinamico l'accesso al segreto creato nei vault e nei segreti OCI.

Quando si definisce il gruppo dinamico, è possibile identificare le risorse del keystore specificando l'OCID del compartimento contenente il keystore.

  1. Copiare l'OCID del compartimento contenente la risorsa del keystore.

    Puoi trovare questo OCID nella pagina Dettagli del compartimento del compartimento.

  2. Creare un gruppo dinamico seguendo le istruzioni riportate in "Per creare un gruppo dinamico" nella documentazione di Oracle Cloud Infrastructure. Quando si seguono queste istruzioni, immettere una regola di corrispondenza in questo formato:
    ALL {resource.compartment.id ='<compartment-ocid>'}

    dove <compartment-ocid> è l'OCID del compartimento contenente la risorsa del keystore.

  3. Dopo aver creato il gruppo dinamico, passare a (o creare) un criterio IAM in un compartimento più in alto nella gerarchia del compartimento rispetto al compartimento contenente i vault e i segreti. Aggiungere quindi un'istruzione criterio di questo formato:
    allow dynamic-group <dynamic-group> to use secret-family in compartment <vaults-and-secrets-compartment>

    dove <dynamic-group> è il nome del gruppo dinamico creato e <vaults-and-secrets-compartment> è il nome del compartimento in cui sono stati creati i vault e i segreti.

Passo 3: creare un gruppo dinamico e un'istruzione dei criteri per l'infrastruttura Exadata nel keystore

Per concedere alle risorse dell'infrastruttura Exadata Cloud l'autorizzazione per accedere al keystore, creare un gruppo dinamico IAM che identifichi queste risorse, quindi creare un criterio IAM che conceda a questo gruppo dinamico l'accesso al keystore creato.

Quando si definisce il gruppo dinamico, si identificano le risorse dell'infrastruttura Exadata Cloud specificando l'OCID del compartimento contenente l'infrastruttura Exadata.

  1. Copiare l'OCID del compartimento contenente la risorsa dell'infrastruttura Exadata Cloud.

    Puoi trovare questo OCID nella pagina Dettagli del compartimento del compartimento.

  2. Creare un gruppo dinamico seguendo le istruzioni riportate in "Per creare un gruppo dinamico" nella documentazione di Oracle Cloud Infrastructure. Quando si seguono queste istruzioni, immettere una regola di corrispondenza in questo formato:
    ALL {resource.compartment.id ='<compartment-ocid>'}

    dove <compartment-ocid> è l'OCID del compartimento contenente la risorsa dell'infrastruttura Exadata.

  3. Dopo aver creato il gruppo dinamico, passare a (o creare) un criterio IAM in un compartimento più in alto nella gerarchia del compartimento rispetto al compartimento contenente il keystore. Aggiungere quindi un'istruzione criterio di questo formato:
    Allow dynamic-group <dynamic-group> to use keystores in compartment <key-store-compartment>

    dove <dynamic-group> è il nome del gruppo dinamico creato e <key-store-compartment> è il nome del compartimento in cui è stato creato il keystore.

Passo 4: creare un'istruzione dei criteri per consentire al servizio di database di utilizzare il segreto dal servizio Vault OCI

Per concedere al servizio di database Exadata l'autorizzazione a utilizzare il segreto in OCI Vault per eseguire il login all'interfaccia REST OKV, andare a (o creare) un criterio IAM in un compartimento più in alto nella gerarchia del compartimento rispetto al compartimento contenente i vault e i segreti OCI.

Aggiungere quindi un'istruzione criterio di questo formato:

allow service database to read secret-family in compartment <vaults-and-secrets-compartment>

dove <vaults-and-secrets-compartment> è il nome del compartimento in cui sono stati creati i vault e i segreti OCI.

Una volta impostato il vault OKV e impostata la configurazione IAM, ora è possibile distribuire il 'Key Store' di Oracle Key Vault in OCI e associarlo al cluster VM Exadata.

Passo 5: Crea keystore

Attenersi alla procedura riportata di seguito per creare un keystore per connettersi a un'appliance di chiavi di cifratura in locale, ad esempio Oracle Key Vault (OKV).

  1. Aprire il menu di navigazione. In Oracle Database, fare clic su Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Selezionare il compartimento.
  3. Fare clic su Negozi chiave.

    La pagina Keystore visualizza la lista dei nomi dei keystore, il numero di database associati a ciascun database e la data di creazione di ogni keystore.

  4. Fare clic su Crea keystore.
  5. Nella finestra di dialogo Crea keystore risultante, immettere le seguenti informazioni generali:
    • Nome del keystore: descrizione intuitiva o altre informazioni che consentono di identificare facilmente la risorsa del keystore. Evitare di fornire informazioni riservate.
    • Impostazioni di connessione di Oracle Key Vault
      • Indirizzi IP di connessione: immettere almeno un indirizzo IP del nodo del cluster OKV; è possibile specificare più indirizzi IP separati da virgole (dello stesso cluster OKV), ad esempio 193.10.20.1, 193.10.20.2.
      • Nome utente amministratore: immettere il nome utente del okv_rest_user.
      • Segreto password amministratore: la password dell'amministratore viene memorizzata con il servizio di gestione dei segreti all'interno di OCI. Selezionare il vault OCI nella tenancy che contiene la password okv_rest_user memorizzata come segreto OCI.
    • Tag: facoltativamente, è possibile applicare le tag. Se si dispone dell'autorizzazione per creare una risorsa, si dispone anche dell'autorizzazione per applicare tag in formato libero a tale risorsa. Per applicare una tag definita, è necessario disporre dell'autorizzazione per utilizzare lo spazio di nomi tag. Per ulteriori informazioni sull'applicazione di tag, vedere Tag risorsa. Se non si è certi di applicare le tag, saltare questa opzione (è possibile applicare le tag in un secondo momento) o chiedere all'amministratore. Evitare di fornire informazioni riservate.
  6. Fare clic su Crea keystore.
  7. Assicurarsi di utilizzare le stesse credenziali utente okv_rest_user durante il provisioning del database.

    Per ulteriori informazioni, vedere: Gestione dei vault, Gestione delle chiavi e Gestione dei segreti.

Gestione del keystore

Scopri come gestire il tuo keystore.

Visualizza dettagli keystore

Attenersi alla procedura riportata di seguito per visualizzare i dettagli del keystore che includono i dettagli di connessione a Oracle Key Vault (OKV) e la lista dei database associati.

  1. Aprire il menu di navigazione. In Oracle Database, fare clic su Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Selezionare il compartimento.
  3. Fare clic su Negozi chiave.

    La pagina Keystore visualizza la lista dei nomi dei keystore, il numero di database associati a ciascun database e la data di creazione di ogni keystore.

  4. Fare clic sul nome del keystore o sull'icona Azioni (tre punti), quindi fare clic su Visualizza dettagli.
  5. Fare clic sul collegamento nel campo Segreto password amministratore per visualizzare i dettagli del segreto.

    Nella sezione Database associati viene visualizzata la lista dei CDB associati a questo keystore.

Modifica dettagli keystore

È possibile modificare un keystore solo se non è associato ad alcun CDB.

  1. Aprire il menu di navigazione. In Oracle Database, fare clic su Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Selezionare il compartimento.
  3. Fare clic su Negozi chiave.
  4. Fare clic sul nome del keystore o sull'icona Azioni (tre punti), quindi fare clic su Visualizza dettagli.
  5. Nella pagina Dettagli keystore, fare clic su Modifica.
  6. Nella pagina Modifica keystore apportare le modifiche necessarie, quindi fare clic su Salva modifiche.

Spostare un keystore in un altro compartimento

Attenersi alla procedura riportata di seguito per spostare un keystore in un sistema Oracle Exadata Database Service on Dedicated Infrastructure da un compartimento a un altro compartimento.

  1. Aprire il menu di navigazione. In Oracle Database, fare clic su Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Selezionare il compartimento.
  3. Fare clic su Negozi chiave.
  4. Fare clic sul nome del keystore o sull'icona Azioni (tre punti), quindi fare clic su Visualizza dettagli.
  5. Nella pagina Dettagli keystore, fare clic su Sposta risorsa.
  6. Nella pagina Sposta risorsa in un altro compartimento, selezionare il nuovo compartimento.
  7. Fare clic su Sposta risorsa.

Elimina un keystore

È possibile eliminare un keystore solo se non è associato ad alcun CDB.

  1. Aprire il menu di navigazione. In Oracle Database, fare clic su Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Selezionare il compartimento.
  3. Fare clic su Negozi chiave.
  4. Fare clic sul nome del keystore o sull'icona Azioni (tre punti), quindi fare clic su Visualizza dettagli.
  5. Nella pagina Dettagli keystore, fare clic su Elimina.
  6. Nella finestra di dialogo Elimina keystore, fare clic su Elimina.

Visualizza dettagli container database associato al keystore

Attenersi alla procedura riportata di seguito per visualizzare i dettagli del container database associato a un keystore.

  1. Aprire il menu di navigazione. In Oracle Database, fare clic su Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Selezionare il compartimento.
  3. Fare clic su Negozi chiave.
  4. Nella pagina Keystore risultante, fare clic sul nome del keystore o sull'icona Azioni (tre punti), quindi fare clic su Visualizza dettagli.
  5. Fare clic sul nome del database associato o sull'icona Azioni (tre punti), quindi fare clic su Visualizza dettagli.

Utilizzo dell'API per gestire il keystore

Scopri come utilizzare l'API per gestire il keystore.

Per informazioni sull'uso dell'API e delle richieste di firma, vedere API REST e Credenziali di sicurezza. Per informazioni sugli SDK, vedere Software Development Kits and Command Line Interface.

Operation Endpoint dell'API REST
Crea keystore OKV CreateKeyStore
Visualizza keystore OKV GetKeyStore
Aggiorna keystore OKV UpdateKeyStore
Elimina keystore OKV DeleteKeyStore
Modifica compartimento del keystore ChangeKeyStoreCompartment
Scegli tra la cifratura gestita dal cliente e quella gestita da Oracle CreateDatabase
Recupera il nome del keystore (OKV o gestito da Oracle) e del wallet OKV GetDatabase
Modifica tipo di keystore changeKeyStoreType
Ruota OKV e chiave gestita da Oracle RotateVaultKey

Amministrare le chiavi TDE (Transparent Data Encryption)

Utilizzare questa procedura per modificare la configurazione di gestione delle chiavi.

Dopo aver eseguito il provisioning di un database in un sistema ExaDB-D, è possibile modificare la gestione delle chiavi ed eseguire operazioni quali la rotazione delle chiavi TDE.

Nota

  • È possibile modificare la gestione delle chiavi da Oracle Wallet ad altre opzioni disponibili.
  • Quando si modifica la gestione delle chiavi in OKV, il database subirà un'operazione di arresto interrotto seguita da un riavvio. Pianificare l'esecuzione della migrazione in una finestra di manutenzione pianificata.
  • È necessario ruotare le chiavi TDE solo tramite le interfacce OCI (console, API).
  • Non è possibile ruotare una chiave di cifratura:
    • quando è in corso un ripristino del database in una determinata Oracle home.
    • quando è in corso l'applicazione di patch a un database o a una home del database.
  1. Aprire il menu di navigazione. In Oracle Database, fare clic su Oracle Exadata Database Service on Dedicated Infrastructure.
  2. Selezionare il compartimento.
  3. Passare al cluster VM contenente il database per il quale si desidera modificare la gestione della cifratura o ruotare una chiave.
    1. Exadata Database Service on Dedicated Infrastructure, fare clic su Cluster VM Exadata.
    2. Nella lista dei cluster VM individuare il cluster VM a cui si desidera accedere e fare clic sul nome evidenziato per visualizzare la pagina dei dettagli del cluster.
  4. Nella sezione Database, fare clic sul nome del database per il quale si desidera modificare la gestione della cifratura o ruotare una chiave per visualizzarne la pagina dei dettagli.
  5. Andare alla sezione Cifratura della pagina dei dettagli del database.
    • Per modificare la gestione delle chiavi:

      Se Oracle Wallet è stato configurato come gestione delle chiavi, il sistema visualizza l'opzione Modifica per modificare la gestione delle chiavi in OCI Vault e Oracle Key Vault,

      1. Fare clic su Modifica.
      2. Nella pagina Gestione chiavi Modifica risultante, selezionare Gestione chiavi.
        • Vault OCI:
          1. Selezionare il compartimento vault in uso, quindi selezionare il vault disponibile nel compartimento.
          2. Selezionare il compartimento Chiave in uso, quindi selezionare la chiave dall'elenco a discesa.
          3. Facoltativamente, scegliere la versione della chiave e immettere l'OCID della versione della chiave.

            Per impostazione predefinita, viene utilizzata l'ultima versione della chiave.

          4. Fare clic su Salva modifiche.
        • Oracle Key Vault:

          È necessario disporre di una chiave di cifratura valida nel servizio Oracle Key Vault e fornire le informazioni nei passi successivi. Per ulteriori informazioni, vedere Concetti di gestione di chiavi e segreti.

          1. Scegliere un'area.
          2. Scegliere un compartimento.

            È possibile modificare il compartimento facendo clic sul collegamento Modifica compartimento.

          3. Fare clic su Salva modifiche.
    • Per ruotare una chiave di cifratura:

      Se OCI Vault o Oracle Key Vault è stato configurato come gestione delle chiavi, il sistema visualizza l'opzione Ruota per ruotare la chiave di cifratura.

      1. Fare clic su Rotata per visualizzare una finestra di dialogo di conferma.
      2. Fare clic su Ruota.
Nota

  • La migrazione delle chiavi TDE a Oracle Key Vault (OKV) richiede 10 minuti di tempo di inattività. Durante la migrazione, lo stato del database sarà UPDATING e le connessioni potrebbero non riuscire a causa di più riavvii del database per abilitare OKV. Le applicazioni possono riprendere l'operazione al termine della migrazione e quando il database torna allo stato ACTIVE originale.
  • La password del keystore OKV verrà impostata sulla password del wallet TDE.

Attenzione

Dopo aver modificato la gestione delle chiavi, l'eliminazione della chiave da OKV renderà il database non più disponibile.

Nella pagina dei dettagli del database per questo database, la sezione Cifratura visualizza il nome della chiave di cifratura e l'OCID della chiave di cifratura.

Come duplicare manualmente un pluggable database (PDB) da un container database remoto (CDB) quando i dati vengono cifrati con la chiave di cifratura master (MEK) in Oracle Key Vault (OKV)

Lo strumento dbaascli consente di duplicare i PDB quando il CDB di origine e il CDB di destinazione sono uguali (copia locale) o se sono diversi (copia remota). Tuttavia, non è possibile duplicare un PDB remoto se i dati sono cifrati con una chiave MEK in OKV.

Nota

Per decifrare o cifrare i dati durante una copia remota, il container database deve avere accesso alla chiave MEK. La chiave MEK deve essere resa disponibile al CDB di destinazione quando è memorizzata nel server OKV.

Il CDB di origine e il CDB di destinazione sono cifrati con MEK nello stesso server OKV

  1. Recupera l'ID oggetto OKV del PDB di origine.
    1. Recupera la chiave di cifratura più recente del PDB di origine utilizzando 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. Ottenere l'ID oggetto OKV (uuid) del MEK più recente ottenuto dal passo precedente.

      Quando richiesto, immettere la password dell'endpoint OKV e premere il tasto Enter sulla tastiera.

      [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. Installare il wallet REST OKV nel database di origine.
    1. Creare la directory okv_rest_cli se non esiste.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
    2. Scaricare ed estrarre okvrestclipackage.zip.

      Selezionare ALL se richiesto per la sostituzione.

      [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. Modificare i file okvrestcli.ini e okvrestcli_logging.properties come indicato di seguito.
      [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. Creare la directory 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. Crea il wallet REST OKV utilizzando l'interfaccia della riga di comando REST OKV.

      Quando richiesto, immettere la password REST OKV di origine.

      [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. Creare un nuovo wallet OKV per memorizzare solo la chiave MEK PDB ottenuta nel passo #1.
    1. Ottenere il nome del wallet OKV dal PDB di origine nel formato EXA_DB_NAME_DBID_PDB_NAME_WL.

      Ad esempio, il nome del wallet sarebbe 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. Creare un nuovo wallet utilizzando l'interfaccia della riga di comando REST 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. Controllare lo stato finché non è ACTIVE.
      [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. Aggiungere le autorizzazioni Lettura e modifica e Gestisci wallet dagli endpoint OKV del database di origine al wallet OKV creato nel passo n. 3.
    1. Recupera i nomi degli endpoint dal database di origine. Uno per VM.

      Di solito, la struttura è nel formato EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Ad esempio, il nome endpoint del nodo 1 sarà 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. Aggiungere le autorizzazioni Lettura e modifica e Gestisci wallet utilizzando l'interfaccia della riga di comando di OKV REST.
      [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. Memorizzare MEK dal PDB di origine ottenuto nel passo #1 nel wallet OKV creato nel passo #3.
    1. Aggiungere MEK (uuid ottenuto nel passo #1.b) utilizzando l'interfaccia della riga di comando REST OKV.

      Quando richiesto, immettere la password dell'endpoint OKV di origine.

      [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. Installare il wallet REST OKV nel database di destinazione.
    1. Creare la directory okv_rest_cli se non esiste.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
    2. Scaricare ed estrarre okvrestclipackage.zip.

      Selezionare ALL quando richiesto per la sostituzione.

      [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. Modificare i file okvrestcli.ini e okvrestcli_logging.properties come indicato di seguito.
      [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. Creare la directory 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. Crea il wallet REST OKV utilizzando l'interfaccia della riga di comando REST OKV.

      Quando richiesto, immettere la password REST OKV di destinazione.

      [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. Aggiungere le autorizzazioni Sola lettura e Gestisci wallet dagli endpoint OKV del database di destinazione al wallet OKV del PDB di origine creato nel passo n. 3.
    1. Recupera i nomi degli endpoint dal database di destinazione. Uno per VM.

      Di solito, la struttura è nel formato EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Ad esempio, il nome endpoint del nodo 1 sarà 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. Aggiungere le autorizzazioni Sola lettura e Gestisci wallet utilizzando l'interfaccia della riga di comando di OKV REST.
      [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. Copia il PDB.
    1. Eseguire dbaascli per duplicare il PDB.

      Immettere la password utente SYS DB di origine quando richiesto.

      [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. Eliminare il wallet OKV del PDB di origine creato nel passo n. 3 utilizzando l'interfaccia della riga di comando REST 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. Eliminare il wallet REST OKV creato nel passo n. 2.
    1. Eliminare i file del wallet nella directory dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#
  11. Elimina il wallet REST OKV creato nel passo n. 6.
    1. Eliminare i file del wallet nella directory dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#

Il CDB di origine e il CDB di destinazione sono cifrati con MEK in un server OKV diverso

  1. Recupera l'ID oggetto OKV del PDB di origine.
    1. Recupera la chiave di cifratura più recente del PDB di origine utilizzando 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. Ottenere l'ID oggetto OKV (uuid) del MEK più recente ottenuto dal passo precedente.

      Quando richiesto, immettere la password dell'endpoint OKV e premere il tasto Enter sulla tastiera.

      [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. Installare il wallet REST OKV nel database di origine.
    1. Creare la directory okv_rest_cli se non esiste.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
    2. Scaricare ed estrarre okvrestclipackage.zip.

      Selezionare ALL se richiesto per la sostituzione.

      [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. Modificare i file okvrestcli.ini e okvrestcli_logging.properties come indicato di seguito.
      [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. Creare la directory 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. Crea il wallet REST OKV utilizzando l'interfaccia della riga di comando REST OKV.

      Quando richiesto, immettere la password REST OKV di origine.

      [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. Creare un nuovo wallet OKV per memorizzare solo la chiave MEK PDB ottenuta nel passo #1.
    1. Ottenere il nome del wallet OKV dal PDB di origine nel formato 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. Controllare lo stato finché non è ACTIVE.
      [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. Aggiungere le autorizzazioni Lettura e modifica e Gestisci wallet dagli endpoint OKV del database di origine al wallet OKV creato nel passo n. 3.
    1. Recupera i nomi degli endpoint dal database di origine. Uno per VM.

      Di solito, la struttura è nel formato EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Ad esempio, il nome endpoint del nodo 1 sarà 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. Aggiungere le autorizzazioni Lettura e modifica e Gestisci wallet utilizzando l'interfaccia della riga di comando di OKV REST.
      [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. Memorizzare MEK dal PDB di origine ottenuto nel passo #1 nel wallet OKV creato nel passo #3.
    1. Aggiungere MEK (uuid ottenuto nel passo #1.b) utilizzando l'interfaccia della riga di comando REST OKV.

      Quando richiesto, immettere la password dell'endpoint OKV di origine.

      [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. Scaricare il wallet OKV creato nel passo n. 3 dal server OKV al file system locale.
    1. Creare una nuova directory con le autorizzazioni per l'utente oracle.

      In questa directory verrà memorizzato il wallet che conterrà solo la chiave MEK del PDB di origine.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ mkdir /home/oracle/<source_pdb_wallet_dir>
      [oracle@testserver oracle]$
    2. Scaricare il wallet OKV creato nel passo #3 nella directory creata nel passo #6.a utilizzando okvutil.

      Richiederà due volte una password per cifrare il wallet locale. Utilizzare la stessa password dell'endpoint di origine. Inoltre, immettere la password dell'endpoint di origine quando richiesto.

      [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. Comprimere la directory del 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. Eliminare il wallet OKV del PDB di origine creato nel passo n. 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. Eliminare il wallet REST OKV creato nel passo n. 1.
    1. Eliminare i file del wallet nella directory dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#
  9. Copiare il wallet del PDB di origine scaricato nel file system focale nel passo n. 6 nella VM cluster di destinazione.
  10. Eliminare il wallet del PDB di origine dal file system locale di origine creato nel passo n. 6.
    1. Eliminare la directory del wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ rm -rf /home/oracle/<source_pdb_wallet_dir>
      [oracle@testserver oracle]$
    2. Eliminare il file zip del wallet.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ rm -f /home/oracle/<source_pdb_wallet_dir>.zip
      [oracle@testserver oracle]$
  11. Installare il wallet REST OKV nel database di destinazione.
    1. Creare la directory okv_rest_cli se non esiste.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
    2. Scaricare ed estrarre okvrestclipackage.zip.

      Selezionare ALL quando richiesto per la sostituzione.

      [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. Modificare i file okvrestcli.ini e okvrestcli_logging.properties come indicato di seguito.
      [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. Creare la directory 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. Crea il wallet REST OKV utilizzando l'interfaccia della riga di comando REST OKV.

      Quando richiesto, immettere la password REST OKV di destinazione.

      [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. Caricare il wallet del PDB di origine creato nel passo n. 6 e copiato nella VM cluster di destinazione nel passo n. 9.
    1. Estrarre il wallet del PDB di origine.
      [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. Ottenere il nome del wallet OKV dal database di destinazione nel formato EXA_DB_NAME_DBID_WL.

      Ad esempio, il nome del wallet sarebbe 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. Caricare il wallet del PDB di origine nel wallet OKV di destinazione utilizzando okvutil.

      Immettere la password del wallet del PDB di origine quando richiesto. Utilizzare la stessa password dell'endpoint di origine.

      Inoltre, immettere la password dell'endpoint di destinazione quando richiesto.

      [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. Copia il PDB.
    1. Eseguire dbaascli per duplicare il 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. Eliminare il wallet REST OKV creato nel passo n. 1.
    1. Eliminare i file del wallet nella directory dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#

Come eseguire l'upgrade della home Oracle Key Vault (OKV) in Oracle Exadata Database Service on Dedicated Infrastructure

Dopo aver eseguito la migrazione del tipo di cifratura dalle chiavi gestite da Oracle alle chiavi gestite dal cliente (Oracle Key Vault), la home OKV in DomUs rimane con la stessa versione utilizzata per la migrazione.

Se il server OKV viene aggiornato, la funzionalità continuerà a funzionare a causa della compatibilità con le versioni precedenti. Tuttavia, il cliente potrebbe voler ottenere le nuove funzionalità per gli strumenti client. In tal caso, aggiornare la home OKV e la libreria PKCS#11.

  1. Convalida che la versione corrente della home OKV sia minore della versione del server OKV.
    1. Ottenere la versione di OKV Home eseguendo okvutil. In questo caso il valore è 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. Ottenere la versione di OKV Server eseguendo il login alla console di OKV Server tramite il browser. In questo caso la versione è 21.7.0.0.0.
  2. Installare il wallet REST OKV nel database di origine. Questo passo deve essere eseguito in un solo nodo.
    1. Se non esiste, creare la directory okv_rest_cli.
      # su oracle
      $ mkdir /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli
    2. Scaricare ed estrarre okvrestclipackage.zip. Se richiesto, selezionare 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. Modificare okvrestcli.ini con le informazioni successive.
      $ 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. Creare la directory client_wallet.
      $ mkdir /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/client_wallet
    5. Creare un wallet REST OKV utilizzando l'interfaccia CLI REST OKV. Verrà richiesto di immettere la password REST OKV di origine.
      $ 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. Preparare le directory home OKV in DomU 1.
    1. Rinominare la directory home OKV come versione corrente della home OKV.
      $ mv /u02/app/oracle/admin/<dbname>/okv_home/okv /u02/app/oracle/admin/<dbname>/okv_home/okv<current_okv_home_version>
    2. Creare una nuova directory home OKV come versione di OKV Server.
      $ mkdir /u02/app/oracle/admin/<dbname>/okv_home/okv<okv_server_version>
    3. Creare un collegamento simbolico del nome normale della home OKV alla directory creata nel passo 3.b.
      $ ln -s /u02/app/oracle/admin/<dbname>/okv_home/okv<okv_server_version> /u02/app/oracle/admin/<dbname>/okv_home/okv
  4. Aggiornare la home OKV in DomU 1.
    1. Ottenere il nome dell'endpoint OKV tramite okvutil. Verrà richiesto OKV Endpoint Password (TDE Password) La voce è quella chiamata "Modello".

      Si noti che il nome host deve essere uguale al nome host DomU corrente. (Di solito, questo nome è EXA_<DBNAME>_<resourceID>_<CURRENT_DOMU_HOST_NAME>_EP. <resourceID> può essere ottenuto elencando il DB tramite il 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. Registrare nuovamente l'endpoint in 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. Endpoint di provisioning in DomU 1. Verrà richiesto di specificare la password dell'endpoint OKV (password TDE).
      $ 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. Convalida dell'aggiornamento della home OKV riuscita.
    1. Convalidare l'endpoint OKV che elenca le voci nel wallet OKV. Verrà richiesto di specificare la password dell'endpoint OKV (password TDE).
      $ /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. Ottenere la versione di OKV Home eseguendo okvutil. La versione deve essere uguale alla versione del server OKV. In questo caso il valore deve essere 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. Ripetere i passi da 3 a 5 nel resto del file DomUs.
  7. Ripetere i passi da 1 a 6 per qualsiasi altro DB che deve aggiornare la home OKV.
  8. Arrestare le istanze DomU 1 di tutti i database con TDE basata su OKV. Questo può essere fatto tramite la console, il comando srvctl o SQL* Plus.
  9. Eseguire root.sh dalla home OKV selezionata. Di solito dovrebbe essere quello con la versione più recente di OKV. Verrà richiesto di sostituire la libreria PKCS11. Selezionare SÌ.
    # /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/root.sh
  10. Avviare le istanze DomU 1 di tutti i database con la funzione TDE basata su OKV. Questo può essere fatto tramite la console, il comando srvctl o SQL* Plus.
  11. Ripetere i passi da 8 a 10 nel resto del file DomUs.