PostgreSQL逻辑备份恢复 - pg_dump导出及psql导入案例

栏目: 数据库 · PostgreSQL · 发布时间: 5年前

内容简介:数据库导入导出是最常用的功能之一。PostgreSQL的备份工具可以使用pg_dump及pg_dumpall。可以通过pg_dump --help获取其使用方法。这里不对其做过多介绍。主要介绍在使用pg_dump及恢复过程中遇到的一个问题。1、问题使用pg_dump -c导出后,通过psql导入时报下面的错误:

数据库导入导出是最常用的功能之一。PostgreSQL的备份 工具 可以使用pg_dump及pg_dumpall。可以通过pg_dump --help获取其使用方法。这里不对其做过多介绍。主要介绍在使用pg_dump及恢复过程中遇到的一个问题。

1、问题

使用pg_dump -c导出后,通过psql导入时报下面的错误:

ERROR:  relation "t1" already exists

ERROR:  duplicate key value violates unique constraint "t1_pkey"

ERROR:  multiple primary keys for table "t1" are not allowed

2、导入导出的操作

pg_dump -U postgres -d yzs -Fa -c -C -f all.sql

psql < all.sql

3、问题分析

1)通过-c导出时在重建database前先drop

2)通过-C导出时导出时导出create database语句

3)每次导入时,虽然库中已有导入的表结构和部分数据,及先执行drop database语句清空,应该不会出现表已存在等错误,但是这种错误确实出现了。原来,在导入时,只要已有连接连着这个database,drop语句就不会执行成功,导致清理数据库失败,后续执行对应语句时会报已存在、重复键、多个主键等错误。

4、解决方法

1)pg_dump导出时,没有选项使导出的语句中带if not exists,不能使之不存在时再创建或插入。

2)保证没有业务连接数据库时才导入,或向一个干净的数据库进行导入

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-04/158143.htm


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

自媒体写作,从基本功到实战方法

自媒体写作,从基本功到实战方法

余老诗 / 清华大学出版社 / 2018-9-1 / 59.00元

《自媒体写作》是一本系统而通俗易懂的自媒体写作指导书。 全书共分为10章,分别从写作基本功、新媒体认知、新媒体传播规律和自媒体作者阅读写作素养以及如何进阶等方面展开,结合简书、公众号、今日头条等主流自媒体所选例文,讲解写作知识和新媒体特点,内容详实,有理有据,非常适合自媒体写作爱好者自学。 尤其值得一提的是,写作基本功部分从原理、方法和技巧三个层面展开论说,让自媒体写作学习者既能从根本......一起来看看 《自媒体写作,从基本功到实战方法》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具