Consultar e transferir dados entre bancos de dados SQL do Azure

Conteúdo

No mundo do DevOps, hay algunas situaciones en las que necesita tener una forma de transferir datos desde diferentes Bases de datos de Azure SQL.

Para examenComo um exemplo, digamos que tiene un cliente que borró inadvertidamente una gran cantidad de registros de una tabla en la base de datos de producción. Con la ayuda del Copias de seguridad en un momento determinado, podríamos restaurar la base de datos a un punto anterior en el tiempo en el que aún existen esos registros. Este procedimiento creará una nueva base de datos con el contenido restaurado y después podríamos intercambiar nombres entre estas bases de datos renombrándolas. Apesar disto, hay una salvedad de realizar esta acción. A base de dados restaurada perderá todo o histórico de um ponto no tempo da base de dados original.

Uma abordagem melhor seria restaurar os registos eliminados para a base de dados Original. Apesar disto, isto não é tão simples como nas bases de dados regulares do SQL Server. Ambas as bases de dados não podem ver-se entre si, mesmo que estejam no mesmo servidor e, como um exemplo, não pode utilizar Servidores ligados no Azure SQL para os conectar.

Poderia ter a opção de exportar esses registos para scripts SQL, mas mesmo assim, há alguns casos em que a quantidade de dados a restaurar é muito grande, portanto, criar esses scripts não seria a melhor forma de resolver este problema.

este é o lugar onde Consultas elásticas vem ao resgate:


Com essa tecnologia, podemos gerir facilmente os dados que entram e saem das nossas bases de dados.

requisitos

Tutorial

Imaginemos que o cliente elimina todos os registos do ano 2016 do Estimados tabela na nossa base de dados de faturas.

O primeiro passo deve ser ligar-se ao Portal de Azure e realizar uma restauração num momento específico da faturas na nuvem base de dados a partir de uma data e hora em que esses registos ainda existiam. Restauraremos isto numa base de dados chamada faturas2016.

Estes seriam os passos que devemos seguir para restaurar esses registos:

Criar uma chave mestra da base de dados e credenciais de âmbito

o chave mestra funcionará como um “cofre” para guardar as credenciais na base de dados e as credenciais com âmbito são as credenciais da base de dados que serão utilizadas para se conectar à sua base de dados restaurada.

Sintaxe:

CRIAR ENCRIPTAÇÃO DE CHAVE MESTRA POR PALAVRA-PASSE = 'palavra-passe';

CRIAR CREDENCIAL DE BASE DE DADOS COM IDENTIDADE = ‘‘, SEGREDO =’

Exemplo:

CRIAR ENCRIPTAÇÃO DE CHAVE MESTRA POR PALAVRA-PASSE = 'p @ ssw0rd';

CRIAR CREDENCIAL DE ÂMBITO DA BASE DE DADOS dbCredential COM IDENTIDADE = 'usuario01', SEGREDO = 'p @ ssw0rd';

Criar a Fonte de dados externo

o fonte de dados externa é onde configuramos os parametros juntamente com a credencial criada previamente para permitir a ligação entre bases de dados.

Sintaxe:

CRIAR FONTE DE DADOS EXTERNA COM

(

TIPO = RDBMS,

LOCALIZAÇÃO = ‘‘,

NOME_DA_BASE_DE_DADOS = ‘‘,

CREDENCIAL =

)

Exemplo:

CRIAR FONTE DE DADOS EXTERNA Base de Dados restaurada COM

(

TIPO = RDBMS,

UBICAÇÃO = 'cloudinvoices.database.windows.net',

NOME_DA_BASE_DE_DADOS = 'facturas2016',

CREDENCIAL = dbCredential

);

Crie as tabelas externas

Você deve prestar atenção que tabelas externas são extensões da base de dados externa. Pense nelas como tabelas ligadas. O que significa que não podemos ter duas tabelas com o mesmo nome na nossa base de dados de produção, mesmo que uma seja uma tabela normal e a outra seja uma tabela externa.

Em nosso exemplo, se quisermos conectar-nos à Estimados tabela na base de dados restaurada, precisaríamos mudar o nome primeiro (como um exemplo, Estimativas 2016 ) para não entrar em conflito com a existente.

Sintaxe:

sp_rename 'nome_objeto', 'novo_nome';

Exemplo: na base de dados restaurada:

sp_rename 'Estimativas', 'Estimativas2016';

Agora podemos criar a nossa tabela externa:

Sintaxe:

CRIAR TABELA EXTERNA [Nome da tabela] (

{} [ ,…n ]

)

{COM ()}

)

Exemplo:

CRIAR TABELA EXTERNA [Estimativas2016] (

[IdEstimativa] identificador único NÃO NULO,

[IdCliente] int NÃO NULO,

[Ano] int NÃO NULO,

[Quantia] decimal NÃO NULO

)

COM (

FONTE_DADOS = base de dados restaurada

);

Após realizar os passos necessários para criar a conectividade entre ambas as bases de dados, podemos executar o trabalho real necessário para restaurar os registos em falta. Como um exemplo:

INSERIR EM ESTIMATIVAS

SELECIONE * DE ESTIMADOS 2016 ONDE ANO = 2016;

Ao terminar esta tarefa devemos proceder à limpeza:

ELIMINAR TABELA EXTERNA Estimates2016;

LIBERTAR FONTE DE DADOS EXTERNOS restoreDatabase;

ELIMINAR CREDENCIAL DE BASE DE DADOS dbCredential;

ELIMINAR CHAVE MESTRA;

Isso é! Espero que considere útil esta nova tecnologia para este tipo de cenários. Tenha em atenção que isto poderá ajudá-lo em muitos mais casos: consultar bases de dados externas, consultas entre bases de dados para partições horizontais ( fragmentação ), consultar várias bases de datos para generar informes en PowerBI, etc.

Más información sobre consultas elásticas:

Nós vemos en la próxima publicación. Nunca dejes de aprender.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker