如何使用 pg_dump 命令备份 PostgreSQL 数据库服务器
一般来说,我喜欢使用 MySQL,但有时我的工作迫使我使用 PostgreSQL 数据库服务器。
最近我收到一个备份 PostgreSQL 数据库的请求,因为我们的一位客户想要格式化并重新安装 RHEL 服务器。
PostgreSQL 是强大的开源数据库服务器之一。与 MySQL 数据库服务器一样,它提供了创建备份的实用程序。
步骤#1:以 pgsql 用户身份登录
键入以下命令:
$ su - pgsql
获取要备份的数据库列表:
$ psql -l
步骤 #2:使用 pg_dump 进行备份
使用 pg_dump 命令备份数据库。pg_dump 是用于备份 PostgreSQL 数据库的实用程序。它一次只转储一个数据库。一般语法:
pg_dump databasename > outputfile
任务:转储工资数据库
键入以下命令
$ pg_dump payroll > payroll.dump.out
来恢复工资数据库:
$ psql -d payroll -f payroll.dump.out
或者但在现实生活中,您需要压缩数据库:要恢复数据库,请使用以下命令:以下是用于相同任务的 shell 脚本:$ createdb payroll
$ psql payroll $ pg_dump payroll | gzip -c > payroll.dump.out.gz
$ gunzip payroll.dump.out.gz
$ psql -d payroll -f payroll.dump.out
#!/bin/bash DIR=/backup/psql [ ! $DIR ] && mkdir -p $DIR || : LIST=$(psql -l | awk '{ print $1}' | grep -vE '^-|^List|^Name|template[0|1]') for d in $LIST do pg_dump $d | gzip -c > $DIR/$d.out.gz done
另一个选项是使用 pg_dumpall 命令。顾名思义,它会转储(备份)每个数据库,并保留集群范围内的数据,例如用户和组。您可以按如下方式使用它:$ pg_dumpall > all.dbs.out
或者$ pg_dumpall | gzip -c > all.dbs.out.gz
要恢复备份,请使用以下命令:
$ psql -f all.dbs.out postgres
参考: