Gestión de claves de cifrado en dispositivos externos

Obtenga información sobre cómo almacenar y gestionar claves de cifrado de base de datos.

Hay dos opciones para almacenar y gestionar claves de cifrado de base de datos para sus bases de datos en Oracle Exadata Database Service on Cloud@Customer:

  1. En un archivo de cartera de conexión automática almacenado en Oracle Advanced Cluster File System (Oracle ACFS) al que puede acceder el sistema operativo de VM del cliente.
  2. Oracle Key Vault.

Claves gestionadas por el cliente en Oracle Exadata Database Service on Cloud@Customer

Las claves gestionadas por el cliente para Oracle Exadata Database Service on Cloud@Customer son una función que permite migrar la clave de cifrado maestra de TDE de Oracle Database para una instancia de Oracle Database desde el archivo de cartera protegido por contraseña almacenado en el equipo de Oracle Exadata Database Service on Cloud@Customer a un servidor de OKV que usted controla.

Oracle Key Vault (OKV) proporciona gestión de secretos y claves escalables, de alta disponibilidad y tolerantes a fallos para las bases de datos cifradas ExaDB-C@C. Utilice claves gestionadas por el cliente cuando necesite gobernanza de seguridad, conformidad normativa y un cifrado homogéneo de los datos, a la vez que gestiona, almacena y supervisa de manera centralizada el ciclo de vida de las claves que utiliza para proteger los datos.

Puede:

  • Cambiar de claves gestionadas por Oracle a claves gestionadas por el cliente en bases de datos que no tienen Oracle Data Guard activado.
  • Rotar claves para mantener la conformidad de seguridad.
  • También está soportada la rotación de la clave de PDB. Las operaciones de rotación de claves de CDB y PDB solo están permitidas si la base de datos está gestionada por el cliente.

Requisitos

Acerca de Oracle Key Vault

Oracle Key Vault es un dispositivo de software de pila completa y seguridad reforzada diseñado para centralizar la gestión de las claves y los objetos de seguridad dentro de la empresa.

Nota

Oracle Key Vault es un sistema gestionado y aprovisionado por el cliente y no forma parte de los servicios gestionados de Oracle Cloud Infrastructure.

Visión general del almacén de claves

Integre su instancia local de Oracle Key Vault (OKV) con servicios de base de datos en la nube gestionados por el cliente para proteger sus datos esenciales de forma local.

La integración de Oracle Key Vault permite tomar el control completo de las claves de cifrado y almacenarlas de forma segura en un dispositivo de gestión de claves centralizado y externo.

OKV está optimizado para carteras de Oracle, almacenes de claves de Java y claves maestras del cifrado de datos transparente (TDE) de Oracle Advanced Security. Además, Oracle Key Vault soporta el estándar KMIP de OASIS. El dispositivo de software de pila completa y seguridad reforzada utiliza la tecnología de Oracle Linux y Oracle Database para garantizar la seguridad, la disponibilidad y la escalabilidad y se puede desplegar en el hardware compatible de su elección.

OKV también proporciona una interfaz REST para que los clientes puedan inscribir automáticamente los puntos finales y configurar carteras y claves. Para que las bases de datos autónomas de Exadata Cloud at Customer se conecten a la interfaz REST de OKV, cree un almacén de claves en el arrendamiento para almacenar la dirección IP y las credenciales de administrador de OKV. Exadata Cloud@Customer almacena temporalmente la contraseña de administrador de usuario de REST de OKV necesaria para conectarse al dispositivo de OKV en un archivo de cartera protegido por contraseña para que el software que se ejecuta en la máquina virtual del cliente pueda conectarse al servidor de OKV. Tras la migración de las claves de TDE a OKV, el software de automatización en la nube eliminará la contraseña del archivo de cartera. Asegúrese de crear un secreto con el servicio Vault de Oracle, que almacenará la contraseña necesaria para que las bases de datos autónomas se conecten a OKV para la gestión de las claves.

Para obtener más información, consulte "Oracle Key Vault".

Política de IAM necesaria para gestionar OKV en Oracle Exadata Database Service en Cloud at Customer

Revise la política de gestión de identidad y acceso (IAM) para gestionar OKV en sistemas Oracle Exadata Database Service en Cloud at Customer.

Una política es un documento de IAM que especifica quién tiene qué tipo de acceso a los recursos. Se utiliza de distintas formas: para hacer referencia a una sentencia individual escrita en el lenguaje de la política; para hacer referencia a una recopilación de sentencias en un documento único denominado "política" (que tiene un ID de Oracle Cloud [OCID] asignado), y para hacer referencia al conjunto general de políticas que utiliza la organización para controlar el acceso a los recursos.

Un compartimentoes una recopilación de recursos relacionados a los que solo pueden acceder ciertos grupos que hayan recibido permiso para ello por parte de un administrador de la organización.

