Do not speak Portuguese? Translate this site with Google or Bing Translator
Entendendo o script de backup do PostgreSQL

Posted on: May 24, 2022 09:30 AM

Posted by: Renato

Views: 4750

Entendendo o script de backup do PostgreSQL

Backups de banco de dados garantem que os usuários percam o mínimo de dados possível no caso de qualquer falha. É disso que se trata este post. Você entenderá alguns dos diferentes métodos do PostgreSQL Backup e por que você precisa dele. Além disso, você aprenderá mais sobre os vários comandos para fazer backup e restaurar seu banco de dados PostgreSQL.

PostgreSQL é um sistema de gerenciamento de banco de dados relacional (DBMS) muito confiável que foi desenvolvido pela comunidade de código aberto por mais de 20 anos. Muitos aplicativos online, bem como aplicativos móveis e de análise, usam o PostgreSQL como seu banco de dados principal. Ele suporta consultas SQL (relacionais) e JSON (não relacionais). O PostgreSQL é bem suportado em todas as plataformas operacionais. Ele pode lidar com os dados e processos de otimização que outros bancos de dados comerciais suportam.

Principais recursos do PostgreSQL

Muitas empresas conhecidas usam o PostgreSQL , incluindo Apple, Cisco, Etsy, Red Hat, Spotify e muitas outras. Vejamos alguns dos recursos notáveis ​​do PostgreSQL, geralmente conhecido como Postgres , que o tornam tão popular entre as empresas:

  • DBMS Object-Relational: PostgreSQL é um Object-Relational Database Management System (ORDBMS) que pode lidar com bancos de dados orientados a objetos e relacionais.
  • Controle de simultaneidade multiversão: Para gerenciar solicitações simultâneas, o Postgres emprega controle de simultaneidade multiversão. Isso cria um “instantâneo” do Banco de Dados para cada transação, permitindo que as alterações sejam feitas sem afetar outras transações. Isso elimina a necessidade de bloqueios de leitura e garante que o banco de dados atenda aos requisitos ACID.
  • Banco de dados compatível com ACID: O registro de gravação antecipada do PostgreSQL o torna um banco de dados altamente tolerante a falhas. Possui uma rede de suporte da comunidade integrada.  O PostgreSQL é um banco de dados compatível com ACID que suporta chaves estrangeiras, junções, visualizações, gatilhos e procedimentos armazenados.
  • Grande rede de suporte: O PostgreSQL tem uma comunidade vibrante que está sempre disposta a ajudar. Serviços de ajuda privados de terceiros também estão disponíveis. A comunidade atualiza a plataforma Postgres por meio do PostgreSQL Global Development Group.

Você pode explorar mais recursos importantes e outros detalhes do PostgreSQL aqui .

Por que você deve fazer backup do seu banco de dados?

 

As organizações têm backups ou se preparam para backups para evitar a perda de dados e manter a continuidade. No entanto, raramente você investiga como uma perda de dados pode ocorrer em seu ambiente, o que é exclusivo para cada caso de uso. Há uma variedade de razões para a perda de dados que exige a necessidade de fazer backup de seus bancos de dados. Alguns dos motivos podem ser corrupção de dados, falha de dispositivo, erros de software ou humanos e muito mais.

Vamos ver quais são os benefícios do Backup de Banco de Dados:

  • Prevenção contra perda de dados: você pode ter ouvido falar ou enfrentado uma perda de dados devastadora. O objetivo principal do Backup de banco de dados é proteger arquivos essenciais em caso de falha do sistema, falha de hardware ou outros motivos.
  • Recuperação fácil: o backup é o método mais confiável, simples e seguro de recuperar arquivos perdidos após uma perda de dados. Sem muito esforço, um backup regular pode recuperar até 100% do seu Banco de Dados.
  • Mantém a continuidade dos dados: Para qualquer organização, os dados são o ativo mais valioso. De acordo com uma pesquisa , 60% das empresas não sobrevivem até 6 meses após a perda de dados. No caso de perda de dados, o backup frequente ajuda a garantir a segurança dos dados e a continuidade da empresa.
  • Economiza tempo e dinheiro: o backup economiza uma quantidade substancial de tempo e dinheiro que, de outra forma, seriam gastos na recuperação de dados perdidos. O processo de restauração pode se tornar fácil quando você tem backups adequados. Caso contrário, você pode ter que esperar muitos dias ou semanas para que um serviço profissional de recuperação de dados recupere seus dados perdidos.

Portanto, agora você pode ter um entendimento básico de por que precisa fazer backup de seus bancos de dados ou de quaisquer dados. Agora, vamos continuar lendo para aprender os principais tipos de métodos de backup do PostgreSQL e como você pode fazer backup e recuperar os dados.

Tipos de métodos de backup do PostgreSQL

O PostgreSQL oferece várias opções de backups em vários formatos. Para fazer backup de seus dados, você pode escolher um dos seguintes métodos de backup ou integrá-los.

1) Despejo SQL

Script de backup do PostgreSQL - Despejos SQL
Fonte da imagem

A função pg_dump do PostgreSQL exporta um banco de dados e despeja seu conteúdo em um arquivo. Internamente, esses dumps são consistentes, o que significa que refletem o estado do banco de dados no momento em que o pg_dump foi iniciado.

2) Backup no nível do sistema de arquivos

O backup no nível do sistema de arquivos é um dos métodos de backup mais rápidos. Isso envolve transferir os arquivos para um local de armazenamento e copiá-los de volta quando necessário. No entanto, essa abordagem funciona apenas para backups completos, não para backups de bancos de dados específicos. Mais informações sobre o backup em nível de sistema de arquivos podem ser encontradas aqui .

3) Arquivamento contínuo/recuperação pontual

Script de backup do PostgreSQL - Backup no nível do sistema de arquivos
Fonte da imagem

PostgreSQL maintains a Write Ahead Log (WAL) in the pg_xlog/ subdirectory of the data directory of the cluster. Every update made to the Database’s data files is recorded in the log. This log exists solely for crash-safety reasons: if the system fails, the Database log entries can be “replayed” to restore consistency since the last checkpoint.

To learn more about Continuous Archiving, you can refer to the PostgreSQL Documentation and Working With Postgres WAL Made Easy.

 

1) Script de Backup PostgreSQL: Banco de Dados PostgreSQL

O PostgreSQL oferece um recurso de backup - pg_dump  que pode fazer um backup, mesmo se o banco de dados estiver em uso. Ele não impede que outros usuários acessem o banco de dados e cria um arquivo de banco de dados que contém comandos SQL de uma maneira que pode ser recuperada prontamente.

Para executar o pg_dump , primeiro, faça login no seu servidor de banco de dados Postgres e, em seguida, mude para uma conta PostgreSQL. Você receberá um arquivo de script SQL. Insira o seguinte script de backup do PostgreSQL:

pg_dump your_database_name > file_name.sql

O pg_dump deve ter acesso de leitura a todas as tabelas das quais você deseja fazer backup. Portanto, você quase sempre precisa executá-lo como um superusuário de banco de dados para fazer backup de todo o banco de dados. Se você não tiver direitos suficientes para fazer backup do banco de dados completo, use opções como -n schema ou -t table para fazer backup de seções do banco de dados às quais você tem acesso.

O pg_dump descarrega apenas um banco de dados por vez, sem informações sobre funções ou tablespaces. O utilitário pg_dumpall é fornecido para facilitar o despejo do conteúdo completo de um cluster de banco de dados. O pg_dumpall faz backup de cada banco de dados em um cluster, bem como de informações de todo o cluster, como definições de função e tablespace. A seguir está uma sintaxe básica de como usar este script de backup do PostgreSQL:

pg_dumpall > dumpfile

Para ler mais sobre esses comandos de script PostgreSQL Backup, consulte a documentação pg_dump e pg_dumpall .

2) Script de backup do PostgreSQL: grandes bancos de dados PostgreSQL

Se você estiver fazendo backup de um banco de dados grande, provavelmente não poderá armazená-lo imediatamente devido a limitações de armazenamento. Portanto, você pode compactar o arquivo de despejo e salvá-lo nesses casos. gzip é um exemplo de ferramenta que ajuda nisso.

pg_dump database_name | gzip > filename.gz

Você também pode usar o modo paralelo do pg_dump para acelerar o dump de um banco de dados enorme. Isso despejará simultaneamente muitas tabelas. Com o parâmetro -j , você pode personalizar o grau de paralelismo. Apenas o formato de arquivo “diretório” suporta dumps paralelos. A seguir está uma sintaxe básica de como você pode usar o comando pg_dump PostgreSQL Backup Script para o dump paralelo:

pg_dump -j num -F d -f out.dir dbname

3) Script de backup do PostgreSQL: bancos de dados remotos

Com o uso de argumentos de linha de comando, o utilitário pg_dump do PostgreSQL simplifica o backup de servidores de banco de dados remotos. Você pode usar -h para indicar o host remoto, -p para especificar o host e -U para especificar o nome da função do banco de dados.

  • Para restaurar um banco de dados em um servidor remoto, use o seguinte comando de script PostgreSQL Backup para conectar-se a ele com o psql:
psql -h host_name -p port_number database_name < database.sql
  • A versatilidade de pg_dump e psql para escrever e ler de pipes permite que você despeje um banco de dados de um servidor para outro, por exemplo:
pg_dump -h source_host database_name | psql -h destination_host database_name

4) Script de backup do PostgreSQL: backups automáticos

