Segurança, acesso e operações para migrações do Oracle

Este artigo é a terceira parte de uma série de sete partes que oferece diretrizes para fazer a migração do Oracle para o Azure Synapse Analytics. O foco deste artigo é descrever as melhores práticas para operações de acesso à segurança.

Considerações de segurança

O ambiente do Oracle oferece diversos métodos de acesso e autenticação dos quais você poderá precisar para migrar para o Azure Synapse com o mínimo de risco e impacto para o usuário. O artigo pressupõe que você deseja migrar os métodos de conexão existentes e as estruturas de usuário, função e permissão no estado em que se encontram. Se não for esse o caso, use o portal do Azure para criar e gerenciar um novo regime de segurança.

Para obter mais informações sobre as opções de segurança do Azure Synapse, consulte Segurança do Azure Synapse Analytics.

Conexão e autenticação

Autenticação é o processo de verificar a identidade de um usuário, dispositivo ou outra entidade em um sistema de computadores, geralmente como pré-requisito para conceder acesso aos recursos no sistema.

Dica

A autenticação no Oracle e no Azure Synapse pode ocorrer "no banco de dados" ou por meio de métodos externos.

Opções de autorização do Oracle

O sistema Oracle oferece estes métodos de autenticação para os usuários de bancos de dados:

  • Autenticação de banco de dados: com a autenticação de banco de dados, o banco de dados Oracle administra a conta de usuário e autentica o usuário. Para que o banco de dados Oracle execute a autenticação, ele gera uma senha para novos usuários e armazena as senhas em formato criptografado. Os usuários podem alterar as respectivas senhas a qualquer momento. A Oracle recomenda o gerenciamento de senhas por meio do bloqueio de conta, do envelhecimento e expiração de senhas, do histórico de senhas e da verificação de complexidade das senhas. A autenticação do banco de dados é comum em instalações Oracle mais antigas.

  • Autenticação externa: com a autenticação externa, o banco de dados Oracle mantém a conta de usuário e um serviço externo executa a administração de senhas e a autenticação do usuário. O serviço externo pode ser um sistema operacional ou um serviço de rede como o Oracle Net. O banco de dados depende do sistema operacional subjacente ou do serviço de autenticação de rede para restringir o acesso a contas de banco de dados. Esse tipo de conexão não usa uma senha de banco de dados. Há duas opções de autenticação externa:

    • Autenticação do sistema operacional: por padrão, a Oracle requer uma conexão segura para logons que o sistema operacional autentica para impedir que um usuário remoto se passe por um usuário do sistema operacional por meio de uma conexão de rede. Esse requisito impede o uso do Oracle Net e de uma configuração de servidor compartilhado.

    • Autenticação de rede: vários mecanismos de autenticação de rede estão disponíveis, como cartões inteligentes, impressões digitais, Kerberos e o sistema operacional. Muitos serviços de autenticação de rede, como o Kerberos, dão suporte ao logon único para que os usuários tenham menos senhas das quais se lembrar.

  • Autenticação e autorização globais: com a autenticação e a autorização globais, você pode centralizar o gerenciamento de informações relacionadas ao usuário, incluindo autorizações, em um serviço de diretório baseado em LDAP. Os usuários são identificados no banco de dados como usuários globais, o que significa que são autenticados por TLS/SSL e o gerenciamento de usuários ocorre fora do banco de dados. O serviço de diretório centralizado realiza o gerenciamento de usuários. Essa abordagem fornece autenticação forte usando TLS/SSL, Kerberos ou a autenticação nativa do Windows e permite o gerenciamento centralizado de usuários e privilégios em toda a empresa. A administração é mais fácil porque não é necessário criar um esquema para cada usuário em cada banco de dados da empresa. Também há suporte para o logon único, de modo que os usuários só precisam entrar uma vez para acessar vários bancos de dados e serviços.

  • Autenticação e autorização de proxy: você pode designar um servidor de camada intermediária para realizar proxy dos clientes de maneira segura. A Oracle fornece várias opções para autenticação de proxy, como:

    • O servidor de camada intermediária pode se autenticar com o servidor de banco de dados. Um cliente, que nesse caso é um usuário de aplicativo ou outro aplicativo, se autentica com o servidor de camada intermediária. As identidades do cliente podem ser mantidas até o banco de dados.

    • O cliente, que nesse caso é um usuário de banco de dados, não é autenticado pelo servidor de camada intermediária. A identidade e a senha do banco de dados do cliente são passadas pelo servidor de camada intermediária para o servidor de banco de dados para autenticação.

    • O cliente, que nesse caso é um usuário global, é autenticado pelo servidor de camada intermediária e passa um DN (nome diferenciado) ou um certificado pela camada intermediária para recuperar o nome de usuário do cliente.