Para utilizar Oracle Cloud Infrastructure, se le debe conceder el tipo de acceso necesario en una política escrita por un administrador, tanto si utiliza la consola como la API de REST con un software development kit (SDK), una interfaz de línea de comandos (CLI) o alguna otra herramienta. Si intenta realizar una acción y recibe un mensaje de que no tiene permiso o no está autorizado, confirme con el administrador el tipo de acceso que se le ha otorgado y en qué compartimento debe trabajar.

Para administradores: la política de "Permitir a los administradores de bases de datos gestionar sistemas de base de datos" permite al grupo especificado realizar todas las acciones en las bases de datos y los recursos de base de datos relacionados.

Si no está familiarizado con las políticas, consulte "Introducción a las políticas" y "Políticas comunes". Si desea profundizar en la escritura de políticas para bases de datos, consulte "Detalles del servicio Database".

Etiquetado de recursos

Puede aplicar etiquetas a los recursos para ayudarle a organizarlos según las necesidades de su negocio.

Puede aplicar las etiquetas al crear un recurso o actualizar el recurso más tarde con las etiquetas que desee. Para obtener información general sobre la aplicación de etiquetas, consulte "Etiquetas de recursos".

Traslado de recursos a un compartimento diferente

Puede mover recursos de OKV Vault, Secret y Keystore de un compartimento a otro.

Después de mover un recurso de OCI a un nuevo compartimento, las políticas inherentes se aplican inmediatamente y afectan al acceso al recurso. El movimiento de un recurso de OKV Vault no afecta el acceso a las claves de OKV Vault ni a los secretos de OKV Vault que contiene OKV Vault. Puede mover claves de almacén de OKV o secretos de almacén de OKV de un compartimento a otro independientemente de mover el almacén de OKV al que está asociado. Para obtener más información, consulte Gestión de compartimentos.

Configuración de Oracle Exadata Database Service on Cloud@Customer para trabajar con Oracle Key Vault

Requisitos
  1. Asegúrese de que OKV está configurado y de que se puede acceder a la red desde la red de cliente de Exadata. Abra los puertos 443, 5695 y 5696 para la salida en la red de cliente para el software de cliente de OKV y la instancia de base de datos Oracle para acceder al servidor de OKV.
  2. Asegúrese de que la interfaz REST está activada desde la interfaz de usuario de OKV.
  3. Cree el usuario "Administrador de REST de OKV".

    Puede utilizar cualquier nombre de usuario cualificado de su elección, por ejemplo, "okv_rest_user". Para ADB-C@C y ExaDB-C@C, utilice los mismos usuarios de REST o diferentes. Estas bases de datos se pueden gestionar mediante claves en los mismos clusters de OKV locales o en clusters locales diferentes. ExaDB-C@C necesita un usuario REST con privilegio create endpoint. ADB-C@C necesita un usuario REST con privilegios create endpoint y create endpoint group.

  4. Recopile las credenciales de administrador y la dirección IP de OKV, que son necesarias para conectarse a OKV.

Para obtener más información, consulte Requisitos de los puertos de red, Gestión de usuarios de Oracle Key Vault y Gestión de roles administrativos y privilegios de usuario

Paso 1: Creación de un almacén en el servicio Vault de OKV y adición de un secreto al almacén para almacenar la contraseña de administrador de REST de OKV

Su infraestructura de Exadata Cloud@Customer se comunica con OKV a través de REST cada vez que se aprovisiona una instancia de Oracle Database para registrar Oracle Database y solicitar una cartera en OKV. Por lo tanto, la infraestructura de Exadata necesita acceder a las credenciales de administrador de REST para registrarse en el servidor de OKV.

Estas credenciales se almacenan de forma segura en el servicio Oracle Vault en OCI como secreto y a las que accede la infraestructura de Exadata Cloud@Customer solo cuando sea necesario. Cuando sea necesario, las credenciales se almacenan en un archivo de cartera protegido por contraseña.

Para almacenar la contraseña de administrador de OKV en el servicio Vault de OKV, cree un almacén siguiendo las instrucciones que se describen en Managing Vaults y cree un secreto en ese almacén siguiendo las instrucciones que se describen en Managing Secrets.

Paso 2: Creación de un grupo dinámico y una sentencia de política para que el almacén de claves acceda al secreto en OKV Vault

Para otorgar permiso a los recursos del almacén de claves para acceder al secreto en OKV Vault, cree un grupo dinámico de IAM que identifique estos recursos y, a continuación, cree una política de IAM que otorgue a este grupo dinámico acceso al secreto creado en los almacenes y secretos de OKV.

Al definir el grupo dinámico, los recursos del almacén de claves se identifican al especificar el OCID del compartimento que contiene el almacén de claves.

  1. Copie el OCID del compartimento que contiene el recurso del almacén de claves.

    Puede encontrar este OCID en la página Detalles del compartimento del compartimento.

  2. Cree un grupo dinámico siguiendo las instrucciones de "Para crear un grupo dinámico" de la documentación de Oracle Cloud Infrastructure. Al seguir estas instrucciones, introduzca una regla de coincidencia con este formato:
    ALL {resource.compartment.id ='<compartment-ocid>'}

    donde <compartment-ocid> es el OCID del compartimento que contiene el recurso del almacén de claves.

  3. Después de crear el grupo dinámico, acceda a (o cree) una política de IAM de un compartimento que esté por encima en la jerarquía de compartimentos del compartimento que contiene los almacenes y secretos. A continuación, agregue una sentencia de política con este formato:
    allow dynamic-group <dynamic-group> to use secret-family in compartment <vaults-and-secrets-compartment>

    donde <dynamic-group> es el nombre del grupo dinámico creado y <vaults-and-secrets-compartment> es el nombre del compartimento en el que ha creado los almacenes y secretos.

Paso 3: Creación de un grupo dinámico y una sentencia de política para que la infraestructura de Exadata acceda al almacén de claves

Para otorgar permiso a los recursos de infraestructura de Exadata para acceder al almacén de claves, cree un grupo dinámico de IAM que identifique estos recursos y, a continuación, cree una política de IAM que otorgue a este grupo dinámico acceso al almacén de claves creado.

Al definir el grupo dinámico, los recursos de infraestructura de Exadata se identifican al especificar el OCID del compartimento que contiene la infraestructura de Exadata.

  1. Copie el OCID del compartimento que contiene el recurso de infraestructura de Exadata.
    Puede encontrar este OCID en la página Detalles del compartimento del compartimento.
  2. Cree un grupo dinámico siguiendo las instrucciones de "Para crear un grupo dinámico" de la documentación de Oracle Cloud Infrastructure. Al seguir estas instrucciones, introduzca una regla de coincidencia con este formato:
    ALL {resource.compartment.id ='<compartment-ocid>'}

    donde <compartment-ocid> es el OCID del compartimento que contiene el recurso de infraestructura de Exadata.

  3. Después de crear el grupo dinámico, acceda a (o cree) una política de IAM de un compartimento que esté por encima en la jerarquía de compartimentos del compartimento que contiene el almacén de claves. A continuación, agregue una sentencia de política con este formato:
    Allow dynamic-group <dynamic-group> to use keystores in compartment <key-store-compartment>

    donde <dynamic-group> es el nombre del grupo dinámico creado y <key-store-compartment> es el nombre del compartimento en el que ha creado el almacén de claves.

Paso 4: Creación de una sentencia de política para que el servicio de base de datos utilice el secreto desde el servicio OKV Vault

Para otorgar permiso al servicio Exadata Database para utilizar el secreto en OKV Vault para conectarse a la interfaz REST de OKV, acceda a (o cree) una política de IAM de un compartimento que esté por encima en la jerarquía de compartimentos del compartimento que contiene los almacenes y secretos de OKV. A continuación, agregue una sentencia de política con este formato:
allow service database to read secret-family in compartment <vaults-and-secrets-compartment>

donde <vaults-and-secrets-compartment> es el nombre del compartimento en el que ha creado los almacenes y secretos de OKV.

Una vez que OKV Vault esté configurado y la configuración de IAM esté en su lugar, ahora estará listo para desplegar el "almacén de claves" de Oracle Key Vault en OCI y asociarlo al cluster de VM de Exadata Cloud@Customer.

Paso 5: Creación del almacén de claves

Siga estos pasos para crear un almacén de claves para conectarlo a un dispositivo de claves de cifrado local, como Oracle Key Vault (OKV).

  1. Abra el menú de navegación. En Oracle Database, haga clic en Exadata Database Service en Cloud at Customer.
  2. Seleccione su Compartimento.
  3. Haga clic en Almacenes de claves.

    La página Almacenes de claves muestra la lista de nombres de los almacenes de claves, el número de bases de datos asociadas a cada base de datos y la fecha en la que se creó cada almacén de claves.

  4. Haga clic en Crear almacén de claves.
  5. En el cuadro de diálogo Crear almacén de claves, introduzca la siguiente información general:
    • Asignar nombre al almacén de claves: descripción fácil de recordar u otra información que le ayude a identificar fácilmente el recurso del almacén de claves. Evite introducir información confidencial.
    • Configuración de conexión de Oracle Key Vault
      • Direcciones IP de conexión: introduzca al menos una dirección IP de nodo de cluster de OKV; es posible que haya varias direcciones IP separadas por comas (del mismo cluster de OKV), por ejemplo, 193.10.20.1, 193.10.20.2.
      • Nombre de usuario de administrador: introduzca el nombre de usuario de okv_rest_user.
      • Secreto de contraseña de administrador: la contraseña de administrador se almacena con el servicio de gestión de secretos dentro de OCI. Seleccione el almacén de OKV Vault del arrendamiento que contiene la contraseña okv_rest_user almacenada como un secreto.
    • Etiquetas: opcionalmente, puede aplicar etiquetas. Si tiene permiso para crear un recurso, también lo tiene para aplicar etiquetas de formato libre a ese recurso. Para aplicar una etiqueta definida, debe tener permiso para utilizar el espacio de nombres de la etiqueta. Para obtener más información sobre el etiquetado, consulte Etiquetas de recursos. Si no está seguro de si debe aplicar etiquetas, omita esta opción (puede aplicar las etiquetas posteriormente) o pregunte al administrador. Evite introducir información confidencial.
  6. Haga clic en Crear.
  7. Asegúrese de utilizar las mismas credenciales de usuario "okv_rest_user" al aprovisionar Autonomous Database.

    Para obtener más información, consulte Gestión de almacenes, Gestión de claves y Gestión de secretos.

