Uso de enrutamiento de sentencias eficiente activando ProxySQL en Autonomous Database
ProxySQL permite el acceso unificado a varias bases de datos autónomas mediante sentencias de enrutamiento para DML y consultas, y elimina la necesidad de consolidar físicamente todos los datos en una única base de datos.
Temas
- Acerca del enrutamiento de sentencias eficiente con ProxySQL en Autonomous Database
ProxySQL en Autonomous Database permite utilizar varias instancias de Autonomous Database y facilita el acceso y el análisis de datos como si se hubieran almacenado en un solo lugar. - Activar enrutamiento de sentencias y definir asignación de esquemas
En esta sección se explica cómo configurar ProxySQL para el enrutamiento automático de sentencias de un enrutador principal a una o más instancias de base de datos de destino. - Envío de sentencias mediante ProxySQL
Para aprovechar el enrutamiento automático de sentencias, debe conectarse a la instancia de enrutador gestionada por ProxySQL y enviarlas a ella. - Parada del enrutamiento de sentencias a una instancia de destino
Realice estos pasos en una instancia de Autonomous Database de destino para impedir que esta acepte sentencias enrutadas desde el enrutador ProxySQL. - Eliminación de esquema o asignación de objeto de la instancia de enrutador
Proporciona los pasos para eliminar una asignación específica de la base de datos de enrutador gestionada por ProxySQL. - Desactivar enrutamiento de sentencias
Muestra los pasos para el enrutamiento automático de sentencias desactivando ProxySQL. - Enrutamiento automático de sentencias con ProxySQL notas
Muestra las limitaciones y las notas importantes sobre el enrutamiento automático de sentencias cuando ProxySQL está activado.
Tema principal: Uso y gestión de pools flexibles en Autonomous Database
Acerca del enrutamiento eficiente de sentencias con ProxySQL en Autonomous Database
ProxySQL en Autonomous Database permite utilizar varias instancias de Autonomous Database y facilita el acceso y el análisis de datos como si se hubieran almacenado en un solo lugar.
Puede utilizar ProxySQL cuando necesite trabajar con una configuración grande que implique varias bases de datos autónomas. ProxySQL proporciona acceso unificado a diferentes bases de datos y elimina la necesidad de mover físicamente los datos a un solo lugar.
Al activar ProxySQL, designa una instancia de Autonomous Database como instancia de enrutador y una o más instancias de Autonomous Database son instancias de destino. La instancia de enrutador incluye una tabla de enrutamiento que determina cómo se distribuye (asigna) una sentencia a una o más instancias de destino. Una instancia de destino incluye una tabla de aceptación. La tabla de aceptación es similar a la tabla de enrutamiento y contiene entradas que especifican que la instancia acepta redireccionamientos de sentencias del enrutador.
Según el método de enrutamiento que seleccione, las sentencias se asignan automáticamente desde la instancia de enrutador a una o más instancias de destino. Una aplicación se conecta a la instancia de enrutador y se ejecuta en la instancia de enrutador, y Autonomous Database redirige las sentencias a una o más instancias de destino.
A continuación se muestran algunas de las ventajas de activar ProxySQL, en comparación con el uso de una única instancia de Autonomous Database muy grande:
-
ProxySQL proporciona autonomía e independencia de la base de datos para operaciones como la gestión del ciclo de vida y las tareas de administración. Por ejemplo, mediante ProxySQL, las operaciones de base de datos, incluidas la copia de seguridad y la restauración, y funciones como Autonomous Data Guard se gestionan de forma independiente en cada instancia de Autonomous Database.
-
ProxySQL permite gestionar de forma eficaz bases de datos muy grandes dividiendo los datos entre varias instancias de Autonomous Database.
Hay varios términos que se deben conocer al trabajar con ProxySQL:
Instancia de enrutador: al activar ProxySQL, se designa una instancia de enrutador. Una tabla de direccionamiento determina cómo se distribuye (asigna) una sentencia a una o más instancias de destino. Según el método de enrutamiento especificado, las sentencias de la instancia de enrutador se asignan automáticamente a una o más instancias de destino.
Instancia de destino: la instancia de destino se designa al crear una asignación en la instancia de enrutador. Se agrega una tabla de aceptación en cada instancia de destino.
Tabla de enrutamiento: una tabla de enrutamiento contiene entradas de asignación de destino que especifican la instancia a la que se direccionan automáticamente las sentencias.
Tabla de aceptación: una tabla de aceptación contiene entradas que especifican que la instancia acepta redireccionamientos de sentencias desde el enrutador.
Requisitos para utilizar ProxySQL
Los siguientes son los requisitos de ProxySQL:
-
La activación de ProxySQL solo está soportada para las instancias de Autonomous Database que están en un pool elástico. La instancia del enrutador y todas las instancias de destino deben ser miembros del mismo pool elástico.
-
La instancia del enrutador y todas las instancias de destino deben estar en la misma región.
-
Los metadatos de los objetos que está enrutando deben coincidir en las instancias de enrutador y destino. Es responsabilidad del diseñador de aplicaciones que los metadatos de los objetos presentes en una instancia de destino también estén presentes en la instancia del enrutador. Por ejemplo, si tiene una tabla denominada
EMPLOYEES
en la instancia de destino, también debe tener una tabla con metadatos coincidentes denominadosEMPLOYEES
en la instancia de enrutador. La tabla de la instancia del enrutador no tiene que estar vacía (solo metadatos).
Recomendación para activar ProxySQL
Las instancias que agregue como enrutador y como destinos pueden ser de cualquier tipo de carga de trabajo de Autonomous Database. Si hay entradas en la tabla de enrutamiento (asignación), las sentencias de los objetos especificados en esas entradas se direccionan a las instancias de destino correspondientes, independientemente del tipo de carga de trabajo del destino. Oracle recomienda que todas las instancias de base de datos theAutonomous utilicen el tipo de carga de trabajo del almacén de datos.
Enrutamiento automático de sentencias con ProxySQL activado
Con ProxySQL puede distribuir sentencias entre destinos mediante cualquiera de los métodos de enrutamiento soportados.
Independientemente del método de enrutamiento (asignación) que decida utilizar, es responsabilidad del diseñador de esquemas de aplicación asegurarse de que los metadatos de los objetos colocados en una instancia de destino también estén disponibles en la instancia de enrutador. Por ejemplo, si tiene una tabla denominada
EMPLOYEES
en la instancia de destino, también debe tener una tabla con metadatos coincidentes denominados EMPLOYEES
en la instancia de enrutador. La tabla de la instancia del enrutador no tiene que estar vacía.
-
Enrutamiento de nivel de esquema: todos los objetos de un esquema se asignan a una única instancia de destino. Puede asignar varios esquemas a una única instancia de destino. Sin embargo, las sentencias de un esquema no se pueden asignar a varias instancias de destino, lo que significa que no se puede utilizar el mismo esquema para el enrutamiento de esquemas y objetos.
Para especificar el enrutamiento de nivel de esquema, llame al procedimiento
DBMS_PROXY_SQL.ADD_MAPPING
con el parámetroobject_name
definido en el valor "*".
Descripción de la ilustración proxysql-schema.png
En este ejemplo, los metadatos de los objetos del esquema A están presentes tanto en la instancia de destino de Autonomous Database 1 como en la instancia de enrutador, y los metadatos de los objetos del esquema B están presentes tanto en la instancia de destino de Autonomous Database 2 como en la instancia de enrutador, etc.
-
Enrutamiento de nivel de objeto: los objetos de un esquema se asignan a varias instancias de destino.
Para especificar el enrutamiento de nivel de objeto, llame al procedimiento
DBMS_PROXY_SQL.ADD_MAPPING
con el parámetroobject_name
definido en un nombre de tabla.
Descripción de la ilustración proxysql-object.png
En este ejemplo, los metadatos de la tabla A están presentes en el destino 1 y en la instancia del enrutador, y los metadatos de la tabla B están presentes en el destino 2 y en la instancia del enrutador, etc.
-
Enrutamiento híbrido: los objetos de un esquema se direccionan mediante una combinación de enrutamiento a nivel de esquema y enrutamiento a nivel de objeto.
Descripción de la ilustración proxysql-hybrid.png
En este ejemplo, los metadatos para el esquema A están presentes tanto en la instancia de destino de Autonomous Database 1 como en la instancia de enrutador, y los metadatos para la tabla B (en el esquema B) están presentes tanto en la instancia de destino de Autonomous Database 2 como en la instancia de enrutador, etc.
Asignación de servicios con enrutamiento automático de extractos cuando ProxySQL está activado
Cuando la tabla de enrutamiento indica una asignación a una base de datos de destino, se utiliza el mismo servicio que está conectado a la base de datos del enrutador para el acceso a los datos en la base de datos de destino.
Por ejemplo, si una sesión está conectada al servicio HIGH en la instancia del enrutador, una sentencia o fragmento de sentencia enrutado a una instancia de destino también utiliza el servicio HIGH. Del mismo modo, si una sesión está conectada al servicio MEDIUM en la instancia del enrutador, una sentencia enrutada a una instancia de destino utiliza el servicio MEDIUM.
Si el servicio utilizado para conectarse a la instancia del enrutador no está disponible en una instancia de destino, la sentencia o el fragmento de sentencia enrutados a la instancia de destino utiliza el servicio MEDIUM (los servicios disponibles dependen del tipo de carga de trabajo de Autonomous Database).
Activar enrutamiento de sentencias y definir asignación de esquemas
En esta sección se explica cómo configurar ProxySQL para el enrutamiento automático de sentencias de un enrutador principal a una o más instancias de base de datos de destino.
- Activación del enrutamiento de sentencias y definición de la asignación de objetos del enrutador a las instancias de destino
Para configurar el enrutamiento de sentencias, active ProxySQL en la instancia del enrutador y defina el esquema u objetos cuyas sentencias se asignen (envíen) a las bases de datos de destino. - Aceptación de enrutamiento de sentencias en instancias de destino
Debe aceptar el enrutamiento de sentencias en una instancia de destino para permitir la asignación desde la instancia de enrutador.
Activar enrutamiento de extractos y definir asignación de objetos de enrutador a instancias de destino
Para configurar el enrutamiento de sentencias, active ProxySQL en la instancia del enrutador y defina el esquema u objetos cuyas sentencias se asignan (envían) a las bases de datos de destino.
A continuación se muestran los requisitos para activar el enrutamiento automático de sentencias:
-
Cree la instancia de Autonomous Database que desea utilizar para la instancia de enrutador o identifique una instancia de Autonomous Database existente como instancia de enrutador.
-
Cree las instancias de destino o identifique las instancias de destino a partir de las instancias de Autonomous Database existentes.
-
Asegúrese de que la instancia del enrutador y cualquier instancia de destino en la que redirija consultas tengan metadatos coincidentes para los objetos que está asignando del enrutador a un destino.
Independientemente del método de enrutamiento (asignación) que decida utilizar, es responsabilidad del diseñador de esquemas de aplicación asegurarse de que los metadatos de los objetos colocados en una instancia de destino también estén disponibles en la instancia del enrutador. Por ejemplo, si tiene una tabla denominada
EMPLOYEES
en la instancia de destino, también debe tener una tabla con metadatos coincidentes denominadosEMPLOYEES
en la instancia de enrutador. La tabla de la instancia del enrutador no tiene que estar vacía. -
En las opciones disponibles, determine el tipo de enrutamiento de sentencias que desea utilizar: enrutamiento de nivel de esquema, enrutamiento de nivel de objeto o enrutamiento híbrido.
Para activar el enrutamiento automático de sentencias y agregar entradas de asignación de destino a la tabla de enrutamiento:
Puede consultar la vista DBA_PROXY_SQL_MAPPINGS
para mostrar los registros en la tabla de enrutamiento. Consulte DBA_PROXY_SQL_MAPPINGS View para obtener más información.
Aceptar enrutamiento de extracto en instancias de destino
Debe aceptar el enrutamiento de sentencias en una instancia de destino para permitir la asignación desde la instancia de enrutador.
Para permitir (aceptar) redireccionamientos de sentencias de la instancia de enrutador a una instancia de destino:
Enviar sentencias a través de ProxySQL
Para aprovechar el enrutamiento automático de sentencias, debe conectarse y enviar las sentencias a la instancia de enrutador gestionada por ProxySQL.
Al enviar consultas, incluidas las sentencias DML, con ProxySQL activado, debe conectarse a la instancia del enrutador para aprovechar el enrutamiento automático de sentencias.
Parada del Direccionamiento de Sentencias a una Instancia de Destino
Realice estos pasos en una instancia de Autonomous Database de destino para evitar que esta acepte sentencias enrutadas desde el enrutador ProxySQL.
Consulte REJECT_MAPPING Procedure para obtener más información.
Eliminar esquema o asignación de objetos de la instancia del enrutador
Proporciona los pasos para eliminar una asignación específica de la base de datos de enrutador gestionada por ProxySQL.
Desactivar enrutamiento de extracto
Muestra los pasos para el enrutamiento automático de sentencias desactivando ProxySQL.
Ejecute DBMS_PROXY_SQL.DISABLE_ROUTING
en la instancia del enrutador para desactivar ProxySQL y para desactivar el enrutamiento automático de sentencias a las instancias de destino.
Por ejemplo:
BEGIN
DBMS_PROXY_SQL.DISABLE_ROUTING
;
END;
/
Esto desactiva ProxySQL y desactiva el enrutamiento automático de sentencias en el enrutador.
Al desactivar ProxySQL, las entradas de asignación de sentencias de la tabla de enrutamiento de la instancia de enrutador no se suprimen. Esto significa que si vuelve a activar ProxySQL y la tabla de direccionamiento tiene entradas existentes, el direccionamiento automático de sentencias direcciona las sentencias a las instancias de destino, como se especifica en la tabla de direccionamiento. Utilice el procedimiento DBMS_PROXY_SQL.REMOVE_MAPPING
si desea eliminar las entradas existentes de la tabla de enrutamiento antes de volver a activar ProxySQL.
Consulte DISABLE_ROUTING Procedure para obtener más información.
Enrutamiento automático de extractos con notas ProxySQL
Muestra las limitaciones y las notas importantes sobre el enrutamiento automático de sentencias cuando ProxySQL está activado.
-
El usuario
ADMIN
tiene los privilegios para gestionar ProxySQL. Si desea activar otro usuario, debe otorgar los siguientes privilegios-
privilegio
EXECUTE
en el paqueteDBMS_PROXY_SQL
. -
Privilegio
READ
en la vistaDBA_PROXY_SQL_MAPPINGS
. -
Privilegio
READ
en la vistaDBA_PROXY_SQL_ACCEPTED_MAPPINGS
.
-
-
El enrutamiento automático de sentencias se reanuda sin problemas cuando:
-
La instancia de Autonomous Database de destino realiza un failover a una instancia en espera de Autonomous Data Guard local.
-
Puede realizar un switchover para una instancia de Autonomous Database de destino en una instancia en espera de Autonomous Data Guard local.
Sin embargo, el enrutamiento automático de sentencias se para después de un failover o switchover a una base de datos en espera de Autonomous Data Guard entre regiones.
-