Deutsch | Português (BR) | Русский | Español | Українська

Database Lab Engine (DLE)

twitter
:zap: Clonagem ultrarrápida de bancos de dados PostgreSQL :elephant:
Thin clones de bancos de dados PostgreSQL para viabilizar desenvolvimento, testes, QA e ambientes de staging poderosos.
Disponível para qualquer PostgreSQL, incluindo AWS RDS, GCP CloudSQL, Heroku, Digital Ocean e instâncias autoadministradas.

Latest release CI pipeline status Go report DepShield Badge Contributor Covenant Community Slack Twitter Follow

Funcionalidades | Documentação | Blog | Comunidade & Suporte | Contribuindo

## Por que DLE? - Construa ambientes de dev/QA/staging baseados nos bancos de dados de produção completos. - Disponibilize clones temporários completos dos bancos de dados de produção para análises de queries e otimizações (veja também: [SQL optimization chatbot Joe](https://gitlab.com/postgres-ai/joe)). - Faça testes automatizados em pipelines de integração contínua para evitar incidentes em produção. Por examplo, clonar um banco de dados PostgreSQL de 1 TiB dura ~10 segundos. Dezenas de clones independentes são iniciados numa mesma máquina, suportando vários atividades de desenvolvimento e teste, sem aumento de custo de hardware.

