记一次PGSQL数据库恢复过程

公司新近上一套系统,用的是PGSQL 11.14,为了尽快了解数据结构 ,我将他们的数据库备份复制到本地,计划恢复后看下表结构 ,折腾了两天,勉强可以看了。

1、备份的数据库文件是ABC.TAR.GZ,我解压后发现是扩展名为SQL的脚本文件;

2、本机开始下载安装PGSQL ,用的一样的或高一点的版本;

3、通过PGADMIN建库,使用PGADMIN来还原,但系统老提示错误,并且错误原因是乱码,找不到原因,就将PGSQL安了卸,卸了装 ,换了几个版本都一样。

大部分时间浪费在处理乱码上了:(

 4、各种百度,然后通过查询工具直接将SQL复制过去执行,老提示”“\.”“错误,百度后学到“\.”是copy **** from stdin;的数据结束符,刚开始发现出错,自以为是的将\.删除了,后来发现还是不行。

pgsql 有一个新的数据导入导出命令:COPY  FROM (TO)   STDIN 深入学习:(46条消息) pgsql的copy函数_github_zwl的博客-CSDN博客

只好自已建表,用 COPY *** FROM STDIN(STDOUT)来学习测试。发现导出的文件没有问题,只是在查询工具中用SQL不能执行。

5、找啊找,最后发现这种备份要用命令的方法来恢复,并且要用管理员身份来运行CMD,不然会提示"拒绝访问;

首先要进入PGSQL的安装目录的BIN目录下,执行

pg_dump -U postgres -p 5432 -d test >test.dump

  -d 要指定备份的数据库名,>后面是备份的文件名;

  如果使用pg_dump未指定format(即未使用-F参数),则导出的是SQL脚本,导入时需用psql命令,否则用pg_restore还原。可在命令后加–help查看详细参数。

6、测试下恢复

 输入密码,完成恢复

psql -h 127.0.0.1 -U postgres -d test2<test.dump

 -d 指定要恢复的数据库名字    < 后面跟恢复的文件名

 

参考链接: (46条消息) PostgreSQL数据库备份还原全攻略_ma286388309的博客-CSDN博客_postgresql数据库备份还原

活到老,学到老。
原文地址:https://www.cnblogs.com/lrzy/p/15740995.html