pg_restore

太阳3年前技术文章2300

逻辑备份恢复

PG提供了pg_restore的命令可以为通过pg_dump转储的数据进行逻辑恢复。对于SQL脚本可通过psql进行恢复

语法

pg_restore [connection_option] [option] [filename]

connection_option与pg_dump类似,不同之处是pg_restore恢复具体数据库时需要使用-d dbname来指定。


options

参数

含义

filename

需要恢复的备份文件

-a/--no-data

只恢复数据,不恢复数据定义

-c/--clean

恢复数据前先清空对应数据

-C/--create

在恢复数据前先创建

-d/--dbname

指定恢复到具体数据库中

-e/--exit-on-error

表示恢复数据库遇到报错则退出,默认报错仍继续并最终显示一个错误计数

-F/--format

指定恢复的备份文件格式,一般而言pg_restore会自行判断,若需要指定可以指定t、d、c

-I/--index

只恢复命名的索引

-j

开启多个并发进行恢复

-n namespaces 或 --schema

只恢复指定名字的模式或者表数据,可配合-t使用

-O/--no-owner

默认恢复对象是不指定owner

--no-tablespaces

恢复数据均恢复至默认表空间

-P

只恢复指定函数

-s/--schema-only

只恢复指定表结构

-t/--table

只恢复指定表

-T/--trigger

只恢复指定触发器

-f

指定恢复文件


示例

psql恢复指定SQL脚本
psql -U xxx -p xxx -h xxx -d db_name -f db_name.sql

恢复format=c下的数据

pg_restore -U xxx -p xxx -h xxx db_name -Fc -f db_name.dump
-- -C指定创建对应的dbname,若不使用-C则会恢复带-d指定数据库下
pg_restore -U xxx -p xxx -h xxx  -d db_name -C db_name.dump

将dump文件恢复至new_dbname中

--需提前创建好new_dbname
pg_restore -U xxx -p xxx -h xxx -d new_dbname db_name.dump

恢复指定表

pg_restore -U xxx -p xx -h xxx -d db_name -n public -t t1 -C du_name.dump

恢复-d格式下备份文件至已存在部分对象的数据库中

-- -c表示先做清理后恢复
pg_restore -U xxx -p xxx -h xxx -d db_name -c  ./
标签: PostgreSQL
返回列表

上一篇:pg_dump

下一篇:K8s数据持久化

相关文章

PG的执行计划

一、Explain基本使用1.1 命令解释explain [ ( option [,...] ) ] statement explain [ analyze ] [ verbose ] statem...

PG的表膨胀

1 什么是表膨胀众所周知,PostgreSQL的多版本并发是通过保留变更前的记录来实现的。当数据记录被DML修改,旧版本记录仍保留不变,仅仅需要修改相关记录的xmin、xmax属性,并新增写入变更后的...

REPMGR-PG高可用搭建(二)

REPMGR-PG高可用搭建(二)

REPMGR搭建步骤一、介绍repmgr是第二象限开源的一套流复制集群管理工具,用于管理PostgreSQL服务器群集中的复制和故障转移。 支持故障自动转移和手动切换;支持分布式管理集群节点,易扩展,...

PG常用命令

1、连库相关#连库 $ psql -h <hostname or ip> -p <端口> [数据库名称] [用户名称] #连库并执行命令 $ psql -h <ho...

PG的统计信息(三)

1.3 数据分布类统计信息1.3.1 pg_stats通过对pg_stats的查询,可以查看每个字段的数据分析统计信息,类似SQL Server的直方图,为优化器选择最佳执行计划提供依据,pg_sta...

pg_probackup

一、pg_probackup概述pg_probackup 是一款免费的postgres数据库集群备份工具,与其他备份工具相比,它主要有如下一些优势:提供增量备份,增量备份一定程度上可以节省磁盘空间的使...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。