Opções de autorização do Azure Synapse

O Azure Synapse dá suporte a duas opções básicas de conexão e autorização:

  • Autenticação SQL: a autenticação SQL usa uma conexão de banco de dados que inclui um identificador de banco de dados, uma ID de usuário e uma senha, além de outros parâmetros opcionais. Esse método de autenticação é funcionalmente equivalente à autenticação de banco de dados do Oracle.

  • Autenticação do Microsoft Entra: com a autenticação do Microsoft Entra, você pode gerenciar centralmente as identidades dos usuários de banco de dados e serviços da Microsoft em um único local. O gerenciamento centralizado fornece um só local no qual gerenciar os usuários do Azure Synapse e simplifica o gerenciamento de permissões. A autenticação do Microsoft Entra dá suporte a conexões com serviços LDAP e Kerberos. Por exemplo, você poderá usar a autenticação do Microsoft Entra para se conectar aos diretórios LDAP existentes, caso permaneçam em vigor após a migração do banco de dados.

Usuários, funções e permissões

Tanto o Oracle quanto o Azure Synapse implementam o controle de acesso ao banco de dados por meio de uma combinação de usuários, funções e permissões. Você pode usar as instruções SQL padrão CREATE USER e CREATE ROLE/GROUP para definir usuários e funções. As instruções GRANT e REVOKE atribuem ou removem permissões para usuários e/ou funções.

Dica

O planejamento é essencial para um projeto de migração bem-sucedido. Comece com decisões de abordagem de alto nível.

Conceitualmente, os bancos de dados Oracle e Azure Synapse são semelhantes e, até certo ponto, é possível automatizar a migração de IDs, grupos e permissões de usuário existentes. Extraia as informações de usuário e grupo herdadas das tabelas de catálogo do sistema Oracle e gere as instruções CREATE USER e CREATE ROLE equivalentes correspondentes. Execute essas instruções no Azure Synapse para recriar a mesma hierarquia de usuários/funções.

Dica

Se possível, automatize os processos de migração para reduzir o tempo decorrido e o escopo do erro.

Após a extração de dados, use as tabelas de catálogo do sistema Oracle para gerar instruções GRANT equivalentes para atribuir permissões quando existirem instruções equivalentes.

Chart showing how to automate the migration of privileges from an existing system.

Usuários e funções

As informações sobre os usuários e grupos atuais em um sistema Oracle são mantidas nas exibições do catálogo do sistema, como ALL_USERS e DBA_USERS. Consulte essas exibições da maneira normal por meio do Oracle SQL*Plus ou do Oracle SQL Developer. As seguintes consultas são exemplos básicos:

--List of users
select * from dba_users order by username;

--List of roles
select * from dba_roles order by role;

--List of users and their associated roles
select * from user_role_privs order by username, granted_role;

O Oracle SQL Developer tem opções internas para exibir informações de usuário e função no painel Relatórios, conforme mostrado na captura de tela a seguir.

Screenshot showing the Reports pane for user roles in Oracle SQL Developer.

Você pode modificar a instrução SELECT de exemplo para produzir um conjunto de resultados que é uma série de instruções CREATE USER e CREATE GROUP. Para fazer isso, inclua o texto apropriado como um literal dentro da instrução SELECT.

Não há como recuperar senhas do Oracle existentes, portanto, você precisa implementar um esquema para alocar novas senhas iniciais no Azure Synapse.

Dica

A migração de um data warehouse requer a migração de mais do que apenas tabelas, exibições e instruções SQL.

Permissões

Em um sistema Oracle, a exibição DBA_ROLE_PRIVS contém os direitos de acesso para usuários e funções. Se você tiver acesso a SELECT, poderá consultar essa exibição para obter as listas de direitos de acesso atuais definidas no sistema. A captura de tela a seguir do Oracle SQL Developer mostra um exemplo de lista de direitos de acesso.

Screenshot showing the Reports pane for user access rights in Oracle SQL Developer.

Você também pode criar consultas para produzir um script que é uma série de instruções CREATE e GRANT para o Azure Synapse com base nos privilégios existentes do Oracle. A captura de tela a seguir do Oracle SQL Developer mostra um exemplo desse script.

Screenshot showing how to create a script of CREATE and GRANT statements in Oracle SQL Developer.

Esta tabela lista e descreve as exibições do dicionário de dados necessárias para exibir informações sobre usuários, funções e privilégios.

Visualizar Descrição
DBA_COL_PRIVS
ALL_COL_PRIVS
USER_COL_PRIVS
A exibição DBA descreve todas as concessões de objeto de coluna no banco de dados. A exibição ALL descreve todas as concessões de objeto de coluna das quais o usuário atual ou PUBLIC é o proprietário do objeto, o autorizador ou a entidade autorizada. A exibição USER descreve as concessões de objeto de coluna das quais o usuário atual é o proprietário do objeto, o autorizador ou a entidade autorizada.
ALL_COL_PRIVS_MADE
USER_COL_PRIVS_MADE
A exibição ALL lista as concessões de objeto de coluna das quais o usuário atual é o proprietário do objeto ou o autorizador. A exibição USER descreve as concessões de objeto de coluna das quais o usuário atual é o autorizador.
ALL_COL_PRIVS_RECD
USER_COL_PRIVS_RECD
A exibição ALL descreve as concessões de objeto de coluna das quais o usuário atual ou PUBLIC é a entidade autorizada. A exibição USER descreve as concessões de objeto de coluna das quais o usuário atual é a entidade autorizada.
DBA_TAB_PRIVS
ALL_TAB_PRIVS
USER_TAB_PRIVS
A exibição DBA lista todas as concessões de todos os objetos no banco de dados. A exibição ALL lista as concessões de objetos em que o usuário ou PUBLIC é a entidade autorizada. A exibição USER lista concessões de todos os objetos em que o usuário atual é a entidade autorizada.
ALL_TAB_PRIVS_MADE
USER_TAB_PRIVS_MADE
A exibição ALL lista as concessões de objeto feitas pelo usuário atual ou feitas em objetos pertencentes ao usuário atual. A exibição USER lista concessões em todos os objetos pertencentes ao usuário atual.
ALL_TAB_PRIVS_RECD
USER_TAB_PRIVS_RECD
A exibição ALL lista as concessões de objeto das quais o usuário ou PUBLIC é a entidade autorizada. A exibição USER lista as concessões de objeto das quais o usuário atual é a entidade autorizada.
DBA_ROLES Essa exibição lista todas as funções que existem no banco de dados.
DBA_ROLE_PRIVS
USER_ROLE_PRIVS
A exibição DBA lista as funções concedidas a usuários e funções. A exibição USER lista as funções concedidas ao usuário atual.
DBA_SYS_PRIVS
USER_SYS_PRIVS
A exibição DBA lista os privilégios do sistema concedidos a usuários e funções. A exibição USER lista os privilégios do sistema concedidos ao usuário atual.
ROLE_ROLE_PRIVS Essa exibição descreve as funções concedidas a outras funções. São fornecidas informações apenas sobre as funções às quais o usuário tem acesso.
ROLE_SYS_PRIVS Essa exibição contém informações sobre os privilégios do sistema concedidos a funções. São fornecidas informações apenas sobre as funções às quais o usuário tem acesso.
ROLE_TAB_PRIVS Essa exibição contém informações sobre os privilégios de objeto concedidos a funções. São fornecidas informações apenas sobre as funções às quais o usuário tem acesso.
SESSION_PRIVS Essa exibição lista os privilégios que estão habilitados para o usuário.
SESSION_ROLES Essa exibição lista as funções que estão habilitadas para o usuário.

O Oracle dá suporte a vários tipos de privilégios:

  • Privilégios do sistema: os privilégios do sistema permitem que a entidade autorizada execute tarefas de administrador padrão no banco de dados. Normalmente, esses privilégios são restritos a usuários confiáveis. Muitos privilégios do sistema são específicos das operações do Oracle.

  • Privilégios de objeto: cada tipo de objeto tem privilégios associados.

  • Privilégios de tabela: os privilégios de tabela habilitam a segurança no nível da DML (linguagem de manipulação de dados) ou da DDO (linguagem de definição de dados). Você pode mapear os privilégios de tabela diretamente para seus equivalentes no Azure Synapse.

  • Privilégios de exibição: você pode aplicar privilégios de objeto DML às exibições, de maneira semelhante às tabelas. Você pode mapear os privilégios de exibição diretamente para seus equivalentes no Azure Synapse.

  • Privilégios de procedimento: os privilégios de procedimento permitem que procedimentos, incluindo funções e procedimentos autônomos, recebam o privilégio EXECUTE. Você pode mapear os privilégios de procedimento diretamente para seus equivalentes no Azure Synapse.

  • Privilégios de tipo: você pode conceder privilégios do sistema a tipos nomeados, como tipos de objeto, VARRAYs e tabelas aninhadas. Normalmente, esses privilégios são específicos do Oracle e não têm equivalentes no Azure Synapse.

Dica

O Azure Synapse tem permissões equivalentes para operações de banco de dados básicas, como DML e DDL.

A tabela a seguir lista privilégios de administrador comuns do Oracle que têm um equivalente direto no Azure Synapse.

Privilégio de administrador Descrição Equivalente no Synapse
[Create] Database O usuário pode criar bancos de dados. A permissão para operar bancos de dados existentes é controlada por privilégios de objeto. CREATE DATABASE
[Create] External Table O usuário pode criar tabelas externas. A permissão para operar tabelas existentes é controlada por privilégios de objeto. CREATE TABLE
[Create] Function O usuário pode criar UDFs (funções definidas pelo usuário). A permissão para operar UDFs existentes é controlada por privilégios de objeto. CREATE FUNCTION
[Create] Role O usuário pode criar grupos. A permissão para operar grupos existentes é controlada por privilégios de objeto. CREATE ROLE
[Create] Index Somente para uso do sistema. Os usuários não podem criar índices. CREATE INDEX
[Create] Materialized View O usuário pode criar exibições materializadas. CREATE VIEW
[Create] Procedure O usuário pode criar procedimentos armazenados. A permissão para operar procedimentos armazenados existentes é controlada por privilégios de objeto. CREATE PROCEDURE
[Create] Schema O usuário pode criar esquemas. A permissão para operar esquemas existentes é controlada por privilégios de objeto. CREATE SCHEMA
[Create] Table O usuário pode criar tabelas. A permissão para operar tabelas existentes é controlada por privilégios de objeto. CREATE TABLE
[Create] Temporary Table O usuário pode criar tabelas temporárias. A permissão para operar tabelas existentes é controlada por privilégios de objeto. CREATE TABLE
[Create] User O usuário pode criar usuários. A permissão para operar usuários existentes é controlada por privilégios de objeto. CREATE USER
[Create] View O usuário pode criar exibições. A permissão para operar exibições existentes é controlada por privilégios de objeto. CREATE VIEW

Você pode automatizar a migração desses privilégios gerando scripts equivalentes para o Azure Synapse das tabelas do catálogo do Oracle, conforme descrito anteriormente nesta seção.

A tabela a seguir lista privilégios de objeto comuns do Oracle que têm um equivalente direto no Azure Synapse.

Privilégio de objeto Descrição Equivalente no Synapse
Alterar O usuário pode modificar atributos de objeto. Aplica-se a todos os objetos. ALTER
Excluir O usuário pode excluir linhas de tabelas. Aplica-se apenas a tabelas. Delete (excluir)
Remover O usuário pode remover objetos. Aplica-se a todos os tipos de objeto. DROP
Execute (executar) O usuário pode executar funções definidas pelo usuário, agregações definidas pelo usuário ou procedimentos armazenados. Execute
Inserir O usuário pode inserir linhas em uma tabela. Aplica-se apenas a tabelas. INSERT
Lista O usuário pode exibir um nome de objeto, seja em uma lista ou de outra maneira. Aplica-se a todos os objetos. LISTA
Selecionar O usuário pode selecionar (ou consultar) linhas em uma tabela. Aplica-se a tabelas e exibições. SELECT
Truncate O usuário pode excluir todas as linhas de uma tabela. Aplica-se apenas a tabelas. TRUNCATE
Atualizar O usuário pode modificar linhas de tabelas. Aplica-se apenas a tabelas. UPDATE

