{"id":2488,"date":"2026-08-26T18:00:33","date_gmt":"2026-08-26T21:00:33","guid":{"rendered":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/"},"modified":"2026-08-26T18:00:33","modified_gmt":"2026-08-26T21:00:33","slug":"aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery","status":"publish","type":"post","link":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/","title":{"rendered":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery"},"content":{"rendered":"<p>Nenhuma estrat\u00e9gia de administra\u00e7\u00e3o de banco de dados pode ser considerada s\u00e9ria sem um plano de <strong>backup<\/strong> robusto, testado e automatizado. Nesta aula avan\u00e7ada do curso <strong>PostgreSQL \u2014 Do Zero ao Avan\u00e7ado<\/strong>, voc\u00ea vai dominar as tr\u00eas ferramentas nativas mais importantes para proteger dados no PostgreSQL: o <strong>pg_dump<\/strong>, respons\u00e1vel por backups l\u00f3gicos; o <strong>pg_basebackup<\/strong>, que gera backups f\u00edsicos completos do cluster; e o mecanismo de <strong>Point-in-Time Recovery (PITR)<\/strong>, que combina um backup f\u00edsico base com o arquivamento cont\u00ednuo de <strong>WAL<\/strong> para permitir restaura\u00e7\u00f5es at\u00e9 um momento exato no tempo. O objetivo \u00e9 transformar voc\u00ea de algu\u00e9m que \u201cfaz c\u00f3pias\u201d em um profissional que projeta e executa estrat\u00e9gias de recupera\u00e7\u00e3o de desastres com seguran\u00e7a e previsibilidade.<\/p>\n<p>O PostgreSQL oferece um ecossistema de <strong>backup<\/strong> extremamente flex\u00edvel, mas tamb\u00e9m repleto de detalhes que, se ignorados, levam a backups in\u00fateis ou restaura\u00e7\u00f5es falhas. Um backup l\u00f3gico com <strong>pg_dump<\/strong> \u00e9 perfeito para extrair schemas, migrar bases entre vers\u00f5es ou realizar backups seletivos de tabelas, mas ele n\u00e3o captura o estado f\u00edsico do cluster nem permite recupera\u00e7\u00e3o at\u00e9 um ponto arbitr\u00e1rio no tempo. J\u00e1 o <strong>pg_basebackup<\/strong>, associado ao arquivamento de WAL, \u00e9 a base do PITR e da replica\u00e7\u00e3o f\u00edsica, permitindo reconstruir um ambiente completo ou criar r\u00e9plicas standby. Entender quando usar cada ferramenta e como combin\u00e1-las \u00e9 o que separa um DBA j\u00fanior de um profissional avan\u00e7ado.<\/p>\n<p>Por que isso importa? Porque em ambientes de produ\u00e7\u00e3o, uma falha de hardware, um erro humano de <code>DELETE<\/code> sem <code>WHERE<\/code> ou uma corrup\u00e7\u00e3o de arquivos pode significar a perda irrevers\u00edvel de horas, dias ou at\u00e9 meses de dados. Sem um <strong>backup<\/strong> v\u00e1lido, n\u00e3o h\u00e1 restaura\u00e7\u00e3o poss\u00edvel. Com as t\u00e9cnicas desta aula, voc\u00ea ser\u00e1 capaz de recuperar desde um \u00fanico objeto at\u00e9 um cluster inteiro, reduzindo o RPO (Recovery Point Objective) e o RTO (Recovery Time Objective) a patamares aceit\u00e1veis para a maioria das aplica\u00e7\u00f5es cr\u00edticas. Em nossos projetos na JRT Technology Solutions, a valida\u00e7\u00e3o de backups \u00e9 uma etapa obrigat\u00f3ria antes de qualquer libera\u00e7\u00e3o para produ\u00e7\u00e3o.<\/p>\n<p>Para acompanhar esta aula, voc\u00ea precisar\u00e1 de um servidor Linux com o <strong>PostgreSQL 16<\/strong> instalado e em execu\u00e7\u00e3o, al\u00e9m de acesso ao usu\u00e1rio <code>postgres<\/code> ou a um superusu\u00e1rio equivalente. Recomendamos fortemente que voc\u00ea utilize uma m\u00e1quina virtual ou container dedicado a testes, pois vamos parar e reiniciar o servi\u00e7o, mover diret\u00f3rios de dados e executar comandos destrutivos em um ambiente controlado. Os procedimentos foram validados em <strong>Ubuntu\/Debian<\/strong> e em <strong>CentOS\/RHEL\/Rocky Linux<\/strong>, cobrindo as diferen\u00e7as de diret\u00f3rios e gerenciamento de servi\u00e7os dessas fam\u00edlias.<\/p>\n<p>Ao final desta aula, voc\u00ea ser\u00e1 capaz de: criar backups l\u00f3gicos em todos os formatos suportados pelo <strong>pg_dump<\/strong>; gerar backups f\u00edsicos completos e consistentes com <strong>pg_basebackup<\/strong>; configurar o arquivamento autom\u00e1tico de WAL; restaurar um cluster inteiro a partir de um backup f\u00edsico; e executar recupera\u00e7\u00e3o <strong>Point-in-Time Recovery<\/strong> at\u00e9 um hor\u00e1rio, uma transa\u00e7\u00e3o ou um ponto de restaura\u00e7\u00e3o previamente definido. Vamos come\u00e7ar pelos fundamentos que tornam tudo isso poss\u00edvel.<\/p>\n<h3>O que voc\u00ea vai aprender nesta aula<\/h3>\n<ul>\n<li>Diferenciar <strong>backup l\u00f3gico<\/strong> de <strong>backup f\u00edsico<\/strong> e compreender o papel do <strong>WAL<\/strong> na recupera\u00e7\u00e3o.<\/li>\n<li>Utilizar <strong>pg_dump<\/strong> e <strong>pg_dumpall<\/strong> para gerar scripts SQL e arquivos customizados de <strong>backup<\/strong>, com op\u00e7\u00f5es de filtragem, compress\u00e3o e paralelismo.<\/li>\n<li>Configurar o servidor para aceitar conex\u00f5es de replica\u00e7\u00e3o e executar <strong>pg_basebackup<\/strong> para obter uma c\u00f3pia f\u00edsica consistente do cluster.<\/li>\n<li>Ativar e validar o arquivamento cont\u00ednuo de <strong>WAL<\/strong> com <code>archive_mode<\/code> e <code>archive_command<\/code>.<\/li>\n<li>Realizar restaura\u00e7\u00f5es completas e recupera\u00e7\u00e3o <strong>Point-in-Time Recovery (PITR)<\/strong> configurando <code>restore_command<\/code> e <code>recovery_target_*<\/code>.<\/li>\n<li>Verificar a integridade dos seus <strong>backups<\/strong> com <strong>pg_verifybackup<\/strong> e interpretar sa\u00eddas de logs de recupera\u00e7\u00e3o.<\/li>\n<li>Aplicar boas pr\u00e1ticas de reten\u00e7\u00e3o, automatiza\u00e7\u00e3o, monitoramento e testes peri\u00f3dicos de restaura\u00e7\u00e3o.<\/li>\n<\/ul>\n<h3>Pr\u00e9-requisitos e Ambiente<\/h3>\n<p>Antes de iniciar os procedimentos pr\u00e1ticos, certifique-se de que o <strong>PostgreSQL 16<\/strong> est\u00e1 instalado e funcional no seu servidor Linux. Se voc\u00ea seguiu as aulas anteriores do curso, j\u00e1 deve ter o cluster inicializado e em execu\u00e7\u00e3o. Caso contr\u00e1rio, utilize os comandos abaixo para instalar os pacotes b\u00e1sicos no <strong>Ubuntu 22.04\/Debian 12<\/strong> e no <strong>Rocky Linux 9<\/strong>. Os exemplos foram testados com PostgreSQL 16, mas a maioria dos comandos \u00e9 compat\u00edvel com vers\u00f5es 12 ou superiores, desde que voc\u00ea ajuste os caminhos e nomes de servi\u00e7o.<\/p>\n<p>No <strong>Ubuntu\/Debian<\/strong>, a instala\u00e7\u00e3o do servidor e dos utilit\u00e1rios de cliente pode ser feita com o reposit\u00f3rio oficial da <em>PostgreSQL Global Development Group<\/em>. Execute:<\/p>\n<pre><code># Ubuntu\/Debian: instalar PostgreSQL 16 e utilit\u00e1rios de backup\nsudo apt update\nsudo apt install -y postgresql-16 postgresql-client-16\nsudo systemctl enable --now postgresql\nsudo systemctl status postgresql --no-pager<\/code><\/pre>\n<pre><code class=\"output\">\u25cf postgresql.service - PostgreSQL RDBMS\n     Loaded: loaded (\/lib\/systemd\/system\/postgresql.service; enabled; preset: enabled)\n     Active: active (exited) since Wed 2026-08-26 09:15:00 -03; 1h ago\n    Process: 2345 ExecStart=\/bin\/true (code=exited, status=0\/SUCCESS)\n   Main PID: 2345 (code=exited, status=0\/SUCCESS)\n        CPU: 4ms<\/code><\/pre>\n<p>No <strong>Rocky Linux 9 \/ RHEL 9<\/strong>, voc\u00ea precisa habilitar o m\u00f3dulo correspondente e instalar o servidor e o cliente. Os comandos s\u00e3o:<\/p>\n<pre><code># Rocky Linux \/ RHEL 9: instalar PostgreSQL 16 e utilit\u00e1rios de backup\nsudo dnf install -y postgresql16-server postgresql16\nsudo \/usr\/pgsql-16\/bin\/postgresql-16-setup initdb\nsudo systemctl enable --now postgresql-16\nsudo systemctl status postgresql-16 --no-pager<\/code><\/pre>\n<pre><code class=\"output\">\u25cf postgresql-16.service - PostgreSQL 16 database server\n     Loaded: loaded (\/usr\/lib\/systemd\/system\/postgresql-16.service; enabled; preset: disabled)\n     Active: active (running) since Wed 2026-08-26 09:20:00 -03; 1h ago\n   Main PID: 3120 (postgres)\n      Tasks: 8 (limit: 2313)\n     Memory: 28.9M\n     CGroup: \/system.slice\/postgresql-16.service<\/code><\/pre>\n<p>Al\u00e9m dos pacotes, voc\u00ea precisar\u00e1 de acesso ao usu\u00e1rio <code>postgres<\/code> ou a um papel com privil\u00e9gios de <strong>SUPERUSER<\/strong>. Todos os comandos de <strong>backup<\/strong> e restaura\u00e7\u00e3o que envolvem o sistema de arquivos exigem permiss\u00f5es adequadas nos diret\u00f3rios de destino. Recomendamos criar um diret\u00f3rio exclusivo para os artefatos de <strong>backup<\/strong>, por exemplo <code>\/var\/backups\/postgresql<\/code> no Ubuntu ou <code>\/var\/lib\/pgsql\/backups<\/code> no Rocky, e conceder permiss\u00e3o de escrita ao usu\u00e1rio <code>postgres<\/code>. Abaixo mostramos como preparar esse diret\u00f3rio nas duas fam\u00edlias.<\/p>\n<pre><code># Ubuntu\/Debian: criar diret\u00f3rio de backups e ajustar permiss\u00f5es\nsudo mkdir -p \/var\/backups\/postgresql\nsudo chown postgres:postgres \/var\/backups\/postgresql\nsudo -u postgres psql -c \"SELECT version();\"<\/code><\/pre>\n<pre><code class=\"output\">                                                   version                                                    \n--------------------------------------------------------------------------------------------------------------\n PostgreSQL 16.0 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 12.2.0-14ubuntu2) 12.2.0, 64-bit\n(1 row)<\/code><\/pre>\n<pre><code># Rocky Linux \/ RHEL 9: criar diret\u00f3rio de backups e ajustar permiss\u00f5es\nsudo mkdir -p \/var\/lib\/pgsql\/backups\nsudo chown postgres:postgres \/var\/lib\/pgsql\/backups\nsudo -u postgres psql -c \"SELECT version();\"<\/code><\/pre>\n<pre><code class=\"output\">                                                   version                                                    \n--------------------------------------------------------------------------------------------------------------\n PostgreSQL 16.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2), 64-bit\n(1 row)<\/code><\/pre>\n<p>Com o ambiente pronto, voc\u00ea tamb\u00e9m precisa ter um banco de dados de exemplo para testar os procedimentos. Vamos criar um banco chamado <code>loja<\/code> com algumas tabelas e dados. Esse banco ser\u00e1 usado em todos os exemplos de <strong>backup<\/strong> e restaura\u00e7\u00e3o desta aula. Conecte-se ao PostgreSQL com o usu\u00e1rio <code>postgres<\/code> e execute os comandos SQL abaixo.<\/p>\n<pre><code># Criar banco de exemplo e popular tabelas\nsudo -u postgres psql &lt;&lt;'EOF'\nCREATE DATABASE loja;\n\\c loja\nCREATE TABLE clientes (\n    id SERIAL PRIMARY KEY,\n    nome TEXT NOT NULL,\n    email TEXT UNIQUE NOT NULL,\n    criado_em TIMESTAMPTZ DEFAULT now()\n);\nCREATE TABLE pedidos (\n    id SERIAL PRIMARY KEY,\n    cliente_id INT REFERENCES clientes(id),\n    valor NUMERIC(10,2) NOT NULL,\n    criado_em TIMESTAMPTZ DEFAULT now()\n);\nINSERT INTO clientes (nome, email) VALUES\n    ('Ana Souza', 'ana@example.com'),\n    ('Bruno Lima', 'bruno@example.com'),\n    ('Carla Prado', 'carla@example.com');\nINSERT INTO pedidos (cliente_id, valor) VALUES\n    (1, 199.90),\n    (2, 540.00),\n    (3, 87.35);\nEOF<\/code><\/pre>\n<pre><code class=\"output\">CREATE DATABASE\nYou are now connected to database \"loja\" as user \"postgres\".\nCREATE TABLE\nCREATE TABLE\nINSERT 0 3\nINSERT 0 3<\/code><\/pre>\n<h3>Fundamentos: Backup L\u00f3gico vs Backup F\u00edsico e o Papel do WAL<\/h3>\n<p>Antes de executar qualquer ferramenta, \u00e9 essencial compreender as duas categorias principais de <strong>backup<\/strong> no PostgreSQL. O <strong>backup l\u00f3gico<\/strong> \u00e9 aquele que extrai o conte\u00fado dos bancos em um formato compreens\u00edvel pelo pr\u00f3prio PostgreSQL ou por outras ferramentas \u2014 normalmente comandos SQL ou um formato bin\u00e1rio customizado. O <strong>pg_dump<\/strong>, o <strong>pg_dumpall<\/strong> e o <code>COPY TO<\/code> s\u00e3o exemplos de utilit\u00e1rios l\u00f3gicos. Eles permitem recuperar objetos individuais, migrar entre vers\u00f5es, reordenar dados e at\u00e9 modificar o conte\u00fado antes da restaura\u00e7\u00e3o. No entanto, um <strong>backup<\/strong> l\u00f3gico n\u00e3o \u00e9 uma imagem consistente do cluster como um todo; ele \u00e9 uma fotografia l\u00f3gica da base no momento em que a conex\u00e3o foi estabelecida, dependendo de transa\u00e7\u00f5es com isolamento <code>REPEATABLE READ<\/code>.<\/p>\n<p>O <strong>backup f\u00edsico<\/strong>, por outro lado, copia os arquivos bin\u00e1rios que comp\u00f5em o cluster \u2014 o diret\u00f3rio de dados, os <strong>tablespaces<\/strong> e, quando configurado, os arquivos de <strong>WAL<\/strong>. O <strong>pg_basebackup<\/strong> \u00e9 a ferramenta nativa para esse tipo de c\u00f3pia. Um backup f\u00edsico \u00e9 essencial para ambientes de grande volume, pois a restaura\u00e7\u00e3o \u00e9 muito mais r\u00e1pida (n\u00e3o h\u00e1 recria\u00e7\u00e3o de \u00edndices via SQL) e pode ser combinada com o <strong>WAL<\/strong> arquivado para permitir recupera\u00e7\u00e3o at\u00e9 um ponto no tempo. Por\u00e9m, o backup f\u00edsico \u00e9 espec\u00edfico da vers\u00e3o e da plataforma; voc\u00ea n\u00e3o pode, por exemplo, restaurar um backup f\u00edsico do PostgreSQL 16 em um servidor Windows se o backup foi gerado em Linux.<\/p>\n<p>O <strong>WAL<\/strong> (Write-Ahead Logging) \u00e9 o mecanismo central que torna tudo isso poss\u00edvel. Antes de modificar qualquer p\u00e1gina de dados, o PostgreSQL grava a mudan\u00e7a correspondente no <strong>WAL<\/strong>, garantindo durabilidade e permitindo recupera\u00e7\u00e3o ap\u00f3s falhas. Esses registros s\u00e3o segmentados em arquivos de 16 MB (por padr\u00e3o) armazenados no subdiret\u00f3rio <code>pg_wal<\/code>. Quando ativamos o <em>archiving<\/em>, o PostgreSQL envia cada segmento completado para um local externo por meio do comando definido em <code>archive_command<\/code>. Esse fluxo cont\u00ednuo de <strong>WAL<\/strong> arquivado \u00e9 o que permite reconstruir o estado do banco desde o \u00faltimo <strong>backup<\/strong> f\u00edsico at\u00e9 qualquer instante posterior.<\/p>\n<p>Para implementar um plano de <strong>backup<\/strong> completo, a estrat\u00e9gia padr\u00e3o em produ\u00e7\u00e3o combina um <strong>pg_basebackup<\/strong> peri\u00f3dico (por exemplo, di\u00e1rio ou semanal) com o arquivamento cont\u00ednuo de <strong>WAL<\/strong>. Com isso, se ocorrer uma falha \u00e0s 14h32, voc\u00ea restaura o backup f\u00edsico das 02h00 e aplica todos os segmentos de <strong>WAL<\/strong> arquivados at\u00e9 as 14h31. Esse \u00e9 o conceito de <strong>Point-in-Time Recovery<\/strong>: o cluster volta exatamente ao estado desejado, nem antes nem depois. Sem o arquivamento de WAL, o <strong>pg_basebackup<\/strong> sozinho permite apenas a restaura\u00e7\u00e3o do instante em que o backup foi conclu\u00eddo, sem granularidade temporal.<\/p>\n<p>Um erro comum entre iniciantes \u00e9 acreditar que um <strong>pg_dump<\/strong> di\u00e1rio \u00e9 suficiente para alta disponibilidade. Na pr\u00e1tica, ele oferece RPO de at\u00e9 24 horas, n\u00e3o permite PITR granular e pode levar horas para restaurar em bases grandes. Por outro lado, usar apenas <strong>pg_basebackup<\/strong> sem arquivar WAL gera um snapshots est\u00e1ticos que envelhecem mal. Por isso, nesta aula vamos tratar as duas abordagens como complementares: <strong>backup l\u00f3gico<\/strong> para flexibilidade e granularidade de objetos, e <strong>backup f\u00edsico + WAL<\/strong> para recupera\u00e7\u00e3o completa e PITR. Nossos especialistas utilizam diariamente essa combina\u00e7\u00e3o em implanta\u00e7\u00f5es na JRT Technology Solutions, sempre com testes automatizados de restaura\u00e7\u00e3o.<\/p>\n<h3>Backup L\u00f3gico com pg_dump e pg_dumpall \u2014 Passo a Passo<\/h3>\n<p>O <strong>pg_dump<\/strong> \u00e9 a ferramenta de <strong>backup<\/strong> l\u00f3gico por excel\u00eancia no PostgreSQL. Ele se conecta a um banco de dados espec\u00edfico e extrai seus objetos e dados em um dos quatro formatos dispon\u00edveis: <strong>plain<\/strong> (script SQL leg\u00edvel), <strong>custom<\/strong> (formato bin\u00e1rio compactado, restaurado com <code>pg_restore<\/code>), <strong>directory<\/strong> (um diret\u00f3rio com arquivos por tabela, ideal para paralelismo) e <strong>tar<\/strong> (arquivo tar, menos utilizado). Cada formato tem vantagens: o <strong>plain<\/strong> pode ser editado e aplicado diretamente com <code>psql<\/code>, enquanto o <strong>custom<\/strong> e o <strong>directory<\/strong> permitem restaura\u00e7\u00e3o seletiva de objetos e paralelismo com <code>-j<\/code>.<\/p>\n<p>Antes de executar o <strong>pg_dump<\/strong>, analise o banco que ser\u00e1 copiado e defina o objetivo do <strong>backup<\/strong>. Se voc\u00ea precisa migrar o banco <code>loja<\/code> inteiro, incluindo seus dados, o comando b\u00e1sico em formato plain \u00e9:<\/p>\n<pre><code># Backup l\u00f3gico em formato plain (script SQL) do banco \"loja\"\n# -h: host; -U: usu\u00e1rio; -d: banco; -Fp: formato plain; -f: arquivo de sa\u00edda\nsudo -u postgres pg_dump -h localhost -U postgres -d loja -Fp -f \/var\/backups\/postgresql\/loja_plain_$(date +%F).sql<\/code><\/pre>\n<pre><code class=\"output\">pg_dump: last built-in OID is 16383\npg_dump: reading schemas\npg_dump: reading user-defined tables\npg_dump: reading extensions\npg_dump: reading user-defined functions\npg_dump: reading user-defined types\npg_dump: reading procedural languages\npg_dump: reading user-defined aggregate functions\npg_dump: reading user-defined operators\npg_dump: reading user-defined access methods\npg_dump: reading user-defined operator classes\npg_dump: reading user-defined text search parsers\npg_dump: reading user-defined text search templates\npg_dump: reading user-defined text search dictionaries\npg_dump: reading user-defined text search configurations\npg_dump: reading user-defined foreign-data wrappers\npg_dump: reading user-defined foreign servers\npg_dump: reading default privileges\npg_dump: reading user-defined collations\npg_dump: reading user-defined conversions\npg_dump: reading type casts\npg_dump: reading table inheritance information\npg_dump: reading event triggers\npg_dump: finding extension tables\npg_dump: finding inheritance relationships\npg_dump: reading column info for interesting tables\npg_dump: finding table default expressions\npg_dump: finding functions with unsupported names\npg_dump: finding table check constraints\npg_dump: finding table partition information\npg_dump: finding table triggers\npg_dump: finding table dependencies\npg_dump: saving database definition<\/code><\/pre>\n<p>O comando acima gera um arquivo <code>.sql<\/code> contendo os comandos <code>CREATE TABLE<\/code>, <code>COPY<\/code> e restri\u00e7\u00f5es do banco <code>loja<\/code>. Para restaura\u00e7\u00e3o, basta usar <code>psql -d novo_banco -f arquivo.sql<\/code>. No entanto, o formato <strong>plain<\/strong> n\u00e3o suporta restaura\u00e7\u00e3o paralela nem seletiva. Para ambientes maiores ou para facilitar a automa\u00e7\u00e3o, o formato <strong>custom<\/strong> com compress\u00e3o \u00e9 mais eficiente:<\/p>\n<pre><code># Backup l\u00f3gico em formato custom (bin\u00e1rio comprimido)\n# -Fc: custom; -Z 9: compress\u00e3o m\u00e1xima; -v: verbose\nsudo -u postgres pg_dump -h localhost -U postgres -d loja -Fc -Z 9 -v -f \/var\/backups\/postgresql\/loja_custom_$(date +%F).backup<\/code><\/pre>\n<pre><code class=\"output\">pg_dump: last built-in OID is 16383\npg_dump: reading schemas\n...\npg_dump: saving database definition\npg_dump: dumping contents of table \"clientes\"\npg_dump: dumping contents of table \"pedidos\"<\/code><\/pre>\n<p>Com o formato <strong>custom<\/strong>, a restaura\u00e7\u00e3o usa o <strong>pg_restore<\/strong>, que permite selecionar apenas objetos espec\u00edficos, usar m\u00faltiplos jobs paralelos (<code>-j<\/code>) e validar o arquivo antes de aplicar. Para gerar um <strong>backup<\/strong> em <strong>directory<\/strong>, que tamb\u00e9m suporta paralelismo e restaura\u00e7\u00e3o seletiva, execute:<\/p>\n<pre><code># Backup l\u00f3gico em formato directory (diret\u00f3rio com um arquivo por objeto)\n# -Fd: directory; -j 4: 4 jobs paralelos; -v: verbose\nsudo -u postgres pg_dump -h localhost -U postgres -d loja -Fd -j 4 -v -f \/var\/backups\/postgresql\/loja_dir_$(date +%F)<\/code><\/pre>\n<pre><code class=\"output\">pg_dump: reading schemas\npg_dump: reading user-defined tables\npg_dump: reading extensions\npg_dump: creating pg_dump dump directory \"\/var\/backups\/postgresql\/loja_dir_2026-08-26\/\"\npg_dump: dumping contents of table \"clientes\"\npg_dump: dumping contents of table \"pedidos\"\npg_dump: dumping contents of table \"clientes\"\npg_dump: dumping contents of table \"pedidos\"\npg_dump: finished item 1 TABLEDATA \"clientes\"\npg_dump: finished item 1 TABLEDATA \"pedidos\"<\/code><\/pre>\n<p>O <strong>pg_dumpall<\/strong>, por sua vez, \u00e9 utilizado para extrair <strong>roles<\/strong>, <strong>tablespaces<\/strong> e par\u00e2metros globais que n\u00e3o pertencem a um \u00fanico banco. Ele gera um script SQL que deve ser restaurado antes dos backups individuais. Em um plano de <strong>backup<\/strong> completo, o <strong>pg_dumpall<\/strong> deve ser executado juntamente com os <strong>pg_dump<\/strong> de cada banco:<\/p>\n<pre><code># Backup global (roles, tablespaces, par\u00e2metros)\nsudo -u postgres pg_dumpall -h localhost -U postgres -f \/var\/backups\/postgresql\/global_$(date +%F).sql --globals-only --verbose<\/code><\/pre>\n<pre><code class=\"output\">pg_dumpall: executing SELECT oid, rolname, rolsuper, rolinherit, rolcreaterole, rolcreatedb, rolcanlogin, rolconnlimit, rolpassword, rolvaliduntil, rolreplication, rolbypassrls, rolconfig, pg_catalog.shadow_pass(oid) FROM pg_authid WHERE rolname !~ '^pg_' ORDER BY 2\npg_dumpall: executing SELECT rolname, rolconfig FROM pg_authid WHERE rolname !~ '^pg_' ORDER BY 1\npg_dumpall: executing SELECT rolname, datname, pg_catalog.array_to_string(setconfig, E'\\n') FROM pg_db_role_setting WHERE setdatabase <> 0 ORDER BY 1,2\npg_dumpall: executing SELECT rolname, datname, pg_catalog.array_to_string(setconfig, E'\\n') FROM pg_db_role_setting WHERE setdatabase = 0 ORDER BY 1,2\npg_dumpall: executing SELECT rolname, attributes, comments FROM pg_authid JOIN pg_shdescription ON oid = objoid WHERE rolname !~ '^pg_' ORDER BY 1\npg_dumpall: executing SELECT rolname, datname, pg_catalog.array_to_string(setconfig, E'\\n') FROM pg_db_role_setting WHERE setdatabase <> 0 ORDER BY 1,2\npg_dumpall: last built-in OID is 16383<\/code><\/pre>\n<p>Para verificar o conte\u00fado do arquivo global, voc\u00ea pode usar <code>grep<\/code> para listar as <strong>roles<\/strong> extra\u00eddas. Abaixo, a tabela resume as principais op\u00e7\u00f5es do <strong>pg_dump<\/strong> que voc\u00ea deve memorizar:<\/p>\n<table border=\"1\" cellpadding=\"8\" cellspacing=\"0\" style=\"border-collapse: collapse; width: 100%;\">\n<caption><strong>Tabela 1 \u2014 Principais op\u00e7\u00f5es do pg_dump e pg_dumpall<\/strong><\/caption>\n<thead>\n<tr>\n<th>Op\u00e7\u00e3o<\/th>\n<th>Descri\u00e7\u00e3o<\/th>\n<th>Exemplo<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>-Fp<\/code><\/td>\n<td>Formato plain (script SQL)<\/td>\n<td><code>-Fp<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>-Fc<\/code><\/td>\n<td>Formato custom (bin\u00e1rio, restaura\u00e7\u00e3o com pg_restore)<\/td>\n<td><code>-Fc<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>-Fd<\/code><\/td>\n<td>Formato directory (paralelo e seletivo)<\/td>\n<td><code>-Fd<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>-Z &lt;n&gt;<\/code><\/td>\n<td>N\u00edvel de compress\u00e3o (0 a 9)<\/td>\n<td><code>-Z 9<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>-j &lt;n&gt;<\/code><\/td>\n<td>Jobs paralelos (apenas Fd)<\/td>\n<td><code>-j 4<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>--clean<\/code><\/td>\n<td>Adiciona DROP antes de CREATE<\/td>\n<td><code>--clean<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>--if-exists<\/code><\/td>\n<td>Usa DROP IF EXISTS<\/td>\n<td><code>--if-exists<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>--create<\/code><\/td>\n<td>Inclui CREATE DATABASE no script<\/td>\n<td><code>--create<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>--no-owner<\/code><\/td>\n<td>N\u00e3o restaura ownership (\u00fatil ao migrar)<\/td>\n<td><code>--no-owner<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>--no-privileges<\/code><\/td>\n<td>N\u00e3o restaura GRANTs<\/td>\n<td><code>--no-privileges<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>--globals-only<\/code><\/td>\n<td>pg_dumpall: apenas roles e tablespaces<\/td>\n<td><code>--globals-only<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Backup F\u00edsico com pg_basebackup \u2014 Configura\u00e7\u00e3o Completa e Execu\u00e7\u00e3o<\/h3>\n<p>O <strong>pg_basebackup<\/strong> cria um <strong>backup<\/strong> f\u00edsico completo do cluster PostgreSQL copiando todos os arquivos do diret\u00f3rio de dados e, opcionalmente, os segmentos de <strong>WAL<\/strong> necess\u00e1rios para tornar o backup consistente. Diferentemente do <strong>pg_dump<\/strong>, ele n\u00e3o se conecta a um \u00fanico banco, mas ao cluster inteiro, e exige uma conex\u00e3o com privil\u00e9gios de replica\u00e7\u00e3o. Antes de executar a ferramenta, o servidor precisa estar configurado com <code>wal_level = replica<\/code> ou <code>logical<\/code>, um n\u00famero adequado de <code>max_wal_senders<\/code> e, se voc\u00ea quiser usar slots de replica\u00e7\u00e3o, <code>max_replication_slots<\/code>.<\/p>\n<p>Vamos configurar o arquivo <code>postgresql.conf<\/code> para habilitar as conex\u00f5es de replica\u00e7\u00e3o e o fluxo de <strong>WAL<\/strong>. No Ubuntu\/Debian, o arquivo est\u00e1 em <code>\/etc\/postgresql\/16\/main\/postgresql.conf<\/code>; no Rocky Linux, em <code>\/var\/lib\/pgsql\/16\/data\/postgresql.conf<\/code>. Adicione ou altere as linhas abaixo. As demais entradas do arquivo permanecem com os valores padr\u00e3o.<\/p>\n<pre><code># Entradas relevantes para backup f\u00edsico no postgresql.conf\n# As demais linhas do arquivo permanecem com seus valores padr\u00e3o.\nwal_level = replica                # replica permite backup f\u00edsico e streaming\nmax_wal_senders = 10               # n\u00famero de conex\u00f5es de envio de WAL\nmax_replication_slots = 4          # slots para evitar remo\u00e7\u00e3o prematura de WAL\nhot_standby = on                   # permite consultas em standby\narchive_mode = on                  # ativa arquivamento de WAL (ver pr\u00f3xima se\u00e7\u00e3o)\narchive_command = 'test ! -f \/var\/backups\/postgresql\/archive\/%f && cp %p \/var\/backups\/postgresql\/archive\/%f'\narchive_timeout = 300              # for\u00e7a rota\u00e7\u00e3o de WAL a cada 5 minutos (opcional)<\/code><\/pre>\n<p>O par\u00e2metro <code>wal_level<\/code> controla quanta informa\u00e7\u00e3o \u00e9 gravada no <strong>WAL<\/strong>. O valor m\u00ednimo para backup f\u00edsico \u00e9 <code>replica<\/code>, que registra todas as altera\u00e7\u00f5es de dados necess\u00e1rias para replica\u00e7\u00e3o e PITR. O <code>max_wal_senders<\/code> define quantas conex\u00f5es simult\u00e2neas de streaming de WAL o servidor aceita; o valor 10 \u00e9 confort\u00e1vel para um ambiente de teste. O <code>max_replication_slots<\/code> permite criar slots de replica\u00e7\u00e3o, que impedem o servidor de descartar segmentos de <strong>WAL<\/strong> antes que o consumidor os tenha processado \u2014 essencial em ambientes com r\u00e9plicas ou para PITR cont\u00ednuo.<\/p>\n<p>Depois de configurar o <code>postgresql.conf<\/code>, \u00e9 necess\u00e1rio ajustar o <strong>pg_hba.conf<\/strong> para permitir conex\u00f5es de replica\u00e7\u00e3o autenticadas. No mesmo diret\u00f3rio, edite o arquivo <strong>pg_hba.conf<\/strong> e adicione uma linha como a seguinte. O arquivo completo t\u00edpico para esta aula ficaria:<\/p>\n<pre><code># TYPE  DATABASE        USER            ADDRESS                 METHOD\n# Conte\u00fado completo do pg_hba.conf adaptado para esta aula\nlocal   all             postgres                                peer\nlocal   all             all                                     peer\nhost    all             all             127.0.0.1\/32            scram-sha-256\nhost    all             all             ::1\/128                 scram-sha-256\nlocal   replication     all                                     peer\nhost    replication     replicador     127.0.0.1\/32            scram-sha-256\nhost    replication     replicador     ::1\/128                 scram-sha-256<\/code><\/pre>\n<p>Perceba que criamos um usu\u00e1rio <code>replicador<\/code> com privil\u00e9gio <code>REPLICATION<\/code>. Esse papel n\u00e3o precisa ser superusu\u00e1rio, apenas ter a permiss\u00e3o de replica\u00e7\u00e3o. Crie-o agora com os comandos SQL abaixo. Ele ser\u00e1 usado pelo <strong>pg_basebackup<\/strong>.<\/p>\n<pre><code># Criar usu\u00e1rio replicador com privil\u00e9gio REPLICATION\nsudo -u postgres psql &lt;&lt;'EOF'\nCREATE ROLE replicador WITH LOGIN REPLICATION PASSWORD 'SenhaSegura123';\nEOF<\/code><\/pre>\n<pre><code class=\"output\">CREATE RO<\/p>\n<div style=\"margin:52px 0 40px;padding:36px 28px;background:linear-gradient(135deg,#0f172a 0%,#1a2744 100%);border:2px solid #25D366;border-radius:18px;text-align:center;box-shadow:0 4px 28px rgba(37,211,102,0.18)\">\n<p style=\"margin:0 0 10px;font-size:18px;color:#ffffff;font-weight:700;line-height:1.4\">Quer aprender na pr\u00e1tica com especialistas?<\/p>\n<p style=\"margin:0 0 28px;font-size:15px;color:#94a3b8;font-weight:400;line-height:1.6\">A JRT Technology Solutions oferece treinamentos e implementa\u00e7\u00e3o de PostgreSQL para equipes corporativas.<\/p>\n<p>  <a href=\"https:\/\/api.whatsapp.com\/send\/?phone=5521980606699&#038;text=Ol%C3%A1!%20Tenho%20interesse%20no%20treinamento%20de%20PostgreSQL.&#038;type=phone_number&#038;app_absent=0\"\n     target=\"_blank\" rel=\"noopener noreferrer\"\n     style=\"display:inline-flex;align-items:center;gap:12px;background:#25D366;color:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:700;padding:15px 32px;border-radius:100px;text-decoration:none;box-shadow:0 4px 16px rgba(37,211,102,0.45);letter-spacing:0.01em\"><br \/>\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"#ffffff\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/><\/svg><br \/>\n    Falar no WhatsApp<br \/>\n  <\/a>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Nenhuma estrat\u00e9gia de administra\u00e7\u00e3o de banco de dados pode ser considerada s\u00e9ria sem um plano de backup robusto, testado e automatizado. Nesta aula avan\u00e7ada do curso PostgreSQL \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea vai dominar as tr\u00eas ferramentas nativas mais importantes para proteger dados no PostgreSQL: o pg_dump, respons\u00e1vel por backups l\u00f3gicos; o pg_basebackup, que &#8230; <a title=\"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery\" class=\"read-more\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/\" aria-label=\"Read more about Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":2487,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"iawp_total_views":0,"footnotes":""},"categories":[75],"tags":[3372],"class_list":["post-2488","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","tag-postgresql-do-zero-ao-avancado-backup-pg_dump-pg_basebackup-e-point-in-time-recovery"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Nenhuma estrat\u00e9gia de administra\u00e7\u00e3o de banco de dados pode ser considerada s\u00e9ria sem um plano de backup robusto, testado e automatizado. Nesta aula avan\u00e7ada do curso PostgreSQL \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea vai dominar as tr\u00eas ferramentas nativas mais importantes para proteger dados no PostgreSQL: o pg_dump, respons\u00e1vel por backups l\u00f3gicos; o pg_basebackup, que\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Thiago Paes Rodrigues\"\/>\n\t<meta name=\"google-site-verification\" content=\"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_BR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta property=\"og:description\" content=\"Nenhuma estrat\u00e9gia de administra\u00e7\u00e3o de banco de dados pode ser considerada s\u00e9ria sem um plano de backup robusto, testado e automatizado. Nesta aula avan\u00e7ada do curso PostgreSQL \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea vai dominar as tr\u00eas ferramentas nativas mais importantes para proteger dados no PostgreSQL: o pg_dump, respons\u00e1vel por backups l\u00f3gicos; o pg_basebackup, que\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"100\" \/>\n\t\t<meta property=\"og:image:height\" content=\"75\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-26T21:00:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-26T21:00:33+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/profile.php?id=61590814880509\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery - BLOG - JRT Technology Solutions\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Nenhuma estrat\u00e9gia de administra\u00e7\u00e3o de banco de dados pode ser considerada s\u00e9ria sem um plano de backup robusto, testado e automatizado. Nesta aula avan\u00e7ada do curso PostgreSQL \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea vai dominar as tr\u00eas ferramentas nativas mais importantes para proteger dados no PostgreSQL: o pg_dump, respons\u00e1vel por backups l\u00f3gicos; o pg_basebackup, que\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#blogposting\",\"name\":\"Aula 21: Backup \\u2014 pg_dump, pg_basebackup e Point-in-Time Recovery - BLOG - JRT Technology Solutions\",\"headline\":\"Aula 21: Backup \\u2014 pg_dump, pg_basebackup e Point-in-Time Recovery\",\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ai-image-1787778030568.jpg\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 21: Backup \\u2014 pg_dump, pg_basebackup e Point-in-Time Recovery\"},\"datePublished\":\"2026-08-26T18:00:33-03:00\",\"dateModified\":\"2026-08-26T18:00:33-03:00\",\"inLanguage\":\"pt-BR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#webpage\"},\"articleSection\":\"DevOps, PostgreSQL \\u2014 Do Zero ao Avan\\u00e7ado: Backup \\u2014 pg_dump, pg_basebackup e Point-in-Time Recovery\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#listItem\",\"name\":\"Aula 21: Backup \\u2014 pg_dump, pg_basebackup e Point-in-Time Recovery\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#listItem\",\"position\":3,\"name\":\"Aula 21: Backup \\u2014 pg_dump, pg_basebackup e Point-in-Time Recovery\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/category\\\/devops\\\/#listItem\",\"name\":\"DevOps\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"telephone\":\"+552138277513\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/cropped-logo-mini.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#organizationLogo\",\"width\":100,\"height\":75},\"image\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/profile.php?id=61590814880509\",\"https:\\\/\\\/www.instagram.com\\\/jrtx.tech\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/\",\"name\":\"Thiago Paes Rodrigues\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#authorImage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/cropped-foto-rascunho3-96x96.jpeg\",\"width\":96,\"height\":96,\"caption\":\"Thiago Paes Rodrigues\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#webpage\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/\",\"name\":\"Aula 21: Backup \\u2014 pg_dump, pg_basebackup e Point-in-Time Recovery - BLOG - JRT Technology Solutions\",\"description\":\"Nenhuma estrat\\u00e9gia de administra\\u00e7\\u00e3o de banco de dados pode ser considerada s\\u00e9ria sem um plano de backup robusto, testado e automatizado. Nesta aula avan\\u00e7ada do curso PostgreSQL \\u2014 Do Zero ao Avan\\u00e7ado, voc\\u00ea vai dominar as tr\\u00eas ferramentas nativas mais importantes para proteger dados no PostgreSQL: o pg_dump, respons\\u00e1vel por backups l\\u00f3gicos; o pg_basebackup, que\",\"inLanguage\":\"pt-BR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/author\\\/thiago\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/ai-image-1787778030568.jpg\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#mainImage\",\"width\":1440,\"height\":1024,\"caption\":\"Aula 21: Backup \\u2014 pg_dump, pg_basebackup e Point-in-Time Recovery\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/2026\\\/08\\\/26\\\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\\\/#mainImage\"},\"datePublished\":\"2026-08-26T18:00:33-03:00\",\"dateModified\":\"2026-08-26T18:00:33-03:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/\",\"name\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"alternateName\":\"JRT Technology Solutions | Tecnologia e Inova\\u00e7\\u00e3o para Empresas\",\"description\":\"Um espa\\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\\u00e1tica e atual. Aqui voc\\u00ea encontra novidades, an\\u00e1lises, tutoriais e reflex\\u00f5es sobre inova\\u00e7\\u00e3o, intelig\\u00eancia artificial, gadgets, programa\\u00e7\\u00e3o e tend\\u00eancias digitais. Nosso objetivo \\u00e9 simplificar o complexo, ajudar voc\\u00ea a se manter atualizado e transformar conhecimento em pr\\u00e1tica no seu dia a dia.\",\"inLanguage\":\"pt-BR\",\"publisher\":{\"@id\":\"https:\\\/\\\/jrtx.com.br\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery - BLOG - JRT Technology Solutions","description":"Nenhuma estrat\u00e9gia de administra\u00e7\u00e3o de banco de dados pode ser considerada s\u00e9ria sem um plano de backup robusto, testado e automatizado. Nesta aula avan\u00e7ada do curso PostgreSQL \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea vai dominar as tr\u00eas ferramentas nativas mais importantes para proteger dados no PostgreSQL: o pg_dump, respons\u00e1vel por backups l\u00f3gicos; o pg_basebackup, que","canonical_url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"QKPfpDCzHmzKyfFk5j1KZW3HhROYTPeqwBN5qcJ8qcg","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#blogposting","name":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery - BLOG - JRT Technology Solutions","headline":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery","author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/08\/ai-image-1787778030568.jpg","width":1440,"height":1024,"caption":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery"},"datePublished":"2026-08-26T18:00:33-03:00","dateModified":"2026-08-26T18:00:33-03:00","inLanguage":"pt-BR","mainEntityOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#webpage"},"isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#webpage"},"articleSection":"DevOps, PostgreSQL \u2014 Do Zero ao Avan\u00e7ado: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery"},{"@type":"BreadcrumbList","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","position":1,"name":"Home","item":"https:\/\/jrtx.com.br\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","position":2,"name":"DevOps","item":"https:\/\/jrtx.com.br\/blog\/category\/devops\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#listItem","name":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery"},"previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#listItem","position":3,"name":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery","previousItem":{"@type":"ListItem","@id":"https:\/\/jrtx.com.br\/blog\/category\/devops\/#listItem","name":"DevOps"}}]},{"@type":"Organization","@id":"https:\/\/jrtx.com.br\/blog\/#organization","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","url":"https:\/\/jrtx.com.br\/blog\/","telephone":"+552138277513","logo":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#organizationLogo","width":100,"height":75},"image":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/profile.php?id=61590814880509","https:\/\/www.instagram.com\/jrtx.tech\/"]},{"@type":"Person","@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author","url":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/","name":"Thiago Paes Rodrigues","image":{"@type":"ImageObject","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#authorImage","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/09\/cropped-foto-rascunho3-96x96.jpeg","width":96,"height":96,"caption":"Thiago Paes Rodrigues"}},{"@type":"WebPage","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#webpage","url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/","name":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery - BLOG - JRT Technology Solutions","description":"Nenhuma estrat\u00e9gia de administra\u00e7\u00e3o de banco de dados pode ser considerada s\u00e9ria sem um plano de backup robusto, testado e automatizado. Nesta aula avan\u00e7ada do curso PostgreSQL \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea vai dominar as tr\u00eas ferramentas nativas mais importantes para proteger dados no PostgreSQL: o pg_dump, respons\u00e1vel por backups l\u00f3gicos; o pg_basebackup, que","inLanguage":"pt-BR","isPartOf":{"@id":"https:\/\/jrtx.com.br\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#breadcrumblist"},"author":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"creator":{"@id":"https:\/\/jrtx.com.br\/blog\/author\/thiago\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/08\/ai-image-1787778030568.jpg","@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#mainImage","width":1440,"height":1024,"caption":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery"},"primaryImageOfPage":{"@id":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/#mainImage"},"datePublished":"2026-08-26T18:00:33-03:00","dateModified":"2026-08-26T18:00:33-03:00"},{"@type":"WebSite","@id":"https:\/\/jrtx.com.br\/blog\/#website","url":"https:\/\/jrtx.com.br\/blog\/","name":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","alternateName":"JRT Technology Solutions | Tecnologia e Inova\u00e7\u00e3o para Empresas","description":"Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","inLanguage":"pt-BR","publisher":{"@id":"https:\/\/jrtx.com.br\/blog\/#organization"}}]},"og:locale":"pt_BR","og:site_name":"BLOG - JRT Technology Solutions - Um espa\u00e7o dedicado a explorar o universo da tecnologia de forma clara, pr\u00e1tica e atual. Aqui voc\u00ea encontra novidades, an\u00e1lises, tutoriais e reflex\u00f5es sobre inova\u00e7\u00e3o, intelig\u00eancia artificial, gadgets, programa\u00e7\u00e3o e tend\u00eancias digitais. Nosso objetivo \u00e9 simplificar o complexo, ajudar voc\u00ea a se manter atualizado e transformar conhecimento em pr\u00e1tica no seu dia a dia.","og:type":"article","og:title":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery - BLOG - JRT Technology Solutions","og:description":"Nenhuma estrat\u00e9gia de administra\u00e7\u00e3o de banco de dados pode ser considerada s\u00e9ria sem um plano de backup robusto, testado e automatizado. Nesta aula avan\u00e7ada do curso PostgreSQL \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea vai dominar as tr\u00eas ferramentas nativas mais importantes para proteger dados no PostgreSQL: o pg_dump, respons\u00e1vel por backups l\u00f3gicos; o pg_basebackup, que","og:url":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/","og:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:secure_url":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg","og:image:width":100,"og:image:height":75,"article:published_time":"2026-08-26T21:00:33+00:00","article:modified_time":"2026-08-26T21:00:33+00:00","article:publisher":"https:\/\/www.facebook.com\/profile.php?id=61590814880509","twitter:card":"summary_large_image","twitter:title":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery - BLOG - JRT Technology Solutions","twitter:description":"Nenhuma estrat\u00e9gia de administra\u00e7\u00e3o de banco de dados pode ser considerada s\u00e9ria sem um plano de backup robusto, testado e automatizado. Nesta aula avan\u00e7ada do curso PostgreSQL \u2014 Do Zero ao Avan\u00e7ado, voc\u00ea vai dominar as tr\u00eas ferramentas nativas mais importantes para proteger dados no PostgreSQL: o pg_dump, respons\u00e1vel por backups l\u00f3gicos; o pg_basebackup, que","twitter:image":"https:\/\/jrtx.com.br\/blog\/wp-content\/uploads\/2026\/03\/cropped-logo-mini.jpg"},"aioseo_meta_data":{"post_id":"2488","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-09-01 14:42:27","updated":"2026-09-01 14:42:27","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtx.com.br\/blog\/category\/devops\/\" title=\"DevOps\">DevOps<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/jrtx.com.br\/blog"},{"label":"DevOps","link":"https:\/\/jrtx.com.br\/blog\/category\/devops\/"},{"label":"Aula 21: Backup \u2014 pg_dump, pg_basebackup e Point-in-Time Recovery","link":"https:\/\/jrtx.com.br\/blog\/2026\/08\/26\/aula-21-backup-pgdump-pgbasebackup-e-point-in-time-recovery\/"}],"_links":{"self":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2488","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/comments?post=2488"}],"version-history":[{"count":0,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/posts\/2488\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media\/2487"}],"wp:attachment":[{"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/media?parent=2488"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/categories?post=2488"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtx.com.br\/blog\/wp-json\/wp\/v2\/tags?post=2488"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}