pg_restore

太阳1年前技术文章956

逻辑备份恢复

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初识

PG数据库是一种典型的C/S模型应用,不同的客户端通过TCP/IP进行连接、每个连接启动一个fork进程(多进程数据库)。一、pg逻辑架构1.1 pg与MySQL异同对比逻辑架构postgresMyS...

PG的锁(一)

一、表级锁1.1 表级锁模式常见锁模式以及应用场景:ACCESS SHARE :select操作获取该模式锁资源,通常情况下所有只读取不修改表的查询都会获取该模式锁资源ROW SHARE : sele...

PG常用命令

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

PG体系结构(三)

PG体系结构(三)

四、物理结构4.1 软件安装目录bin             //二进制可执行文件 include         //头文件目录 lib             //动态库文件 share ...

PG的pg_stat_statements插件

pg_stat_statements可追踪一个服务器所执行的所有 SQL 语句的执行统计信息,可以用于统计数据库的资源开销,分析TOP SQL。一、插件安装1、编译安装进入postgresql源码目录...

REPMGR-PG高可用搭建(二)

REPMGR-PG高可用搭建(二)

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

发表评论    

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