Para obter mais informações sobre as permissões do Azure Synapse, confira Permissões do mecanismo de banco de dados.

Migrando usuários, funções e privilégios

Até agora, descrevemos uma abordagem comum para migrar usuários, funções e privilégios para o Azure Synapse usando os comandos SQL CREATE USER, CREATE ROLE e GRANT. No entanto, você não precisa migrar todas as operações do Oracle com privilégios que podem ser concedidos para o novo ambiente. Por exemplo, operações de gerenciamento do sistema não são aplicáveis ao novo ambiente ou a funcionalidade equivalente é automática ou é gerenciada fora do banco de dados. Para usuários, funções e o subconjunto de privilégios que têm equivalentes diretos no ambiente do Azure Synapse, as seguintes etapas descrevem o processo de migração:

  1. Migrar definições de esquema, tabela e exibição do Oracle para o ambiente do Azure Synapse. Esta etapa migra apenas as definições de tabela, e não os dados.

  2. Extraia as IDs de usuário existentes que você deseja migrar das tabelas do sistema Oracle, gere um script de instruções CREATE USER para o Azure Synapse e execute esse script no ambiente do Azure Synapse. Encontre uma maneira de criar senhas iniciais, pois as senhas não podem ser extraídas do ambiente do Oracle.

  3. Extraia as funções existentes das tabelas do sistema Oracle, gere um script de instruções CREATE ROLE equivalentes para o Azure Synapse e execute esse script no ambiente do Azure Synapse.

  4. Extraia as combinações de usuário/função das tabelas do sistema Oracle, gere um script para GRANT funções para os usuários no Azure Synapse e execute esse script no ambiente do Azure Synapse.

  5. Extraia as informações de privilégio relevantes das tabelas do sistema Oracle, gere um script para GRANT os privilégios apropriados para os usuários e as funções no Azure Synapse e execute esse script no ambiente do Azure Synapse.

Considerações operacionais

Esta seção descreve como tarefas operacionais típicas do Oracle podem ser implementadas no Azure Synapse com o mínimo de risco e impacto para os usuários.

Assim como acontece com todos os produtos de data warehouse, em produção, as tarefas de gerenciamento contínuas são necessárias para manter o sistema em execução com eficiência e fornecer dados para monitoramento e auditoria. Outras considerações operacionais incluem a utilização de recursos, o planejamento de capacidade para crescimento futuro e o backup/restauração de dados.

Dica

Tarefas operacionais são necessárias para manter qualquer data warehouse operando com eficiência.

As tarefas de administração do Oracle normalmente se enquadram em duas categorias:

  • Administração do sistema: administração do sistema é o gerenciamento do hardware, das configurações, do status do sistema, do acesso, do espaço em disco, do uso, das atualizações e de outras tarefas.

  • Administração de banco de dados: administração de banco de dados é o gerenciamento de bancos de dados de usuário e seu conteúdo, carregamento de dados, backup de dados, recuperação de dados e acesso a dados e a permissões.

O Oracle oferece vários métodos e interfaces que você pode usar para executar tarefas de gerenciamento de sistema e de banco de dados:

  • O Oracle Enterprise Manager é a plataforma de gerenciamento local da Oracle. Ele fornece um só painel para gerenciar todas as implantações Oracle de um cliente, seja nos respectivos data centers ou no Oracle Cloud. Por meio da integração profunda com a pilha de produtos da Oracle, o Oracle Enterprise Manager dá suporte de gerenciamento e automação para aplicativos, bancos de dados, middleware, hardware e sistemas projetados Oracle.

  • O Oracle Instance Manager fornece uma interface do usuário para administração de alto nível de instâncias Oracle. O Oracle Instance Manager habilita tarefas como inicialização, desligamento e exibição de logs.

  • O Oracle Database Configuration Assistant é uma interface do usuário que permite o gerenciamento e a configuração de vários recursos e funcionalidades de bancos de dados.

  • Comandos SQL com suporte para tarefas de administração e consultas em uma sessão do banco de dados SQL. Você pode executar comandos SQL no interpretador de comandos Oracle SQL*Plus, na interface do usuário do Oracle SQL Developer ou por meio de APIs de SQL como ODBC, JDBC e o Provedor do OLE DB. Você precisa ter uma conta de usuário de banco de dados para executar comandos SQL com permissões adequadas para as consultas e tarefas executadas.

Embora as tarefas de gerenciamento e operações para diferentes data warehouses sejam semelhantes em termos conceituais, as implementações individuais podem ser diferentes. Produtos modernos baseados em nuvem como o Azure Synapse tendem a incorporar uma abordagem mais automatizada e "gerenciada pelo sistema" em comparação com a abordagem mais manual em ambientes herdados como o Oracle.

As seções a seguir comparam as opções do Oracle e do Azure Synapse para várias tarefas operacionais.

Tarefas de manutenção

Na maioria dos ambientes de data warehouse herdados, tarefas regulares de manutenção são demoradas. Você pode recuperar o espaço de armazenamento em disco removendo versões antigas de linhas atualizadas ou excluídas. Você também pode recuperar o espaço de armazenamento em disco reorganizando dados, arquivos de log e blocos de índice para aumentar a eficiência, por exemplo, executando ALTER TABLE... SHRINK SPACE no Oracle.

Dica

As tarefas de manutenção mantêm um warehouse de produção operando com eficiência e otimizam o armazenamento e outros recursos.

Coletar estatísticas é uma tarefa potencialmente demorada que é necessária após uma ingestão de dados em massa para fornecer ao otimizador de consulta dados atualizados para seus planos de execução de consulta.

A Oracle tem um recurso interno para ajudar a analisar a qualidade das estatísticas, o Optimizer Statistics Advisor. Ele funciona por meio de uma lista de regras da Oracle que representam as melhores práticas para estatísticas de otimizador. O assistente verifica cada regra e, quando necessário, gera descobertas, recomendações e ações que envolvem chamadas ao pacote DBMS_STATS para tomar medidas corretivas. Os usuários podem ver a lista de regras na exibição V$STATS_ADVISOR_RULES, conforme mostrado na captura de tela a seguir.

Screenshot showing how to display a list of rules by using the Optimizer Statistics Advisor.

Um banco de dados Oracle contém muitas tabelas de log no dicionário de dados, que acumulam dados automaticamente ou depois que determinados recursos são habilitados. Como os dados de log crescem ao longo do tempo, limpe informações mais antigas para evitar o uso de espaço permanente. O Oracle fornece opções para automatizar a manutenção de logs.

O Azure Synapse pode criar estatísticas automaticamente para que elas fiquem disponíveis quando necessário. Você pode desfragmentar índices e blocos de dados manualmente, de maneira agendada ou automática. Usando recursos nativos internos do Azure, você reduz o esforço de migração.

Dica

Automatize e monitore as tarefas de manutenção no Azure.

Monitoramento e auditoria

O Oracle Enterprise Manager inclui ferramentas para monitorar diversos aspectos de um ou mais sistemas Oracle, como atividades, desempenho, enfileiramento e utilização de recursos. O Oracle Enterprise Manager tem uma interface do usuário interativa que permite que os usuários analisem os detalhes de baixo nível de qualquer gráfico.

Dica

O Oracle Enterprise Manager é o método recomendado de monitoramento e registro em log para sistemas Oracle.

O diagrama a seguir fornece uma visão geral do ambiente de monitoramento em um data warehouse Oracle.

Diagram showing an overview of the monitoring environment for an Oracle warehouse.

O Azure Synapse também oferece uma experiência de monitoramento avançada no portal do Azure para fornecer insights sobre sua carga de trabalho de data warehouse. O portal do Azure é a ferramenta recomendada para monitorar seu data warehouse, pois fornece períodos de retenção configuráveis, alertas, recomendações e gráficos e painéis personalizáveis para métricas e logs.

Dica

O portal do Azure fornece uma GUI para gerenciar tarefas de monitoramento e auditoria para todos os dados e processos do Azure.

O portal do Azure também pode fornecer recomendações de aprimoramentos de desempenho, conforme mostrado na captura de tela a seguir.

Screenshot of Azure portal recommendations for performance enhancements.

