No universo de bancos de dados em nuvem, a necessidade de restaurar backups pode surgir devido a várias razões: um erro humano, falha em algum sistema ou até mesmo para criar um ambiente de teste. Independentemente do motivo, ter uma ferramenta que simplifique esse processo é essencial.
Apesar do Google Cloud Platform (GCP) oferecer uma solução robusta e escalável com o Cloud SQL, a restauração de backups pode ser um processo que exige múltiplos passos e certa familiaridade com a plataforma. Foi pensando nisso que desenvolvi o GCP Restore Tool.
Por Que Usar o GCP Restore Tool?
A ferramenta foi projetada com o objetivo de tornar o processo de restauração mais amigável e menos propenso a erros. Com uma interface gráfica intuitiva, você pode selecionar projetos, instâncias e o backup desejado para restaurar com apenas alguns cliques.
A maior vantagem? Você não precisa ser um expert em GCP ou lidar com comandos complexos. A ferramenta cuida de tudo para você.
Você será redirecionado para a tela de autenticação do console da GCP, faça a autenticação.
Olhe no terminal e ele terá retornado com algumas informações sobre a localização do arquivo
“application_default_credentials.json”
Esse arquivo é o que você deve carregar pelo botão “Load GCP Credentials”
Na seleção à esquerda, selecione o projeto e a instância de origem nos menus dropdown correspondentes.
Clique no botão “Load Backups” e a ferramenta irá listar todos os backups disponíveis para a instância escolhida.
Na seção à direita, selecione o projeto e a instância onde deseja restaurar o backup.
Após confirmar sua seleção, clique no botão “Restore”. A ferramenta fará todo o trabalho pesado para você, garantindo que o backup selecionado seja restaurado na instância de destino escolhida.
Este processo só funciona sobrescrevendo uma instância pré-existente, logo, você precisa criar uma instância no projeto de destino ou entender que esta atividade vai sobrescrever a instância de destino, tenha certeza de ter selecionado a instância certa.
Se tudo der certo, você vai receber uma mensagem que o processo foi enviado para a GCP, todo o processo ocorre em background pela GCP, então acompanhe pelo portal para saber o status da atividade.
No final, a instância restaurada vai ter o nome, IP, etc da instância que ela sobrescreveu, mas todos os usuários, senhas, bancos, ajustes pontuais, etc. da instância original.
Você pode baixar e acessar o código fonte no GitHub.
ATENÇÃO !!!
A ferramenta está em testes, então faça testes antes de executar a operação em produção.
Você usa o Redshift como DW ou DL para seus relatório e cargas de dados;
Vê uma possibilidade de facilitar sua vida e dar liberdade para o próprio cliente acessar esses dados e gerar relatórios da forma que ele achar mais legal com a ferramenta que ele quiser, etc.;
Mas lembra que a AWS cobra pela saída de dados;
Procura no portal da AWS e descobre que eles não tem uma monitoração específica de quem está saindo com dados, mas eles acertam a cobrança… incrível…
Mas você não quer abandonar a ideia e quer ganhar alguma grana com isso..
O que vou mostrar não é a solução perfeita, ela carece de algumas melhorias mas já é um norte para ajudar nessa ideia…
O Redshift é um PostgreSQL modificado, então muita query em tabelas de sistema do PG funciona direitinho no Redshift…
Para esse cenário, você pode criar um pacote de integration services e rodar a query abaixo contra o Redshift:
select
TRIM(q.DATABASE) AS DB,
TRIM(u.usename) as usename,
sum(bytes)/1024 as kbytes,
sum(packets) as packets,
date(b.starttime) as data
from
stl_bcast b
join stl_query q ON
b.query = q.query
AND b.userid = q.userid
join pg_user u
on u.usesysid = q.userid
where
packets>0
and b.starttime >= dateadd(day, -7, current_Date)
and datediff(seconds, b.starttime, b.endtime)>0
--and u.usename like 'usr%'
--and querytxt not like 'fetch%'
group by TRIM(q.DATABASE)
,u.usename
,date(b.starttime)
Essa query vai trazer a informação do volume em kb trafegado pela query executada.
Com isso, você consegue montar um report incremental e ratear o custo da saída de dados da AWS.
É 100%?, não,,, mas pelo menos já é alguma coisa já que a AWS não provê dados granularizados de quem consome a saída de dados.
novos códigos serão criados também em outro repositório:
Já faz um tempo desde a versão em powershell do gerador de DacPac,,, visto alguns bugs e limitações que alguém poderia ter em utilizá-lo resolvi montar uma versão mais adaptável do App.
Essa versão utiliza .Net Framework 4 e está o mais enxuta possível (pelo meu nível de conhecimento em programação)
O instalador gera um atalho na área de trabalho e uma entrada no “adicionar/remover programas”.
Bugs conhecidos:
Ele não aceita utilizar um diretório que possua espaço no nome, pelo que consegui entender na exceção a culpa não é da forma que eu estou chamando o app para a extração mas do próprio extrator.
Se clicar 2x na caixa de texto onde está a localização do SqlPackage ele vai exibir um diretório padrão onde deve estar o executável, se você não selecionar o arquivo e clicar em cancelar ou ok, a caixa de texto vai ser preenchida pelo SqlPackage.exe sem o path completo, o que vai gerar um erro na execução da extração.
Se alguém se interessar em usar, gostaria de feedbacks sobre o app.
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.