ubuntu中Postgresql备份恢复及高版本恢复数据到低版本库中
一、备份
基本使用
可以使用 pg_dump
和 pg_dumpall
命令来进行备份操作。
- pg_dump:备份指定数据库
- pg_dumpall:备份所有数据库
我这里只用到了 pg_dump 命令,pg_dumpall 也是大同小异,大家自己摸索一下
我们直接看一下备份的命令吧,
pg_dump -h localhost -U postgres -d 数据库名称 -F c -b -v -f 备份文件路径 --encoding UTF8
常用参数
- -U, --username:指定连接数据库时使用的用户名。
- -h, --host:指定连接数据库时使用的主机名。
- -p, --port:指定连接数据库时使用的端口号。
- -d, --dbname:指定要备份的数据库名称。
- -f, --file:指定备份文件的路径和名称。
- -F, --format:指定备份文件的格式,可以是"p"(普通文本格式),"c"(自定义格式),"d"(目录格式)或"t"(tar格式)。
- -b, --blobs:在备份过程中也包括大型对象(BLOBs)。
- -v, --verbose:该参数用于启用详细输出模式。当使用-v参数时,pg_dump会在备份过程中输出更多的信息,包括备份的对象和进度等。
还有其他的参数可以通过 pg_dump --version
命令查看。
二、还原
我们可以使用命令方式还原也可以借助工具还原。
注意:备份及还原的 Postgresql 版本最好保持一致,不然还原时可能会报错的,如果你的版本不一致,可以参考下面的高版本备份数据在低版本中恢复方案。
使用 pg_restore 命令还原
使用 pg_restore
命令还原我们之前备份的文件。
pg_restore -h localhost -U postgres -d backup -v 备份文件路径
使用pgAdmin等工具还原
三、问题
高版本备份数据在低版本中恢复方案
使用高版本备份数据库后,在低版本中总是导入不进去。可以参考下面链接的解决方案,使用pg_dump
命令备份时,不要使用自定义格式,直接保存为sql文件,然后在 psql 中运行即可。