O portal dá suporte à integração com outros serviços de monitoramento do Azure, como o OMS (Operations Management Suite) e o Azure Monitor, para fornecer uma experiência de monitoramento integrada do data warehouse e de toda a plataforma de análise do Azure. Para obter mais informações, consulte Operações e opções de gerenciamento do Azure Synapse.

HA (alta disponibilidade) e DR (recuperação de desastre)

Desde o lançamento inicial em 1979, o ambiente Oracle evoluiu para abranger inúmeros recursos exigidos pelos clientes corporativos, incluindo opções de HA (alta disponibilidade) e DR (recuperação de desastre). O anúncio mais recente nessa área é a MAA (Maximum Availability Architecture), que inclui arquiteturas de referência para quatro níveis de HA e DR:

  • Camada bronze: uma arquitetura de HA de instância única
  • Camada prata: HA com failover automático
  • Camada ouro: HA e DR abrangentes
  • Camada platina: interrupção zero para aplicativos prontos para a camada platina

O Azure Synapse usa instantâneos de banco de dados para fornecer HA do data warehouse. Um instantâneo de data warehouse cria um ponto de restauração que você pode usar para restaurar um data warehouse para um estado anterior. Como o Azure Synapse é um sistema distribuído, um instantâneo de data warehouse é composto por vários arquivos armazenados no Armazenamento do Azure. Os instantâneos capturam alterações incrementais nos dados armazenados no data warehouse.

Dica

O Azure Synapse cria instantâneos automaticamente para garantir um tempo de recuperação rápido.

O Azure Synapse faz instantâneos automaticamente ao longo do dia e cria pontos de restauração que ficam disponíveis por sete dias. Não é possível alterar esse período de retenção. O Azure Synapse dá suporte a um RPO (objetivo de ponto de recuperação) de oito horas. É possível restaurar seu data warehouse na região primária com base em qualquer um dos instantâneos tirados nos últimos sete dias.

Dica

Instantâneos definidos pelo usuário podem ser usados para definir um ponto de recuperação antes das atualizações de chave.

O Azure Synapse dá suporte a pontos de restauração definidos pelo usuário, que são criados com base em instantâneos disparados manualmente. Ao criar pontos de restauração antes e depois de grandes modificações no data warehouse, você garante que os pontos de restauração sejam logicamente consistentes. Os pontos de restauração definidos pelo usuário aumentam a proteção de dados e reduzem o tempo de recuperação quando há interrupções da carga de trabalho ou erros do usuário.

Além dos instantâneos, o Azure Synapse executa um backup geográfico padrão uma vez por dia para um data center emparelhado. O RPO de uma restauração geográfica é de 24 horas. Você pode restaurar o backup geográfico para um servidor em qualquer região em que o Azure Synapse tenha suporte. O backup geográfico garante que um data warehouse possa ser restaurado caso pontos de restauração na região primária não estejam disponíveis.

Dica

O Microsoft Azure fornece backups automáticos para uma localização geográfica separada para habilitar a DR.

Gerenciamento de carga de trabalho

A Oracle fornece utilitários como o Enterprise Manager e o DBRM (Database Resource Manager) para gerenciar cargas de trabalho. Esses utilitários incluem recursos como balanceamento de carga em clusters grandes, execução de consultas paralelas, medição de desempenho e priorização. Muitos desses recursos podem ser automatizados para que o sistema se torne, em certa medida, autoajustável.

Dica

Um data warehouse de produção típico normalmente executa cargas de trabalho mistas com diferentes características de uso de recursos.

O Azure Synapse registra automaticamente as estatísticas de utilização de recursos. As métricas incluem estatísticas de uso para CPU, memória, cache, E/S e workspace temporário para cada consulta. O Azure Synapse também registra informações de conectividade, como tentativas de conexão com falha.

Dica

As métricas de baixo nível de todo o sistema são registradas automaticamente no Azure.

No Azure Synapse, as classes de recursos são limites de recursos predeterminados que controlam recursos de computação e simultaneidade para execução da consulta. Classes de recursos ajudam você a gerenciar a carga de trabalho definindo limites quanto ao número de consultas executadas simultaneamente e aos recursos de computação atribuídos a cada consulta. Há um equilíbrio entre a memória e simultaneidade.