Teste agora mesmo: - entre no [Database Lab Platform](https://console.postgres.ai/), associe-se a uma organização "Demo", e teste clonar um banco de dados demo de ~1TiB, ou - faça o check out de um outro setup demo, DLE CE: https://nik-tf-test.aws.postgres.ai:446/instance, use o token `demo` para acessar (este setup tem certificados autoassinado, então ignore os alertas do navegador) ## Como funciona Thin cloning é rápido pois utiliza [Copy-on-Write (CoW)](https://en.wikipedia.org/wiki/Copy-on-write#In_computer_storage). DLE suporta duas tecnologias para abilitar CoW e thin cloning: [ZFS](https://en.wikipedia.org/wiki/ZFS) (default) e [LVM](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)). Com ZFS, o Database Lab Engine periodicamente cria um novo snapshot do diretório de dados e mantém um conjunto de snapshots, limpando os antigos e não utilizados. Quando solicitam um novo clone, usuários podem escolher qual snapshot utilizar. Leia mais: - [Como funciona](https://postgres.ai/products/how-it-works) - [Testando Database Migrations](https://postgres.ai/products/database-migration-testing) - [Otimização SQL com Joe Bot](https://postgres.ai/products/joe) - [Perguntas e Respostas](https://postgres.ai/docs/questions-and-answers) ## Onde começar - [Tutorial do Database Lab para qualquer banco de dados PostgreSQL](https://postgres.ai/docs/tutorials/database-lab-tutorial) - [Tutorial do Database Lab para Amazon RDS](https://postgres.ai/docs/tutorials/database-lab-tutorial-amazon-rds) - [Template com Terraform module (AWS)](https://postgres.ai/docs/how-to-guides/administration/install-database-lab-with-terraform) ## Estudos de Caso - Qiwi: [Como o Qiwi controla os dados para acelerar o desenvolvimento](https://postgres.ai/resources/case-studies/qiwi) - GitLab: [Como o GitLab itera na otimização de performances SQL para reduzir os riscos de downtime](https://postgres.ai/resources/case-studies/gitlab) ## Funcionalidades - Clonagem the bancos de dados Postgres ultrarrápidos - apenas alguns segundos para criar um novo clone pronto para aceitar conexões e queries, independentemente do tamanho do banco de dados. - O número máximo teórico de snapshots e clones é 264 ([ZFS](https://en.wikipedia.org/wiki/ZFS), default). - O número máximo teórico de do diretório de dados do PostgreSQL: 256 quatrilhões zebibytes, ou 2128 bytes ([ZFS](https://en.wikipedia.org/wiki/ZFS), default). - Versões _major_ do PostgreSQL suportadas: 10–18. - Duas tecnologias são suportadas para viabilizar o thin cloning ([CoW](https://en.wikipedia.org/wiki/Copy-on-write)): [ZFS](https://en.wikipedia.org/wiki/ZFS) e [LVM](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)). - Todos os componentes estão empacotados em docker containers. - UI para tornar o trabalho manual mais conveniente. - API e CLI para automatizar o trabalho com DLE snapshots e clones. - Por default, os PostgreSQL containers incluem várias extensões populares ([docs](https://postgres.ai/docs/database-lab/supported-databases#extensions-included-by-default)). - PostgreSQL containers podem ser customizados ([docs](https://postgres.ai/docs/database-lab/supported-databases#how-to-add-more-extensions)). - O banco de dados original pode estar localizado em qualquer lugar (Postgres autoadministrado, AWS RDS, GCP CloudSQL, Azure, Timescale Cloud, etc) e NÃO requer nenhum ajuste. Não há NENHUM requerimento para instalar o ZFS ou Docker nos bancos de dados originais (production). - Um provisionamento de dados inicial pode ser feito tanto no nível físico (pg_basebackup, backup / ferramentes de arquivamento como WAL-G ou pgBackRest) ou lógico (dump/restore direto da origem ou de arquivos armazenados na AWS S3). - Para o modo lógico, suporta a retenção parcial de dados (bancos específicos, tabelas específicas). - Para o modo físico, um estado de atualização contínua é suportado ("sync container"), tornando o DLE uma versão especializada de um standby Postgres. - Para o modo lógico, suporta atualização completa periódica, automatizada, e controlada pelo DLE. É possível utilizar multiplos discos contendo diferentes versões do banco de dados, para que a atualização completa não precise de _downtime_. - Fast Point in Time Recovery (PITR) para os pontos disponíveis em DLE _snapshots_. - Clones não utilizados são automaticamente removidos. - "Deletion protection" _flag_ pode ser utilizada para bloquear remoções automáticas ou manuais dos clones. - _Snapshot retention policies_ são suportadas na configuração do DLE. - Clones Persistentes: clones sobrevivem a DLE _restarts_ (incluindo _reboot_ total da VM). - O comand "reset" pode ser utilizado para trocar para uma versão diferente dos dados. - O componente DB Migration Checker coleta vários artefatos úteis para testar o banco de dados em CI ([docs](https://postgres.ai/docs/db-migration-checker)). - SSH port forwarding para conexões com a API e o Postgres. - É possível especificar parâmetros para configurar Docker _containers_ na configuração do DLE. - Cotas de utilização de recursos para clones: CPU, RAM (cotas de container, suportadas pelo Docker) - Parâmetros de configuração do Postgres podem ser especificados na configuração do DLE (separadamente para clones, o "sync" _container_, e o "promote" _container_). - Monitoramento: `/healthz` API _endpoint_ livre de autenticação, `/status` extendido (requer autenticação), [Netdata module](https://gitlab.com/postgres-ai/netdata_for_dle). ## Contribuindo ### Adicione um estrela ao projeto A forma mais simples the contribuir é adicionar uma estrela ao projeto no GitHub/GitLab: ![Adicionar estrela](../assets/star.gif) ### Compartilhe o projeto Poste um tweet mencionando [@Database_Lab](https://twitter.com/Database_Lab) ou compartilhe o linke para este repositório na sua rede social favorita. Se você usa o DLE ativamente, conte aos outros sobre a sua experiência. Você pode usar o logo que está referenciado abaixo salvo na pasta `./assets`. Fique à vontade para por nos seus documentos, apresentações, aplicações, e interfaces web para mostrar que você utiliza o DLE. _Snippet_ HTML para _backgrounds_ mais claros:

```html ``` Para _backgrounds_ mais escuros:

```html ``` ### Proponha uma idéia ou reporte um _bug_ Veja o nosso [guia de contribuição](../CONTRIBUTING.md) para mais detalhes. ### Participate in development Veja o nosso [guia de contribuição](../CONTRIBUTING.md) para mais detalhes. ### Traduza o README Tornar o Database Lab Engine mais acessível aos engenheiros no mundo todo é uma ótima ajuda para o projeto. Veja detalhes na [seção de tradução do guia de contribuição](../CONTRIBUTING.md#Translation). ### Referências - [Componentes DLE](https://postgres.ai/docs/reference-guides/database-lab-engine-components) - [Configuração do DLE](https://postgres.ai/docs/database-lab/config-reference) - [Documentação da API](https://postgres.ai/swagger-ui/dblab/) - [Documentação do Client CLI](https://postgres.ai/docs/database-lab/cli-reference) ### How-to guides - [Como instalar o Database Lab com Terraform na AWS](https://postgres.ai/docs/how-to-guides/administration/install-database-lab-with-terraform) - [Como instalar e inicializar o Database Lab CLI](https://postgres.ai/docs/guides/cli/cli-install-init) - [Como administrar o DLE](https://postgres.ai/docs/how-to-guides/administration) - [Como trabalhar com clones](https://postgres.ai/docs/how-to-guides/cloning) Você pode encontrar mais [no seção "How-to guides"](https://postgres.ai/docs/how-to-guides) dos documentos. ### Diversos - [Imagens Docker do DLE](https://hub.docker.com/r/postgresai/dblab-server) - [Imagens Docker extendidas para PostgreSQL (com uma penca de extensões)](https://hub.docker.com/r/postgresai/extended-postgres) - [SQL Optimization chatbot (Joe Bot)](https://postgres.ai/docs/joe-bot) - [DB Migration Checker](https://postgres.ai/docs/db-migration-checker) ## Licença O código fonte do DLE está licensiado pela licença de código aberto [Apache 2.0](https://opensource.org/license/apache-2-0/), aprovada pela OSI. Contacte o time do Postgres.ai se você desejar uma licença _trial_ ou comercial que não contenha as cláusulas da GPL: [Página de contato](https://postgres.ai/contact). [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fpostgres-ai%2Fdatabase-lab-engine.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fpostgres-ai%2Fdatabase-lab-engine?ref=badge_large) ## Comunidade e Suporte - ["Acordo da Comunidade do Database Lab Engine de Código de Conduta"](../CODE_OF_CONDUCT.md) - Onde conseguir ajuda: [Página de contato](https://postgres.ai/contact) - [Comunidade no Slack](https://slack.postgres.ai) - Se você precisa reportar um problema de segurança, siga as instruções em ["Database Lab Engine guia de segurança"](../SECURITY.md). [![Acordo do contribuidor](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?color=blue)](../CODE_OF_CONDUCT.md)