cron jobs ' no PostgreSQL permitem agendar backups de seus bancos de dados em intervalos regulares. Para configurar um desses trabalhos, faça login como superusuário e execute os seguintes comandos:

  • Crie um diretório de backup primeiro e, em seguida, atualize o crontab para adicionar uma nova tarefa.
mkdir -p /srv/backups/databases 
crontab -e
  • Copie e cole o seguinte script PostgreSQL Backup no final do crontab:
pg_dump -U postgres database_name > /srv/backups/postgres/database_name.sql

O formato de despejo, por outro lado, depende inteiramente de você. Depois de terminar, o serviço cron continuará a executá-lo, garantindo que seus dados sejam copiados a cada meia-noite.

5) Restaurar um banco de dados PostgreSQL

Um banco de dados PostgreSQL pode ser restaurado de duas maneiras:

  • psql: Para restaurar a partir de um arquivo de script SQL de texto simples criado usando pg_dump.
  • pg_restore: Para restaurar de um arquivo .tar, diretório ou formato personalizado criado usando pg_dump.

Então, vamos dar uma olhada nestes 2 comandos Postgres Restore abaixo:

Restaurar um banco de dados PostgreSQL com psql

Se o seu backup for um arquivo de texto simples com scripts SQL, você pode restaurar seu banco de dados executando o seguinte comando psql no terminal PostgreSQL:

psql -U db_user db_name < dump_name.sql

Restaurar um banco de dados PostgreSQL com pg_restore

Se você escolher o formato personalizado, de diretório ou de arquivamento ao criar um arquivo de backup, terá que restaurar seu banco de dados com pg_restore :

pg_restore -d db_name /path/to/your/file/dump_name.tar -c -U db_user

Você pode usar o pg_restore -? comando para verificar as opções adicionais suportadas com este comando.

Backups de banco de dados são necessários para garantir que seus dados estejam sempre seguros e acessíveis. O tipo e o modo de backup escolhido são determinados por diversas variáveis. O PostgreSQL também oferece suporte a outros métodos de backup, como backup no nível do sistema de arquivos ou arquivamento contínuo/recuperação pontual, conforme discutido anteriormente neste artigo. Você pode aprender mais sobre eles aqui .

Desvantagens do SQL Dumps – Método de Backup PostgreSQL

Neste artigo, você falou sobre o método PostgreSQL SQL Dumps Backup . No entanto, existem algumas deficiências deste método, conforme discutido abaixo:

  • Os dumps SQL, como você viu, basicamente reconstroem cada variável com base nas instruções do arquivo de saída. Ele reconstrói todos os índices também. Como resultado, a restrição de velocidade de restauração é clara.
  • Uma das maiores consequências do precedente é a sobrecarga indesejada que nenhuma empresa deseja.
  • Os dumps SQL podem não ser 100% portáteis, pois são uma exportação lógica.
  • A reversão de sintaxe é uma preocupação séria quando vários dumps estão acontecendo ao mesmo tempo.

Assim, as desvantagens do método SQL Dumps PostgreSQL Backup dão muitas razões para empregar diferentes formas de Backups e Recuperação, com base em várias facções de TI de empresas que usam servidores PostgreSQL para processos do dia-a-dia.

Conclusão

Então, agora você pode ter uma compreensão detalhada do PostgreSQL Backup and Restore . Este post ajudou você a entender os diferentes tipos de métodos de backup do PostgreSQL e por que você precisa de um backup. Além disso, você explorou alguns dos comandos importantes de backup e restauração do PostgreSQL. Além disso, você também explorou algumas das desvantagens do método de backup discutido, o que faz você considerar outros métodos de backup do PostgreSQL.

No entanto, como desenvolvedor, extrair dados complexos de um conjunto diversificado de fontes de dados como bancos de dados, CRMs, ferramentas de gerenciamento de projetos, serviços de streaming, plataformas de marketing para seu banco de dados PostgreSQL pode parecer bastante desafiador. 

Compartilhe sua experiência com o PostgreSQL Backup and Restore na seção de comentários abaixo!

Fonte:
https://hevodata.com/learn/postgresql-backup-script/

1

Share

Donate to Site


About Author

Renato

Developer

Add a Comment
Comments 0 Comments

No comments yet! Be the first to comment

Blog Search


Categories

OUTROS (15) Variados (109) PHP (130) Laravel (157) Black Hat (3) front-end (28) linux (113) postgresql (39) Docker (26) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (54) devops (25) nodejs (5) npm (2) nvm (1) git (8) firefox (1) react (6) reactnative (5) collections (1) javascript (6) reactjs (7) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (1) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (1) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (11) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (4) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (1) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (39) Kubernetes (2) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (1) jwt (4) security (2) translate (1) kube (1) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (2) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (2) Architecture (3) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (1) autorizacao (2) authentication (4) authorization (2) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1)

New Articles



Get Latest Updates by Email