Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse para obtener una cuenta gratuita, consulte Introducción a la cuenta gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar la práctica, sustituya estos valores por otros específicos de su entorno en la nube.
Implantación del Servicio Oracle True Cache con Oracle Database 23ai
Introducción
Oracle True Cache es una caché SQL y clave-valor (objeto o JSON) en memoria, consistente y gestionada automáticamente para Oracle Database.
Oracle True Cache es una caché en memoria de solo lectura delante de una instancia de Oracle Database. Al igual que Oracle Active Data Guard, Oracle True Cache es una réplica de solo lectura totalmente funcional de la base de datos primaria, excepto que en su mayoría no tiene disco.
Las aplicaciones modernas a menudo requieren un gran número de conexiones y un acceso rápido y de baja latencia a los datos. Un enfoque popular es colocar las cachés delante de la base de datos porque las aplicaciones suelen realizar muchas más lecturas que actualizaciones y pueden leer desde la caché sin afectar al rendimiento de la base de datos. Por ejemplo, un sistema de reservas de aerolíneas lee datos con frecuencia mientras las personas compran vuelos, y está bien si los datos no son los más actuales en comparación con lo que hay en la base de datos. La aplicación solo necesita acceder a los datos más actuales cuando alguien reserva un vuelo.
A diferencia de las cachés convencionales, Oracle True Cache mantiene automáticamente los datos a los que se accede con más frecuencia en la caché y mantiene la caché consistente con la base de datos primaria, otros objetos de la misma caché y otras cachés. Almacena en caché todos los objetos y tipos de dato de Oracle Database, incluido JSON.
Puesto que Oracle True Cache implementa políticas de seguridad de Oracle Database, puede controlar el acceso a la caché. Esto le permite almacenar en caché datos confidenciales, como información personal privada, que normalmente no puede almacenar en caché.
Detalles de Entorno:
-
Base de Datos Primaria:
-
Versión de Base de Datos:
23.5.0.24
-
Sistema operativo: sistema de base de datos de máquina virtual (VM).
-
Instancia de Oracle True Cache: 1 nodo de Oracle Database Configuration Assistant (DBCA) con la versión de software de base de datos Oracle Database 23ai (NON-ASM).
-
Objetivos
- Implante el servicio Oracle True Cache y redirija las solicitudes de aplicación (selección) de solo lectura a la instancia de Oracle True Cache.
Requisitos
-
Configure una ruta de red para acceder a la base de datos principal (origen) con una cadena de conexión sencilla (EZConnect) desde el nodo de Oracle True Cache.
-
Asegúrese de que se está ejecutando una base de datos primaria en el nodo primario en modo archive log (ARCHIVELOG).
Tarea 1: Copiar archivo de contraseña y cartera de cifrado de datos transparente (TDE)
Copie el archivo de contraseñas y, opcionalmente, la cartera de TDE de la base de datos primaria en el nodo de Oracle True Cache. Puede utilizar alguno de los siguientes métodos:
-
Copie manualmente el archivo de contraseñas de la base de datos primaria (y la cartera de TDE opcional) en cualquier ubicación del nodo de Oracle True Cache.
O bien:
-
Ejecute el comando DBCA en la base de datos primaria para empaquetar el archivo de contraseñas (y la cartera de TDE opcional) en un archivo BLOB de configuración. A continuación, copie el archivo en el nodo de Oracle True Cache y asegúrese de que el archivo es propiedad del usuario del directorio raíz de Oracle.
Utilice el siguiente comando para preparar el archivo BLOB de configuración en la base de datos primaria.
mkdir -p /tmp/passconfig $ORACLE_HOME/bin/dbca -configureDatabase -prepareTrueCacheConfigFile -sourceDB cdb1db1 -trueCacheBlobLocation /tmp/passconfig -silent
Salida de ejemplo:
mkdir -p /tmp/passconfig [oracle@proddb ~]$ $ORACLE_HOME/bin/dbca -configureDatabase -prepareTrueCacheConfigFile -sourceDB DB1218 -trueCacheBlobLocation /tmp/passconfig -silent Enter password for the TDE wallet: Session ID of the current execution is: 1 Log file location: /u01/app/oracle/cfgtoollogs/dbca/DB1218_xts_iad/trace.log_2024-12-18_12-47-36PM_42681 ----------------- Running Initialization job Completed Initialization job 33% complete ----------------- Running Validate_dataguard job Skipping. Job is detected as not applicable. 40% complete ----------------- Running Validate_db_version job Completed Validate_db_version job 47% complete ----------------- Running Validate_tde_credentials job Completed Validate_tde_credentials job 53% complete ----------------- Running Validate_true_cache_instance job Completed Validate_true_cache_instance job 60% complete ----------------- Running Validate_archive_log_mode job Completed Validate_archive_log_mode job 67% complete ----------------- Running Prepare_blob job Completed Prepare_blob job 100% complete ---------- PLUGIN NOTES ---------- Successfully created blob file: /tmp/passconfig/blob_2024-12-18_12-47-36PM.tar.gz ---------- END OF PLUGIN NOTES ---------- Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/DB1218_xts_iad/DB1218_xts_iad0.log" for further details. [oracle@proddb ~]$
Copie el archivo BLOB en el nodo de instancia de Oracle True Cache.
scp -i <private_key> <blob_file_name> opc@<true cache instance ip>:/tmp
Tarea 2: Borrado de Base de Datos No Necesaria en el Nodo de Oracle True Cache
En el nodo Oracle True Cache, borre la base de datos existente en los hosts de Oracle True Cache si la base de datos ya existe y no es necesaria.
sqlplus / as sysdba
SQL> shut immediate
SQL> startup mount restrict
SQL> drop database;
Tarea 3: Probar la cadena de conexión de la base de datos primaria desde el host de True Cache
Ejecute el siguiente comando para probar la cadena de conexión de la base de datos primaria desde el host de Oracle True Cache.
sqlplus sys/<sys_password>@<primary_database_hostname>:1521/<primary_database_service> as sysdba
Tarea 4: Configuración e Inicio de Oracle True Cache
En el nodo de Oracle True Cache, ejecute el comando -createTrueCache
para completar la configuración de Oracle True Cache e iniciar Oracle True Cache.
$ORACLE_HOME/bin/dbca -createTrueCache -gdbName true_cache_global_name -sid true_cache_sid -sourceDBConnectionString primary_db_easy_connect_string -trueCacheBlobFromSourceDB true_cache_config_blob_path -sgaTargetInMB sga_memory_size -pgaAggregateTargetInMB pga_memory_size -tdeWalletLoginType AUTO_LOGIN -listeners listener_name -silent
Salida de ejemplo:
[oracle@test1 ~]$ $ORACLE_HOME/bin/dbca -createTrueCache -gdbName test1 -sid test1 -sourceDBConnectionString proddb.sub12101216100.dbnet.oraclevcn.com.:1521/DB1218_xts_iad.sub12101216100.dbnet.oraclevcn.com -trueCacheBlobFromSourceDB /home/oracle/blob_2024-12-18_12-47-36PM.tar.gz -sgaTargetInMB 25000 -pgaAggregateTargetInMB 12000 -initParams db_create_file_dest=/u02/app/oracle/oradata -listeners LISTENER -silent
Enter Remote DB SYS user password:
Enter password for the source database TDE wallet:
Session ID of the current execution is: 1
Log file location: /u01/app/oracle/cfgtoollogs/dbca/test1/trace.log_2024-12-18_01-01-33PM_61716
-----------------
Running Extract_password_file_from_blob_file job
Completed Extract_password_file_from_blob_file job
25% complete
-----------------
Running Create_static_listener job
Skipping. Job is detected as not applicable.
38% complete
-----------------
Running Register_listener job
Completed Register_listener job
50% complete
-----------------
Running Extract_tde_wallet_from_blob_file job
Completed Extract_tde_wallet_from_blob_file job
54% complete
-----------------
Running Setup_required_directories job
Skipping. Job is detected as not applicable.
57% complete
-----------------
Running Create_pfile job
Completed Create_pfile job
61% complete
-----------------
Running Start_nomount_instance job
Completed Start_nomount_instance job
64% complete
-----------------
Running Create_TDE_wallet job
Completed Create_TDE_wallet job
68% complete
-----------------
Running Create_truecache_instance job
Completed Create_truecache_instance job
71% complete
-----------------
Running Add_oratab_entry job
Completed Add_oratab_entry job
75% complete
-----------------
Running Reopen_wallet job
Completed Reopen_wallet job
100% complete
---------- PLUGIN NOTES ----------
Successfully created True Cache.
In order to complete the operation,configure the True Cache database application services from the primary database.
---------- END OF PLUGIN NOTES ----------
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/test1/test1.log" for further details.
[oracle@test1 ~]$
Tarea 5: Creación y Verificación del Servicio de Aplicación de Nivel de Base de Datos de Conexión (PDB) para Oracle True Cache
Cree e inicie un servicio de aplicación de base de datos primaria (a nivel de PDB) para utilizarlo con el servicio Oracle True Cache y verifique que el servicio se está ejecutando.
Para bases de datos primarias de instancia única, utilice el paquete PL/SQL DBMS_SERVICE
. Para los servicios específicos de una PDB, conéctese a la PDB específica o defina el contenedor de PDB correcto en la sesión antes de iniciar el servicio mediante DBMS_SERVICE
.
Salida de ejemplo:
alter session set container=<PDB_NAME>;
show pdbs
BEGIN
DBMS_SERVICE.CREATE_SERVICE('SALES', 'SALES');
DBMS_SERVICE.START_SERVICE('SALES');
END;
/
PL/SQL procedure successfully completed.
Tarea 6: Configuración de Oracle True Cache en la Base de Datos Primaria
Ejecute el comando dbca -configureDatabase
con el parámetro -configureTrueCacheInstanceService
para configurar Oracle True Cache en la base de datos primaria. De esta forma se configura el servicio de aplicación de base de datos Oracle True Cache en la base de datos primaria y, a continuación, se inicia el servicio Oracle True Cache en Oracle True Cache.
Ejecute el siguiente comando para cada servicio de aplicación de base de datos Oracle True Cache.
$ORACLE_HOME/bin/dbca -configureDatabase -configureTrueCacheInstanceService -sourceDB primary_db_sid_or_db_unique_name -trueCacheConnectString true_cache_easy_connect_string -trueCacheServiceName true_cache_service_name -serviceName primary_db_service_name -pdbName primary_pdb_name -silent
Salida de ejemplo:
[oracle@proddb ~]$ $ORACLE_HOME/bin/dbca -configureDatabase -configureTrueCacheInstanceService -sourceDB DB1218 -trueCacheConnectString test1.sub12101216100.dbnet.oraclevcn.com:1521/test1.sub12101216100.dbnet.oraclevcn.com -trueCacheServiceName sales_tc1 -serviceName sales -pdbName DB1218_PDB1 -silent
Session ID of the current execution is: 7
Log file location: /u01/app/oracle/cfgtoollogs/dbca/DB1218/trace.log_2024-12-18_02-39-50PM_60536
-----------------
Running Initialization job
Enter SYS user password:
Completed Initialization job
33% complete
-----------------
Running Validate_true_cache_instance_connection job
Completed Validate_true_cache_instance_connection job
37% complete
-----------------
Running Validate_dataguard job
Skipping. Job is detected as not applicable.
41% complete
-----------------
Running Validate_db_version job
Completed Validate_db_version job
44% complete
-----------------
Running Validate_true_cache_instance job
Completed Validate_true_cache_instance job
48% complete
-----------------
Running Validate_archive_log_mode job
Completed Validate_archive_log_mode job
52% complete
-----------------
Running Validate_pdb job
Completed Validate_pdb job
56% complete
-----------------
Running Validate_primary_db_service job
Completed Validate_primary_db_service job
59% complete
-----------------
Running Validate_true_cache_db_service job
Completed Validate_true_cache_db_service job
63% complete
-----------------
Running Validate_true_cache_instance_open_mode job
Completed Validate_true_cache_instance_open_mode job
67% complete
-----------------
Running Create_truecache_service job
Completed Create_truecache_service job
73% complete
-----------------
Running Add_network_entry job
Completed Add_network_entry job
80% complete
-----------------
Running Modify_primary_service job
Completed Modify_primary_service job
87% complete
-----------------
Running Start_truecache_service job
Completed Start_truecache_service job
93% complete
-----------------
Running Enable_service_registration job
Completed Enable_service_registration job
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/DB1218/DB12183.log" for further details.
[oracle@proddb ~]$
Tarea 7: Iniciar el servicio en el nodo de Oracle True Cache
Ejecute el siguiente comando para iniciar el servicio en el nodo de instancia de Oracle True Cache.
alter session set container=<PDB_NAME>;
show pdbs
BEGIN
DBMS_SERVICE.START_SERVICE('sales_tc1');
END;
/
Tarea 8: Actualización de Parámetros en la Base de Datos Primaria
-
Actualice los siguientes parámetros en el archivo
listener.ora
de la base de datos primaria.VALID_NODE_CHECKING_REGISTRATION_LISTENER = OFF REGISTRATION_INVITED_NODES_LISTENER=(<true_cache_instance_ip>)
-
Reinicie o vuelva a cargar el listener en el servidor de la base de datos primaria.
Tarea 9: Verificación de los Servicios de Oracle True Cache en el Listener de Base de Datos Primaria
Ejecute el siguiente comando para verificar que los servicios de Oracle True Cache (sales_tc
) se están ejecutando en el listener de la base de datos primaria.
SQL> select name,open_mode,database_role from gv$database;
NAME OPEN_MODE DATABASE_ROLE
------------------------------ -------------------- ----------------
DB1218 READ WRITE PRIMARY
SQL> select * from v$true_cache;
MY_DG_ID REMOTE_DG_ID DEST_ID TRUE_CACHE PRIMARY_NAME STATUS REMOTE_VERSION CON_ID
---------- ------------ ---------- ---------- -------------------- ---------- ------------------ ----------
4079357444 576841986 2 test1 DB1218_xts_iad HEALTHY 0.0.0.0.0 0
4079357444 2149296628 3 test2 DB1218_xts_iad HEALTHY 0.0.0.0.0 0
SQL> SELECT name, true_cache_service FROM DBA_SERVICES WHERE name='sales';
NAME TRUE_CACHE_SERVICE
------------------------------ ------------------------------
sales sales_tc2
[oracle@proddb ~]$ lsnrctl status LISTENER|grep -i sales_tc1
Service "sales_tc1.sub12101216100.dbnet.oraclevcn.com" has 1 instance(s).
[oracle@proddb ~]$
Tarea 10: Verificación de los Servicios de True Cache en el Nodo de Instancia de Oracle True Cache
Ejecute el siguiente comando para verificar que los servicios de Oracle True Cache (sales_tc
) se están ejecutando en el nodo de instancia de caché de Oracle True.
SQL> select name,open_mode,database_role from gv$database;
NAME OPEN_MODE DATABASE_ROLE
--------- -------------------- ----------------
DB1218 READ ONLY WITH APPLY TRUE CACHE
SQL> select * from v$true_cache;
MY_DG_ID REMOTE_DG_ID DEST_ID TRUE_CACHE PRIMARY_NAME STATUS REMOTE_VERSION CON_ID
---------- ------------ ---------- ---------- -------------------- ---------- ------------------ ----------
576841986 4079357444 0 test1 DB1218_xts_iad HEALTHY 23.0.0.0.0 0
[oracle@test1 ~]$ lsnrctl status LISTENER|grep sales_tc
Service "sales_tc1.sub12101216100.dbnet.oraclevcn.com" has 1 instance(s).
[oracle@test1 ~]$
Tarea 11: Prueba del Servicio Oracle True Cache
Agregue la siguiente entrada de sustrato de red transparente (TNS) a la aplicación.
TEST_TC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test1.sub12101216100.dbnet.oraclevcn.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sales_tc1.sub12101216100.dbnet.oraclevcn.com)
)
)
sqlplus sys/<sys_password>@TEST_TC as sysdba
select name,open_mode,database_role from v$database;
show pdbs
Enlaces relacionados
Agradecimientos
- Autores: Pavan Yennampelli (ingeniero sénior de servicios en la nube de Oracle North America - NACIE), Sravan Kumar K B (ingeniero sénior de servicios en la nube de Oracle North America - NACIE), Bandari Chandu (ingeniero sénior de servicios en la nube de Oracle North America - NACIE), Anupam Abhishek (ingeniero sénior de servicios en la nube de Oracle North America - NACIE)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visita education.oracle.com/learning-explorer para convertirte en un Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Implement Oracle True Cache Service with Oracle Database 23ai
G24560-01
January 2025