Gestión del almacén de claves

Visualización de detalles del almacén de claves

Siga estos pasos para ver los detalles del almacén de claves, entre los que se incluyen los detalles de conexión de Oracle Key Vault (OKV) y la lista de las bases de datos asociadas.

  1. Abra el menú de navegación. En Oracle Database, haga clic en Exadata Database Service en Cloud at Customer.
  2. Seleccione su Compartimento.
  3. Haga clic en Almacenes de claves.

    La página Almacenes de claves muestra el nombre de lista de los almacenes de claves, el número de bases de datos asociadas a cada base de datos y la fecha en la que se creó cada almacén de claves.

  4. Haga clic en el nombre del almacén de claves o en el icono Acciones (tres puntos) y, a continuación, en Ver detalles.
  5. Haga clic en el enlace del campo Secreto de contraseña de administrador para ver los detalles del secreto.

    La sección Bases de datos asociadas muestra la lista de CDB asociadas a este almacén de claves.

Edición de detalles del almacén de claves

Puede editar un almacén de claves solo si no está asociado a ninguna CDB.

  1. Abra el menú de navegación. En Oracle Database, haga clic en Exadata Database Service en Cloud at Customer.
  2. Seleccione su Compartimento.
  3. Haga clic en Almacenes de claves.
  4. Haga clic en el nombre del almacén de claves o en el icono Acciones (tres puntos) y, a continuación, en Ver detalles.
  5. En la página Detalles del almacén de claves, haga clic en Editar.
  6. En la página Editar almacén de claves, realice los cambios necesarios y, a continuación, haga clic en Guardar cambios.

Traslado de un almacén de claves a otro compartimento

Siga estos pasos para mover un almacén de claves de un sistema Oracle Exadata Database Service on Cloud@Customer de un compartimento a otro.

  1. Abra el menú de navegación. En Oracle Database, haga clic en Exadata Database Service en Cloud at Customer.
  2. Seleccione su Compartimento.
  3. Haga clic en Almacenes de claves.
  4. Haga clic en el nombre del almacén de claves, en Acciones y, a continuación, seleccione Mover recurso.

    (o bien)

    Haga clic en el icono Acciones (tres puntos) del almacén de claves que desea mover y, a continuación, haga clic en Mover recurso.

  5. En la página Mover recurso a un compartimento diferente, seleccione el nuevo compartimento.
  6. Haga clic en Mover recurso.

Supresión de un almacén de claves

Puede suprimir un almacén de claves solo si no está asociado a ninguna CDB.

  1. Abra el menú de navegación. En Oracle Database, haga clic en Exadata Database Service en Cloud at Customer.
  2. Seleccione su Compartimento.
  3. Haga clic en Almacenes de claves.
  4. Haga clic en el nombre del almacén de claves, en Acciones y, a continuación, seleccione Suprimir.

    (o bien)

    Haga clic en el icono Acciones (tres puntos) del almacén de claves que desea suprimir y, luego, haga clic en Suprimir.

  5. En el cuadro de diálogo Suprimir almacén de claves, haga clic en Suprimir.

Visualización de Detalles de la Base de Datos de Contenedores Asociados al Almacén de Claves

Siga estos pasos para ver los detalles de la base de datos de contenedores asociada a un almacén de claves.

  1. Abra el menú de navegación. En Oracle Database, haga clic en Exadata Database Service en Cloud at Customer.
  2. Seleccione su Compartimento.
  3. Haga clic en Almacenes de claves.
  4. En la página Almacenes de claves resultante, haga clic en el nombre del almacén de claves o en el icono Acciones ( tres puntos) y, a continuación, en Ver detalles.
  5. Haga clic en Bases de datos asociadas.
  6. Haga clic en el nombre de la base de datos asociada o en el icono Acciones (tres puntos) y, a continuación, en Ver detalles.

Uso de la API para gestionar el almacén de claves

Aprenda a utilizar la API para gestionar el almacén de claves.

Para obtener información sobre el uso de la API y las solicitudes de firma, consulte "API de REST" y "Credenciales de seguridad". Para obtener información sobre los SDK, consulte "Software development kits e interfaz de línea de comandos".

