Banco de dados do SQL Server de origem

Esta página contém informações sobre:

  • O comportamento de como o Datastream lida com dados que estão sendo extraídos de um banco de dados SQL Server de origem.
  • Os métodos de captura de dados alterados (CDC) compatíveis com o Datastream.
  • As versões de bancos de dados do SQL Server compatíveis com o Datastream.
  • Limitações conhecidas para o uso do banco de dados SQL Server como fonte.

Comportamento

O Datastream rastreia as mudanças na linguagem de manipulação de dados (DML) usando um dos seguintes métodos de CDC:

Alterar tabelas

O método CDC de tabelas de mudança permite que os usuários retenham registros por um período mais curto e, assim, economizem espaço de armazenamento, mas oferece suporte a uma capacidade menor em comparação com o método de registros de transações. O método tem menos limitações do que os registros de transações. Por exemplo, ele elimina o risco de truncamento de registros que levam a falhas permanentes de fluxos e oferece suporte à replicação de tabelas criptografadas. Para mais informações, consulte Limitações conhecidas.

Ao usar esse método de CDC, as mudanças na origem são rastreadas usando tabelas de mudanças dedicadas. Os registros de transações ainda são usados, mas de forma limitada, e não é necessário retê-los por mais tempo. À medida que os eventos DML são aplicados às tabelas de origem, as mudanças são replicadas nas tabelas de mudança correspondentes. As tabelas de mudanças têm a mesma estrutura das tabelas de origem, mas com colunas extras para incluir os metadados das mudanças. Somente as transações confirmadas são adicionadas às tabelas de mudanças, junto com o número de sequência do registro (LSN) da operação de confirmação.

Como o Datastream lida com mudanças de DDL no esquema de origem

Ao usar o método de CDC de tabelas de mudanças, instâncias de captura são criadas para cada tabela de mudanças. Cada instância de captura é associada a uma lista de colunas que ela captura e rastreia. Por padrão, quando uma mudança na linguagem de definição de dados (DDL) acontece na origem depois que a instância de captura é criada, a instância ignora a mudança. No entanto, é possível configurar o fluxo do SQL Server para replicar colunas adicionadas ao esquema de origem depois que o fluxo e a instância de captura são criados.

Antes de começar
  • Verifique se o usuário do Datastream tem a permissão db_owner atribuída.

Replicar colunas adicionadas ao esquema de origem

Para que o Datastream ofereça suporte à replicação de colunas adicionadas ao esquema de origem depois da criação de um fluxo, adicione o rótulo enable_ddl_support_for_ct ao fluxo:

  1. Acesse a página Streams no console do Google Cloud .

    Acessar a página "Mural"

  2. Clique no stream do SQL Server que você quer editar.

  3. Na página Detalhes dos streams, clique em Pausar.

  4. Clique em Editar > Editar configurações de transmissão.

  5. Clique em Adicionar rótulo.

  6. No campo Chave, digite enable_ddl_support_for_ct.

  7. No campo Value, digite true.

  8. Clique em Salvar.

  9. Clique em Iniciar para retomar a transmissão.

O Datastream verifica a tabela cdc.ddl_history em busca de novas DDLs a cada cinco minutos. Se uma nova coluna for adicionada a uma tabela incluída na configuração do fluxo, o Datastream vai verificar se a tabela tem duas instâncias de captura:

  • Caso contrário, o Datastream cria uma nova instância de captura, lê os dados da instância original até o momento em que o DDL ocorreu e começa a ler da nova instância de captura.

  • Se isso acontecer, uma entrada de registro será adicionada informando que a mudança de DDL não pode ser processada porque o número máximo de instâncias de captura foi atingido.

Registros de transações

Ao usar esse método de CDC, o Datastream lê as mudanças na origem diretamente dos registros de transações. Esse método exige menos recursos e permite uma recuperação de dados mais rápida, mas tem mais limitações.

Para evitar a perda de dados, é importante que os registros não sejam truncados antes que o Datastream os leia. Por outro lado, se você mantiver os arquivos de registro por muito tempo, eles vão ocupar espaço de armazenamento, o que pode fazer com que a instância de banco de dados entre no modo somente leitura.

Para garantir que o leitor de CDC tenha tempo suficiente para ler os registros e permitir o truncamento deles para liberar espaço de armazenamento, é necessário aplicar etapas de configuração adicionais, como mudar os intervalos de polling e configurar uma proteção de truncamento. Essas etapas oferecem uma camada extra de proteção para garantir que o Datastream possa ler os dados mesmo que haja tempo de inatividade no lado do Datastream ou um problema de conectividade entre o banco de dados de origem e o Datastream.

Para instruções detalhadas sobre como aplicar essas medidas adicionais, consulte a página Configurar um banco de dados de origem do SQL Server e selecione seu tipo de banco de dados.

Versões