O Azure Synapse dá suporte a esses conceitos básicos de gerenciamento de carga de trabalho:

  • Classificação da carga de trabalho: você pode atribuir uma solicitação a um grupo de carga de trabalho para definir níveis de importância.

  • Importância da carga de trabalho: você pode influenciar a ordem em que uma solicitação obtém acesso aos recursos. Por padrão, as consultas são liberadas da fila no esquema primeiro a entrar, primeiro a sair, à medida que os recursos são disponibilizados. A importância da carga de trabalho permite que consultas de prioridade mais alta recebam recursos imediatamente, independentemente da fila.

  • Isolamento da carga de trabalho: você pode reservar recursos para um grupo de carga de trabalho, atribuir usos máximo e mínimo para recursos variados, limitar os recursos que um grupo de solicitações pode consumir e definir um valor de tempo limite para encerrar automaticamente as consultas descontroladas.

A execução de cargas de trabalho mistas pode representar desafios de recursos em sistemas ocupados. Um esquema de gerenciamento de carga de trabalho bem-sucedido gerencia efetivamente os recursos, garante uma utilização de recursos altamente eficiente e maximiza o ROI (retorno sobre o investimento). A classificação da carga de trabalho, a importância da carga de trabalho e o isolamento da carga de trabalho proporcionam mais controle sobre como a carga de trabalho utiliza os recursos do sistema.

Você pode usar as métricas de carga de trabalho que o Azure Synapse coleta para fazer o planejamento de capacidade, por exemplo, para determinar os recursos necessários para usuários extras ou uma carga de trabalho de aplicativo maior. Você também pode usar métricas de carga de trabalho para planejar a expansão/redução dos recursos de computação para dar suporte a cargas de trabalho com pico de maneira econômica.

O guia de gerenciamento de carga de trabalho descreve as técnicas para analisar a carga de trabalho, gerenciar e monitorar a carga de trabalho importance](../../sql-data-warehouse/sql-data-warehouse-how-to-manage-and-monitor-workload-importance.md) e as etapas para converter uma classe de recurso em um grupo de carga de trabalho. Use o portal do Azure e as consultas T-SQL em DMVs para monitorar a carga de trabalho para garantir que os recursos aplicáveis sejam utilizados com eficiência. O Azure Synapse fornece um conjunto de DMVs (Exibições de Gerenciamento Dinâmico) para monitorar todos os aspectos do gerenciamento de carga de trabalho. Essas exibições são úteis para resolver problemas ativamente e identificar gargalos de desempenho com sua carga de trabalho.

Para obter mais informações sobre o gerenciamento de carga de trabalho no Azure Synapse, consulte Gerenciamento de carga de trabalho com classes de recursos.

Escalar recursos de computação

A arquitetura do Azure Synapse separa armazenamento e computação, permitindo que cada um seja dimensionado independentemente. Como resultado, os recursos de computação podem ser dimensionados para atender às demandas de desempenho independentemente do armazenamento de dados. Além disso, você também pode pausar e retomar os recursos de computação. Outro benefício dessa arquitetura é que a cobrança pela computação e pelo armazenamento é separada. Se um data warehouse não estiver em uso, você pode economizar os custos de computação pausando a computação.

Dica

Um grande benefício do Azure é a capacidade de escalar e reduzir verticalmente sem depender de recursos de computação sob demanda para lidar de maneira econômica com cargas de trabalho de pico.

Você pode escalar ou reduzir os recursos de computação ajustando a configuração de DWUs (unidades de data warehouse) para um data warehouse. O desempenho de carga e consulta aumentará linearmente à medida que você alocar mais DWUs.

Se você aumentar as DWUs, o número de nós de computação aumentará, o que adicionará mais capacidade de computação e dará suporte a mais processamento paralelo. À medida que o número de nós de computação aumenta, o número de distribuições por nó de computação diminui, proporcionando mais capacidade de computação e processamento paralelo para as consultas. De maneira semelhante, se você diminuir as DWUs, o número de nós de computação diminuirá, o que reduzirá os recursos de computação para as consultas.

Próximas etapas

Para saber mais sobre visualização e relatórios, confira o próximo artigo desta série: Visualização e relatórios para migrações do Oracle.