pg_restore

太阳2年前技术文章1709

逻辑备份恢复

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的统计信息(三)

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

PG的执行计划

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

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

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

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

PG的表膨胀

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

PG体系结构(一)

PG体系结构(一)

一、进程结构PG数据库启动时会先启动一个主进程(9.3之前称为postmaster,9.3以后称为postgres server process),然后fork出一些辅助子进程(backend、bac...

PG安装部署

一、rpm包安装部署1、安装RPM包# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_6...

发表评论    

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