公司新近上一套系统,用的是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数据库备份还原