O Datastream é compatível com as seguintes versões e edições de bancos de dados do SQL Server:

  • Autogerenciado (local ou hospedado na nuvem) usando as seguintes versões:
    • Enterprise: 2008 e versões mais recentes
    • Standard: 2016 SP1 e versões mais recentes
    • Desenvolvedor: 2008 e versões mais recentes
  • Amazon RDS para SQL Server
  • Banco de Dados SQL do Azure (nível S3 e superior).

  • Cloud SQL para SQL Server

O Datastream não é compatível com as seguintes versões de bancos de dados do SQL Server:

  • SQL Server Standard Edition da versão 2008 a 2014
  • SQL Server Express
  • SQL Server Web

Limitações conhecidas

Limitações conhecidas para o uso do banco de dados SQL Server como fonte incluem:

  • Os streams são limitados a 10.000 tabelas.
  • Uma tabela com mais de 500 milhões de linhas não pode ser preenchida, a menos que as seguintes condições sejam atendidas:
    1. A tabela tem um índice exclusivo.
    2. Nenhuma das colunas de índice é anulável.
    3. Todas as colunas do índice são incluídas no fluxo.
  • Não há suporte para bancos de dados com durabilidade atrasada ou recuperação de banco de dados acelerada (ADR) ativada.
  • Não é possível transmitir mudanças para tabelas do sistema.
  • A autenticação do Windows Active Directory (AD) não é compatível.
  • Os seguintes tipos de dados não são compatíveis e não são replicados para o destino:
    • SQL_VARIANT
    • HIERARCHYID
    • GEOMETRY
    • GEOGRAPHY
  • O Datastream replica tipos de dados definidos pelo usuário, mas o tipo de dados base de que você deriva seu tipo definido pelo usuário é armazenado no destino. Por exemplo, se você definir um tipo de dados USERNAME com base no tipo VARCHAR(50), os dados serão armazenados no destino como VARCHAR(50).
  • O Datastream não oferece suporte à CDC para colunas de objetos grandes (TEXT, NTEXT, XML, IMAGE) e colunas de comprimento máximo variável (VARCHAR(MAX), VARBINARY(MAX), NVARCHAR(MAX)) em tabelas sem um índice único.

    Se as colunas de objetos grandes não forem incluídas no fluxo, a CDC será compatível.

  • O Datastream não oferece suporte à replicação das seguintes mudanças no esquema de origem ao usar o método CDC de alteração de tabelas:

    • Descartar colunas: os dados nessas colunas são substituídos por valores NULL.
    • Modificar tipos de dados: o Datastream tenta inserir os dados no destino e gera um erro se eles forem rejeitados.
    • Renomear colunas: não é compatível com o SQL Server quando o CDC está ativado.

    Essas mudanças podem causar corrupção de dados ou falha no processamento dos eventos.

  • O Datastream não é compatível com a mascaramento de dados. Os dados são replicados sem mascaramento.

  • O Datastream não é compatível com a replicação de mudanças aplicadas ao banco de dados usando o pacote de aplicativos da camada de dados (DACPAC).

  • O Datastream não replica as mudanças feitas usando as instruções WRITETEXT ou UPDATETEXT.

  • O Datastream não é compatível com a replicação de colunas calculadas, a menos que a coluna esteja marcada como PERSISTED.

  • O Datastream não é compatível com os tipos de compactação PAGE, COLUMNSTORE ou COLUMNSTORE ARCHIVE.

Outras limitações ao usar o método de registros de transação

Se você usa o método CDC de registros de transação, as seguintes limitações adicionais se aplicam:

  • A Criptografia transparente de dados (TDE) não é compatível.
  • A criptografia no nível da coluna não é compatível. Os dados nessas colunas são substituídos por valores de NULL.
  • Ao usar o método CDC de registros de transações, o Datastream não oferece suporte à replicação de colunas adicionadas ao esquema de origem após a criação de um fluxo. As novas colunas não são replicadas para o destino.
  • O Datastream não é compatível com a instrução ROLLBACK TO SAVEPOINT. Esses eventos de reversão são ignorados e não são replicados para o destino.
  • O Datastream não oferece suporte à CDC para linhas maiores que 8 KB nos seguintes tipos de tabelas:
    • Tabelas sem um índice exclusivo
    • Tabelas que contêm apenas um índice exclusivo e não clusterizado com uma ou mais colunas de comprimento variável (VARCHAR, VARBINARY, NVARCHAR)
  • O Datastream não oferece suporte à CDC para colunas de objetos grandes (TEXT, NTEXT, XML, IMAGE) nos seguintes tipos de tabelas:

    • Tabelas sem um índice exclusivo
    • Tabelas que contêm apenas um índice exclusivo e não clusterizado com uma ou mais colunas de comprimento variável (VARCHAR, VARBINARY, NVARCHAR)

    Se colunas de objetos grandes não forem incluídas no fluxo, a CDC só será compatível com essas tabelas se elas tiverem índices válidos.

A seguir