PostgreSQL逻辑备份恢复 - pg_dump导出及psql导入案例
栏目: 数据库 · PostgreSQL · 发布时间: 7年前
内容简介:数据库导入导出是最常用的功能之一。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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Phoenix 数据导入与导出
- Angular Excel 导入与导出
- MongoDB导入导出备份恢复实践
- JS module的导出和导入
- ASP.NET 开源导入导出库Magicodes.IE 导出Pdf教程
- 使用oracle自带的命令进行导入导出
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
RabbitMQ实战
Alvaro Videla、Jason J. W. Williams / 汪佳南 / 电子工业出版社 / 2015-10 / 75.00元
本书对RabbitMQ做了全面、翔实的讲解,体现了两位专家的真知灼见。本书首先介绍了有关MQ的历史,然后从基本的消息通信原理讲起,带领读者一路探索RabbitMQ的消息通信世界。这当中不仅包含了针对单台RabbitMQ服务器和RabbitMQ集群的讲解,还教导读者如何使用各种工具来进行监控。 本书内容浅显易懂,文笔风趣幽默。书中包含了丰富的、可以运行的示例程序源代码,读者可以自行下载并运行,......一起来看看 《RabbitMQ实战》 这本书的介绍吧!