En la siguiente tabla, se muestran los puntos finales de la API de REST para gestionar el almacén de claves.

Operación Punto final de la API de REST

Crear almacén de claves de OKV

CreateKeyStore

Ver almacén de claves de OKV

GetKeyStore

Actualizar almacén de claves de OKV

UpdateKeyStore

Suprimir almacén de claves de OKV

DeleteKeyStore

Cambiar compartimento del almacén de claves

ChangeKeyStoreCompartment

Elegir entre el cifrado gestionado por el cliente y gestionado por Oracle

CreateDatabase

Obtener el almacén de claves (gestionado por Oracle u OKV) y el nombre de la cartera de OKV

GetDatabase

Cambiar tipo de almacén de claves

changeKeyStoreType

Rotar clave gestionada por Oracle y OKV

RotateVaultKey

Administración de claves de cifrado de datos transparente (TDE)

Utilice este procedimiento para cambiar la configuración de gestión de cifrado o rotar la clave de TDE.

Después de aprovisionar una base de datos en un sistema ExaDB-C@C, puede cambiar la gestión de claves de cifrado a OKV y rotar la clave de TDE para esa base de datos.

Nota

  • Oracle soporta la administración de claves de cifrado en bases de datos posteriores a Oracle Database 11g versión 2 (11.2.0.4 e incluidas.
  • Puede cambiar la gestión de claves de cifrado desde claves gestionadas por Oracle a claves gestionadas por el cliente, pero no puede cambiar desde claves gestionadas por el cliente a claves gestionadas por Oracle.
  • Al cambiar a claves gestionadas por el cliente en OKV, la base de datos experimentará una operación de aborto de cierre seguida de un reinicio. Planifique realizar la migración a claves gestionadas por el cliente en OKV en una ventana de mantenimiento planificada.
  • Para asegurarse de que la base de datos de Exadata utiliza la versión más actual de la clave de TDE, rote la clave desde la página de detalles de la base de datos en la consola de Oracle Cloud Infrastructure. No utilice el servicio Vault.
  • Puede rotar claves de TDE solo en bases de datos configuradas con claves gestionadas por el cliente.
  • No puede rotar una clave de cifrado:
    • Cuando hay una restauración de base de datos en curso en un directorio raíz de Oracle determinado.
    • cuando hay una aplicación de parches de base de datos o de directorio raíz de base de datos en curso.
  1. Abra el menú de navegación. Haga clic en Oracle Database y, a continuación, en Exadata Database Service on Cloud@Customer.
  2. Elija su compartimento en la lista desplegable Compartimento.
  3. Vaya al cluster de VM que contiene la base de datos para la que desea cambiar la gestión de cifrado o rotar una clave.
    1. En Exadata Database Service on Cloud@Customer Infrastructure, haga clic en Clusters de VM de Exadata.
    2. En la lista de clusters de VM, busque el cluster de VM al que desea acceder y haga clic en el nombre resaltado para ver la página de detalles del cluster.
  4. En la sección Bases de datos, haga clic en el nombre de la base de datos para la que desea cambiar la gestión de cifrado o rotar una clave para mostrar la página de detalles.
  5. Haga clic en la lista desplegable Más acciones.
  6. Haga clic en Administrar clave de cifrado.

    Para cambiar el tipo de gestión de claves desde claves gestionadas por Oracle a claves gestionadas por el cliente:

    1. Haga clic en Cambiar tipo de gestión de claves.
    2. Seleccione Cifrar utilizando claves gestionadas por el cliente.

      Debe tener una clave de cifrado válida en el servicio Oracle Key Vault y proporcionar la información en los pasos siguientes. Para obtener más información, consulte Conceptos de gestión de claves y secretos.

    3. Seleccione una región.
    4. Seleccionar un compartimento.
      Puede cambiar el compartimento haciendo clic en el enlace Cambiar compartimento.
    5. Haga clic en Guardar cambios.

    Para rotar una clave de cifrado en una base de datos que utiliza claves gestionadas por el cliente:

    Nota

    Puede rotar solo claves de cifrado gestionadas por el cliente.

    1. Haga clic en Rotar clave de cifrado para mostrar un cuadro de diálogo de confirmación.
    2. Haga clic en Rotar clave.
Nota

  • La migración de claves de TDE a Oracle Key Vault (OKV) requiere 10 minutos de tiempo de inactividad. Durante la migración, el estado de la base de datos será ACTUALIZANDO y las conexiones pueden fallar debido a varios reinicios de la base de datos para activar OKV. Las aplicaciones pueden reanudar la operación después de que finalice la migración y cuando la base de datos vuelva a su estado ACTIVE original.
  • La contraseña del almacén de claves de OKV se establecerá como la contraseña de la cartera de TDE.

Atención:

Después de cambiar la gestión de claves a claves gestionadas por el cliente, al suprimir la clave de OKV, la base de datos dejará de estar disponible.

En la página de detalles de base de datos de esta base de datos, la sección Cifrado muestra el nombre y el OCID de la clave de cifrado.

Cómo clonar manualmente una base de datos conectable (PDB) desde una base de datos de contenedores remota (CDB) cuando los datos están cifrados con una clave de cifrado maestra (MEK) en Oracle Key Vault (OKV)

La herramienta dbaascli permite clonar PDB cuando la CDB de origen y la CDB de destino son iguales (clonación local) o si son diferentes (clonación remota). Sin embargo, no puede clonar una PDB remota si los datos están cifrados con una MEK en OKV.

Nota

Para descifrar/cifrar los datos durante una clonación remota, la base de datos de contenedores debe tener acceso a MEK. La MEK debe estar disponible para la CDB de destino cuando se almacena en el servidor de OKV.

La CDB de origen y la CDB de destino están cifradas con MEK en el mismo servidor OKV

  1. Obtenga el ID de objeto de OKV de la PDB de origen.
    1. Obtenga la clave de cifrado más reciente de la PDB de origen mediante 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. Obtenga el ID de objeto de OKV (uuid) de la MEK más reciente obtenida del paso anterior.

      Introduzca la contraseña del punto final de OKV cuando se le solicite y pulse la tecla Intro del 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 la cartera REST de OKV en la base de datos origen.
    1. Cree el directorio okv_rest_cli si no existe.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
    2. Descargue y extraiga okvrestclipackage.zip.

      Seleccione ALL si se le solicita la sustitución.

      [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 los archivos okvrestcli.ini y okvrestcli_logging.properties de la siguiente manera.
      [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. Cree el directorio 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. Cree la cartera REST de OKV mediante la interfaz de línea de comandos REST de OKV.

      Introduzca la contraseña de REST de OKV de origen cuando se le solicite.

      [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. Cree una nueva cartera de OKV para almacenar solo la MEK de PDB obtenida en el paso #1.
    1. Obtenga el nombre de cartera de OKV de la PDB de origen con el formato EXA_DB_NAME_DBID_PDB_NAME_WL.

      Por ejemplo, el nombre de la cartera sería 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. Cree una nueva cartera mediante la interfaz de línea de comandos de REST de 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. Compruebe el estado hasta que esté activo.
      [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. Agregue los permisos Leer y modificar y Gestionar cartera de los puntos finales de OKV de la base de datos origen a la cartera de OKV creada en el paso 3.
    1. Obtenga los nombres de punto final de la base de datos origen. Una por VM.

      Normalmente, la estructura tiene el formato EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Por ejemplo, el nombre de punto final del nodo 1 sería 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. Agregue los permisos Leer y modificar y Gestionar cartera mediante la interfaz de línea de comandos de REST de 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. Almacene MEK de la PDB de origen obtenida en el paso #1 en la cartera de OKV creada en el paso #3.
    1. Agregue MEK (uuid obtenido en el paso #1.b) mediante la interfaz de línea de comandos de REST de OKV.

      Introduzca la contraseña de punto final de OKV de origen cuando se le solicite.

      [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 la cartera REST de OKV en la base de datos de destino.
    1. Cree el directorio okv_rest_cli si no existe.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
    2. Descargue y extraiga okvrestclipackage.zip.

      Seleccione ALL cuando se le solicite la sustitución.

      [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 los archivos okvrestcli.ini y okvrestcli_logging.properties de la siguiente manera.
      [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. Cree el directorio 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. Cree la cartera REST de OKV mediante la interfaz de línea de comandos REST de OKV.

      Introduzca la contraseña de REST de OKV de destino cuando se le solicite.

      [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. Agregue los permisos Solo lectura y Gestionar cartera de los puntos finales de OKV de la base de datos destino a la cartera de OKV de la PDB de origen creada en el paso 3.
    1. Obtenga los nombres de punto final de la base de datos destino. Una por VM.

      Normalmente, la estructura tiene el formato EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Por ejemplo, el nombre de punto final del nodo 1 sería 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. Agregue permisos Solo lectura y Gestionar cartera mediante la interfaz de línea de comandos de REST de 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 la PDB.
    1. Ejecute dbaascli para clonar la PDB.

      Introduzca la contraseña de usuario SYS de origen cuando se le solicite.

      [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. Suprima la cartera de OKV de PDB de origen creada en el paso #3 mediante la interfaz de línea de comandos de REST de 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. Suprima la cartera REST de OKV creada en el paso 2.
    1. Suprima los archivos de cartera del directorio dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#
  11. Suprima la cartera REST de OKV creada en el paso 6.
    1. Suprima los archivos de cartera del directorio dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#

La CDB de origen y la CDB de destino están cifradas con MEK en un servidor OKV diferente

  1. Obtenga el ID de objeto de OKV de la PDB de origen.
    1. Obtenga la clave de cifrado más reciente de la PDB de origen mediante 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. Obtenga el ID de objeto de OKV (uuid) de la MEK más reciente obtenida del paso anterior.

      Introduzca la contraseña del punto final de OKV cuando se le solicite y pulse la tecla Intro del 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 la cartera REST de OKV en la base de datos origen.
    1. Cree el directorio okv_rest_cli si no existe.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<source_db_name>/okv_rest_cli
    2. Descargue y extraiga okvrestclipackage.zip.

      Seleccione ALL si se le solicita la sustitución.

      [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 los archivos okvrestcli.ini y okvrestcli_logging.properties de la siguiente manera.
      [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. Cree el directorio 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. Cree la cartera REST de OKV mediante la interfaz de línea de comandos REST de OKV.

      Introduzca la contraseña de REST de OKV de origen cuando se le solicite.

      [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. Cree una nueva cartera de OKV para almacenar solo la MEK de PDB obtenida en el paso #1.
    1. Cree una nueva cartera mediante la interfaz de línea de comandos de REST de OKV. Nombre 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. Compruebe el estado hasta que esté activo.
      [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. Agregue los permisos Leer y modificar y Gestionar cartera de los puntos finales de OKV de la base de datos origen a la cartera de OKV creada en el paso 3.
    1. Obtenga los nombres de punto final de la base de datos origen. Una por VM.

      Normalmente, la estructura tiene el formato EXA_DB_UNIQUE_NAME_DBID_SID_EP.

      Por ejemplo, el nombre de punto final del nodo 1 sería 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. Agregue permisos Leer y modificar y Gestionar cartera mediante la interfaz de línea de comandos de REST de 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. Almacene MEK de la PDB de origen obtenida en el paso #1 en la cartera de OKV creada en el paso #3.
    1. Agregue MEK (uuid obtenido en el paso #1.b) mediante la interfaz de línea de comandos de REST de OKV.

      Introduzca la contraseña de punto final de OKV de origen cuando se le solicite.

      [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. Descargue la cartera de OKV creada en el paso 3 desde el servidor de OKV al sistema de archivos local.
    1. Cree un nuevo directorio con permisos para el usuario oracle.

      Este directorio almacenará la cartera que contendrá solo la MEK de la PDB de origen.

      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ mkdir /home/oracle/<source_pdb_wallet_dir>
      [oracle@testserver oracle]$
    2. Descargue la cartera de OKV creada en el paso #3 en el directorio creado en el paso #6.a mediante okvutil.

      Solicitará dos veces una contraseña para cifrar la cartera local. Utilice la misma contraseña que la contraseña de punto final de origen. Además, introduzca la contraseña de punto final de origen cuando se le solicite.

      [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. Comprima el directorio de cartera.
      [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. Suprima la cartera de OKV de PDB de origen creada en el paso #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. Suprima la cartera REST de OKV creada en el paso #1.
    1. Suprima los archivos de cartera del directorio 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 la cartera de PDB de origen descargada en el sistema de archivos focal en el paso 6 en la VM de cluster de destino.
  10. Suprima la cartera de PDB de origen del sistema de archivos local de origen creado en el paso #6.
    1. Suprima el directorio de cartera.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ rm -rf /home/oracle/<source_pdb_wallet_dir>
      [oracle@testserver oracle]$
    2. Suprima el archivo zip de la cartera.
      [root@testserver oracle]# su oracle
      [oracle@testserver oracle]$ rm -f /home/oracle/<source_pdb_wallet_dir>.zip
      [oracle@testserver oracle]$
  11. Instale la cartera REST de OKV en la base de datos de destino.
    1. Cree el directorio okv_rest_cli si no existe.
      [root@testserver newdb1]# su oracle
      [oracle@testserver oracle]$ mkdir /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli
    2. Descargue y extraiga okvrestclipackage.zip.

      Seleccione ALL cuando se le solicite la sustitución.

      [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 los archivos okvrestcli.ini y okvrestcli_logging.properties de la siguiente manera.
      [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. Cree el directorio 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. Cree la cartera REST de OKV mediante la interfaz de línea de comandos REST de OKV.

      Introduzca la contraseña de REST de OKV de destino cuando se le solicite.

      [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. Cargue la cartera de PDB de origen creada en el paso #6 y copiada en la VM de cluster de destino en el paso #9.
    1. Descomprima la cartera de PDB de origen.
      [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. Obtenga el nombre de cartera de OKV de la base de datos de destino con el formato EXA_DB_NAME_DBID_WL.

      Por ejemplo, el nombre de la cartera sería 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. Cargue la cartera de PDB de origen en la cartera de OKV de destino mediante okvutil.

      Introduzca la contraseña de la cartera de PDB de origen cuando se le solicite. Utilice la misma contraseña que la contraseña de punto final de origen.

      Además, introduzca la contraseña del punto final de destino cuando se le solicite.

      [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 la PDB.
    1. Ejecute dbaascli para clonar la 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. Suprima la cartera REST de OKV creada en el paso #1.
    1. Suprima los archivos de cartera del directorio dbaas_acfs.
      [root@testserver oracle]# rm -f /var/opt/oracle/dbaas_acfs/<target_db_name>/okv_rest_cli/client_wallet/*
      [root@testserver oracle]#

Cómo actualizar el directorio raíz de Oracle Key Vault (OKV) en ExaDB-C@C

Después de migrar el tipo de cifrado de las claves gestionadas por Oracle a las claves gestionadas por el cliente (Oracle Key Vault), el directorio raíz de OKV en DomUs permanece con la misma versión utilizada para la migración.

En caso de que se actualice el servidor OKV, la funcionalidad seguirá funcionando debido a la compatibilidad con versiones anteriores. Sin embargo, es posible que el cliente desee obtener las nuevas funciones para las herramientas del cliente. En ese caso, actualice el directorio raíz de OKV y la biblioteca PKCS#11.

  1. Validar que la versión actual del directorio raíz de OKV es menor que la versión del servidor de OKV.
    1. Para obtener la versión del directorio raíz de OKV, ejecute okvutil. En este caso, el valor es 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. Para obtener la versión del servidor de OKV, inicie sesión en la consola del servidor de OKV mediante el explorador. En este caso, la versión es la 21.7.0.0.0.
  2. Instale la cartera REST de OKV en la base de datos origen. Este paso se debe realizar en un solo nodo.
    1. Si no existe, cree el directorio okv_rest_cli.
      # su oracle
      $ mkdir /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli
    2. Descargue y extraiga okvrestclipackage.zip. Si se le solicita la sustitución, seleccione 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 con la siguiente información.
      $ 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. Cree el directorio client_wallet.
      $ mkdir /var/opt/oracle/dbaas_acfs/<dbname>/okv_rest_cli/client_wallet
    5. Cree una cartera REST de OKV mediante la CLI de REST de OKV. Solicitará la contraseña REST de OKV de origen.
      $ 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 los directorios principales de OKV en DomU 1.
    1. Cambie el nombre del directorio raíz de OKV como la versión actual del directorio raíz de OKV.
      $ mv /u02/app/oracle/admin/<dbname>/okv_home/okv /u02/app/oracle/admin/<dbname>/okv_home/okv<current_okv_home_version>
    2. Cree un nuevo directorio raíz de OKV como la versión del servidor de OKV.
      $ mkdir /u02/app/oracle/admin/<dbname>/okv_home/okv<okv_server_version>
    3. Cree un enlace simbólico del nombre normal del directorio raíz de OKV al directorio creado en el paso 3.b.
      $ ln -s /u02/app/oracle/admin/<dbname>/okv_home/okv<okv_server_version> /u02/app/oracle/admin/<dbname>/okv_home/okv
  4. Actualice el directorio raíz de OKV en DomU 1.
    1. Obtenga el nombre del punto final de OKV mediante okvutil. Se solicitará la contraseña de punto final de OKV (contraseña TDE). La entrada es la llamada "Plantilla".

      Tenga en cuenta que el nombre de host debe ser el mismo que el nombre de host DomU actual. (Por lo general, se denomina EXA_<DBNAME>_<resourceID>_<CURRENT_DOMU_HOST_NAME>_EP. <resourceID> se puede obtener enumerando la base de datos mediante el 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. Vuelva a inscribir el punto final en 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. Aprovisione el punto final en DomU 1. Solicitará la contraseña del punto final de OKV (contraseña 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. La validación de la actualización del directorio raíz de OKV se realizó correctamente.
    1. Valide que el punto final de OKV muestre las entradas de la cartera de OKV. Solicitará la contraseña del punto final de OKV (contraseña 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. Para obtener la versión del directorio raíz de OKV, ejecute okvutil. La versión debe ser la misma que la versión del servidor de OKV. En este caso, el valor debe 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 los pasos del 3 al 5 en el resto de DomUs.
  7. Repita los pasos del 1 al 6 para cualquier otra base de datos que necesite actualizar su directorio raíz de OKV.
  8. Pare las instancias DomU 1 de todas las bases de datos con TDE basado en OKV. Esto se puede hacer a través de la consola, el comando srvctl o SQL* Plus.
  9. Ejecute root.sh desde el directorio raíz de OKV seleccionado. Por lo general, debería ser el que tenga la nueva versión de OKV. Se solicitará que se sustituya la biblioteca PKCS11. Se debe seleccionar YES.
    # /u02/app/oracle/admin/<dbname>/okv_home/okv/bin/root.sh
  10. Inicie las instancias DomU 1 de todas las bases de datos con TDE basado en OKV. Esto se puede hacer a través de la consola, el comando srvctl o SQL* Plus.
  11. Repita los pasos del 8 al 10 en el resto de DomUs.