PostgreSQL备份恢复

PostgreSQL备份恢复假死

如果dump出来的是单个表,那么恢复就必须是单个表,即-t tableName
背景:
postgreSQL 提供的备份功能 pg_dump:不支持跨数据库操作、不支持部分数据
需要备份的并非整个DB,而是其中的部分表

1.备份表结构

这里主要需要的信息有:建表SQL、表的主键外键、表的索引
先通过导出数据库结构的方式,用户模式下
pg_dump -U postgres -h 127.0.0.1 -p 5432 -s -f DBName.sql DBName
之后从中找到需要的表SQL,以及关系等
亦可查看得到具体的信息
\d TableName

2.备份数据文件

在目标存放路径下:
采用单个表的方式
pg_dump -U postgres -h 127.0.0.1 -p 5432 -Fc -t record DBName > DBNamerecord.dump

pg_dump -U postgres -h 127.0.0.1 -p 5432 -Fc -t customer DBName > DBNamecustomer.dump

亦或是此种,指定路径
pg_dump -U postgres -h 127.0.0.1 -p 5432 -Fc -t customer DBName > /testspeakdb.dump
说明:-t指定表名,-Fc二进制模式(使用此种即可)

3.新建DB

CREATE DATABASE tbackDBName WITH OWNER = postgres ENCODING=‘UTF-8’;

4.新DB下创建表

据2中表结构,注意暂时创建表,以及表所有权
eg:customer表
CREATE TABLE customer (
phone character varying(20) NOT NULL,
gender character varying(10),
birth_year integer,
);

ALTER TABLE customer OWNER TO postgres;

5.恢复

在dump存放路径下:
pg_restore -U postgres -h 127.0.0.1 -p 5432 -t record -d tbackDBName2 DBNamerecord.dump > a.txt 2>&1

说明:-t指定表名,-d DB名称

6.检查

count、以及查看几行数据

7.表的最终完善

表的主键外键、表的索引
eg:customer表
ALTER TABLE ONLY customer
ADD CONSTRAINT customer_pkey PRIMARY KEY (phone);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值