Usar Roteamento de Instrução Eficiente Ativando ProxySQL no Autonomous Database
O ProxySQL permite o acesso unificado a vários Autonomous Databases roteando instruções para DML e consultas e elimina a necessidade de consolidar fisicamente todos os dados em um único banco de dados.
Tópicos
- Sobre o Roteamento de Instrução Eficiente com ProxySQL no Autonomous Database
ProxySQL no Autonomous Database permite que você use várias instâncias do Autonomous Database e facilita o acesso e a análise de dados como se eles tivessem sido armazenados em apenas um local. - Ativar Roteamento de Instrução e Definir Mapeamento de Esquema
Esta seção explica como configurar ProxySQL para roteamento automático de instruções de um roteador principal para uma ou mais instâncias de banco de dados de destino. - Enviar Instruções Por Meio de ProxySQL
Para aproveitar o roteamento automático de instruções, você precisa se conectar e enviar suas instruções para a instância do roteador gerenciada por ProxySQL. - Interromper Instruções de Roteamento para uma Instância de Destino
Execute estas etapas em um Autonomous Database de destino para impedir que ele pare de aceitar instruções roteadas do roteador ProxySQL. - Remover Mapeamento de Esquema ou Objeto da Instância do Roteador
Fornece as etapas para remover um mapeamento específico do banco de dados do roteador gerenciado por ProxySQL. - Desativar Roteamento de Demonstrativo
Mostra as etapas para o roteamento automático de demonstrativo desativando ProxySQL. - Roteamento Automático de Demonstrativos com ProxySQL Observações
Lista limitações e observações importantes sobre o roteamento automático de demonstrativos quando ProxySQL está ativado.
Tópico principal: Usar e Gerenciar Pools Elásticos no Autonomous Database
Sobre o Roteamento de Instrução Eficiente com ProxySQL no Autonomous Database
ProxySQL no Autonomous Database permite usar várias instâncias do Autonomous Database e facilita o acesso e a análise de dados como se eles tivessem sido armazenados em apenas um local.
Você pode usar o ProxySQL quando precisar trabalhar com uma configuração grande que envolva vários Autonomous Databases. O ProxySQL oferece acesso unificado a diferentes bancos de dados e elimina a necessidade de mover fisicamente os dados para um só lugar.
Ao ativar o ProxySQL, você designa uma instância do Autonomous Database como uma instância do roteador e uma ou mais instâncias do Autonomous Database são instâncias de destino. A instância do roteador inclui uma tabela de roteamento que determina como uma instrução é distribuída (mapeada) para uma ou mais instâncias de destino. Uma instância de destino inclui uma tabela de aceitação. A tabela de aceitação é semelhante à tabela de roteamento e contém entradas que especificam que a instância aceita redirecionamentos de instrução do roteador.
Dependendo do método de roteamento selecionado, as instruções são automaticamente mapeadas da instância do roteador para uma ou mais instâncias de destino. Um aplicativo se conecta à instância do roteador e é executado na instância do roteador, e o Autonomous Database redireciona instruções para uma ou mais instâncias de destino.
Estes são alguns dos benefícios de ativar o ProxySQL, em comparação com o uso de um único Autonomous Database muito grande:
-
O ProxySQL fornece autonomia e independência do banco de dados para operações, como gerenciamento do ciclo de vida e tarefas administrativas. Por exemplo, usando ProxySQL, as operações de banco de dados, incluindo backup e restauração, e recursos como o Autonomous Data Guard são gerenciados de forma independente em cada instância do Autonomous Database.
-
O ProxySQL permite gerenciar bancos de dados muito grandes com eficiência, dividindo dados em várias instâncias do Autonomous Database.
Há vários termos para saber quando você trabalha com o ProxySQL:
Instância de Roteador: Uma instância de roteador é designada quando você ativa o ProxySQL. Uma tabela de roteamento determina como uma instrução é distribuída (mapeada) para uma ou mais instâncias de destino. Dependendo do método de roteamento especificado, as instruções da instância do roteador são automaticamente mapeadas para uma ou mais instâncias de destino.
Instância de Destino: A Instância de Destino é designada quando você cria um mapeamento na instância do roteador. Uma tabela de aceitação é adicionada em cada instância de destino.
Tabela de Roteamento: Uma tabela de roteamento contém entradas de mapeamento de destino que especificam a instância para a qual as instruções são roteadas automaticamente.
Tabela de Aceitação: Uma tabela de aceitação contém entradas que especificam que a instância aceita redirecionamentos de instrução do roteador.
Requisitos para usar ProxySQL
Veja a seguir os requisitos do ProxySQL:
-
Só há suporte para a ativação de ProxySQL em instâncias do Autonomous Database que estejam em um pool elástico. A instância do roteador e todas as instâncias de destino devem ser membros do mesmo pool elástico.
-
A instância do roteador e todas as instâncias de destino devem estar na mesma região.
-
Os metadados dos objetos que você está roteando devem corresponder às instâncias do roteador e do destino. É responsabilidade do designer de aplicativos que os metadados dos objetos presentes em uma instância de destino também estejam presentes na instância do roteador. Por exemplo, se você tiver uma tabela chamada
EMPLOYEES
na instância de destino, também deverá ter uma tabela com metadados correspondentes chamadosEMPLOYEES
na instância do roteador. A tabela na instância do roteador não precisa estar vazia (somente metadados).
Recomendação para ativar o ProxySQL
As instâncias que você adiciona como roteador e como destinos podem ser de qualquer tipo de carga de trabalho do Autonomous Database. Se houver entradas na tabela de roteamento (mapeamento), as instruções sobre objetos especificadas nessas entradas serão roteadas para a(s) instância(s) de destino correspondente(s), independentemente do tipo de carga de trabalho do destino. A Oracle recomenda que todas as instâncias do Banco de Dados theAutonomous usem o tipo de carga de trabalho Data Warehouse.
Roteamento Automático de Demonstrativos com ProxySQL Ativado
Usando o ProxySQL, você pode distribuir demonstrativos entre destinos usando qualquer um dos métodos de roteamento suportados.
Seja qual for o método de roteamento (mapeamento) que você decidir usar, é responsabilidade do designer de esquemas de aplicativos garantir que os metadados dos objetos colocados em uma instância de destino também estejam disponíveis na instância do roteador. Por exemplo, se você tiver uma tabela chamada
EMPLOYEES
na instância de destino, também deverá ter uma tabela com metadados correspondentes chamados EMPLOYEES
na instância do roteador. A tabela na instância do roteador não precisa estar vazia.
-
Roteamento no Nível do Esquema: Todos os objetos de um esquema são mapeados para uma única instância de destino. Você pode mapear vários esquemas para uma única instância de destino. No entanto, as instruções para um esquema não podem ser mapeadas em várias instâncias de destino, o que significa que o mesmo esquema não pode ser usado para roteamento de esquema e objeto.
Para especificar o Roteamento no Nível do Esquema, você chama o procedimento
DBMS_PROXY_SQL.ADD_MAPPING
com o parmeterobject_name
definido como o valor "*".
Descrição da ilustração proxysql-schema.png
Neste exemplo, os metadados dos objetos no esquema A estão presentes no Autonomous Database 1 de destino e na instância do roteador, e os metadados dos objetos no esquema B estão presentes no Autonomous Database 2 de destino e na instância do roteador, e assim por diante.
-
Roteamento no Nível do Objeto: Os objetos em um esquema são mapeados entre várias instâncias de destino.
Para especificar o Roteamento no Nível do Objeto, você chama o procedimento
DBMS_PROXY_SQL.ADD_MAPPING
com o parmeterobject_name
definido como um nome de tabela.
Descrição da ilustração proxysql-object.png
Neste exemplo, os metadados da Tabela A estão presentes no destino 1 e na instância do roteador, e os metadados da Tabela B estão presentes no destino 2 e na instância do roteador, e assim por diante.
-
Roteamento Híbrido: Os objetos de um esquema são roteados usando uma combinação de roteamento no nível do Esquema e Roteamento no Nível do Objeto.
Descrição da ilustração proxysql-hybrid.png
Neste exemplo, os metadados do Esquema A estão presentes no Autonomous Database 1 de destino e na instância do roteador, e os metadados da Tabela B (no Esquema B) estão presentes no Autonomous Database 2 de destino e na instância do roteador, e assim por diante.
Mapeamento de Serviço com Roteamento de Demonstrativo Automático Quando ProxySQL estiver Ativado
Quando a tabela de roteamento indica um mapeamento para um banco de dados de destino, o mesmo serviço que você está conectado ao banco de dados do roteador é usado para o acesso aos dados no banco de dados de destino.
Por exemplo, se uma sessão estiver conectada ao serviço HIGH na instância do roteador, um fragmento de instrução ou instrução roteado para uma instância de destino também usará o serviço HIGH. Da mesma forma, se uma sessão estiver conectada ao serviço MEDIUM na instância do roteador, uma instrução roteada para uma instância de destino usará o serviço MEDIUM.
Se o serviço usado para estabelecer conexão na instância do roteador não estiver disponível em uma instância de destino, o fragmento de instrução ou de instrução roteado para a instância de destino usará o serviço MEDIUM (os serviços disponíveis dependem do tipo de carga de trabalho do Autonomous Database).
Ativar Roteamento de Demonstrativo e Definir Mapeamento de Esquema
Esta seção explica como configurar ProxySQL para roteamento automático de instruções de um roteador principal para uma ou mais instâncias de banco de dados de destino.
- Ativar Roteamento de Instrução e Definir Mapeamento de Objetos do Roteador para Instâncias de Destino
Para configurar o roteamento de instruções, ative ProxySQL na instância do roteador e defina o esquema ou os objetos cujas instruções são mapeadas (enviadas) para bancos de dados de destino. - Aceitar Roteamento de Instrução em Instâncias de Destino
Você deve aceitar o roteamento de instrução em uma instância de destino para permitir o mapeamento da instância do roteador.
Ativar Roteamento de Demonstrativo e Definir Mapeamento de Objeto do Roteador para Instâncias de Destino
Para configurar o roteamento de instruções, você ativa ProxySQL na instância do roteador e define o esquema ou os objetos cujas instruções são mapeadas (enviadas) para bancos de dados de destino.
Estes são os pré-requisitos para ativar o roteamento automático de demonstrativos:
-
Crie a instância do Autonomous Database que você planeja usar para a instância do roteador ou identifique uma instância existente do Autonomous Database como a instância do roteador.
-
Crie as instâncias de destino ou identifique as instâncias de destino nas instâncias existentes do Autonomous Database.
-
Certifique-se de que a instância do roteador e qualquer instância de destino em que você esteja redirecionando consultas tenham metadados correspondentes para qualquer objeto que você esteja mapeando do roteador para um destino.
Qualquer que seja o método de roteamento (mapeamento) que você decida usar, é responsabilidade do designer de esquema de aplicativo garantir que os metadados dos objetos colocados em uma instância de destino também estejam disponíveis na instância do roteador. Por exemplo, se você tiver uma tabela chamada
EMPLOYEES
na instância de destino, também deverá ter uma tabela com metadados correspondentes chamadosEMPLOYEES
na instância do roteador. A tabela na instância do roteador não precisa estar vazia. -
Entre as opções disponíveis, determine o tipo de roteamento de demonstrativo que deseja usar: Roteamento no Nível do Esquema, Roteamento no Nível do Objeto ou Roteamento Híbrido.
Para ativar o roteamento automático de demonstrativo e adicionar entradas de mapeamento de destino à tabela de roteamento:
Você pode consultar a exibição DBA_PROXY_SQL_MAPPINGS
para listar os registros na tabela de roteamento. Consulte DBA_PROXY_SQL_MAPPINGS View para obter mais informações.
Tópico principal: Ativar Roteamento de Instrução e Definir Mapeamento de Esquema
Aceitar Roteamento de Demonstrativo nas Instâncias de Destino
Você deve aceitar o roteamento de instruções em uma instância de destino para permitir o mapeamento da instância do roteador.
Para permitir que a instrução (accept) redirecione da instância do roteador para uma instância de destino:
Tópico principal: Ativar Roteamento de Instrução e Definir Mapeamento de Esquema
Enviar Demonstrativos Por Meio de ProxySQL
Para aproveitar o roteamento automático de instruções, você precisa se conectar e enviar suas instruções para a instância do roteador gerenciada pelo ProxySQL.
Ao enviar consultas, incluindo instruções DML, com a opção ProxySQL ativada, você precisa se conectar à instância do roteador para aproveitar o roteamento automático de instruções.
Interromper Instruções de Roteamento para uma Instância de Destino
Execute estas etapas em um Autonomous Database de destino para impedir que ele pare de aceitar instruções roteadas do roteador ProxySQL.
Consulte REJECT_MAPPING Procedures para obter mais informações.
Remover Esquema ou Mapeamento de Objeto da Instância do Roteador
Fornece as etapas para remover um mapeamento específico do banco de dados do roteador gerenciado pelo ProxySQL.
Desativar Roteamento de Demonstrativo
Mostra as etapas para o roteamento automático de demonstrativos desativando ProxySQL.
Execute DBMS_PROXY_SQL.DISABLE_ROUTING
na instância do roteador para desativar ProxySQL e para desativar o roteamento automático de instruções para instâncias de destino.
Por exemplo:
BEGIN
DBMS_PROXY_SQL.DISABLE_ROUTING
;
END;
/
Isso desativa ProxySQL e desativa o roteamento automático de instruções no roteador.
Quando você desativa ProxySQL, as entradas de mapeamento de instrução na tabela de roteamento na instância do roteador não são excluídas. Isso significa que se você reativar ProxySQL e a tabela de roteamento tiver entradas existentes, o roteamento automático de instruções roteará instruções para instâncias de destino, conforme especificado na tabela de roteamento. Use o procedimento DBMS_PROXY_SQL.REMOVE_MAPPING
se desejar remover as entradas da tabela de roteamento existente antes de reativar ProxySQL.
Consulte DISABLE_ROUTING Procedures para obter mais informações.
Roteamento Automático de Demonstrativos com Observações ProxySQL
Lista limitações e observações importantes sobre o roteamento automático de instruções quando ProxySQL está ativado.
-
O usuário
ADMIN
tem os privilégios para gerenciar o ProxySQL. Se quiser ativar outro usuário, você deverá conceder os seguintes privilégios-
Privilégio
EXECUTE
no pacoteDBMS_PROXY_SQL
. -
Privilégio
READ
na exibiçãoDBA_PROXY_SQL_MAPPINGS
. -
Privilégio
READ
na exibiçãoDBA_PROXY_SQL_ACCEPTED_MAPPINGS
.
-
-
O roteamento automático de instruções é retomado perfeitamente quando:
-
A instância do Autonomous Database de destino faz failover para um stand-by local do Autonomous Data Guard.
-
Você executa um switchover de uma instância do Autonomous Database de destino para um stand-by local do Autonomous Data Guard.
No entanto, o roteamento automático de instruções é interrompido após um failover ou switchover para um banco de dados stand-by do Autonomous Data Guard entre regiões.
-