pg_restore

太阳3年前技术文章2253

逻辑备份恢复

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_stat_statements插件

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

PG的锁(二)

四、死锁PostgreSQL自动检测死锁情况并会自动回滚其中一个事务进行处理,从而其他事务完成。db1=# select * from t1 where id in (1,2,3);  id | i...

PG的锁(一)

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

PG的多版本并发控制(一)

PG的多版本并发控制(一)

一、 表系统字段几个比较重要概念1.1  tupletuple表示表中的数据行,在MySQL中用row表示。在表数据页中,主要分为普通的数据元祖和TOAST元祖。以下是一个普通数据元祖的结构,主要由三...

PG参数整理

一、参数的分类参数的类型名称说明internal内部参数,只读无法修改。postgres程序写死或者是在初始化指定后无法修改的参数postmaster更改该类参数,需重启生效sighup不需重启,重新...

pg_dump

逻辑备份    PG提供了pg_dump、pg_dumpall两种方式进行逻辑备份,其区别就是pg_dumpall只能将数据库全部数据集dump到一个脚本文件中,而pg_dump可以选择指定数据库进行...

发表评论    

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