收集云服务器优惠信息
记录云服务器使用心得

Linux系统备份和恢复PostgreSQL数据库图解教程

在生产环境中,无论你的PostgreSQL数据库有多大或多小,定期备份都是数据库管理的一个重要方面。在本文中,小编主要介绍如何备份和恢复PostgreSQL数据库。

当然,前提是假设你已经安装了PostgreSQL数据库系统。如果没有安装,请务必事先在Linux发行版上安装PostgreSQL数据库。安装好了,就可以按照下面的教程继续进行了。

PostgreSQL

备份单个PostgreSQL数据库

PostgreSQL提供pg_dump实用程序来帮助你备份数据库,它会生成一个包含SQL命令的数据库文件,其格式可以在后面轻松恢复。

要备份PostgreSQL数据库,首先登录到数据库服务器,然后切换到Postgre用户帐户,然后按如下方式运行pg_dump (替换tecmintdb为你要备份的数据库名称)。默认情况下,输出格式是纯文本SQL脚本文件。

$ pg_dump tecmintdb > tecmintdb.sql

pg_dump也支持其它输出格式你可以使用-F选项指定输出格式,其中c表示自定义格式存档文件,d表示目录格式存档,t表示tar格式存档文件。所有格式都适合输入到pg_restore中,例如:

$ pg_dump -F c tecmintdb > tecmintdb.dump
或者
$ pg_dump -F t tecmintdb > tecmintdb.tar

要以目录输出格式转储输出,请使用-f标志(用于指定输出文件)指定目标目录而不是文件。另外,该目录将由pg_dump创建,在此之前不能存在相同目录名称。

$ pg_dump -F d tecmintdb -f tecmintdumpdir	

要备份所有PostgreSQL数据库,请使用pg_dumpall命令,如下所示:

$ pg_dumpall > all_pg_dbs.sql

当然,可以使用psql恢复转储,如下所示:

$ psql -f all_pg_dbs.sql postgres

恢复PostgreSQL数据库

要恢复PostgreSQL数据库,可以使用psqlpg_restore实用程序。psql用于恢复由pg_dump创建的文本文件 ,而pg_restore用于从pg_dump创建的非纯文本格式(自定义、tar或目录)之一的存档中恢复 PostgreSQL数据库。

以下是如何恢复纯文本文件转储的示例:

$ psql tecmintdb < tecmintdb.sql

如上所述,自定义格式的转储不是psql的脚本,因此必须使用pg_restore来恢复它,如下所示:

$ pg_restore -d tecmintdb tecmintdb.dump
或者
$ pg_restore -d tecmintdb tecmintdb.tar
或者
$ pg_restore -d tecmintdb tecmintdumpdir	

压缩的PostgreSQL数据库备份

如果你备份的数据库很大,而你想生成一个相当小的输出文件,那么你可以运行一个压缩转储,你必须通过gzip或任何你喜欢的压缩工具过滤pg_dump的输出,如下所示:

$ pg_dump tecmintdb | gzip > tecmintdb.gz

如果数据库非常大,可以通过使用-j标志同时转储作业数量表来并行转储,例如:

$ pg_dump -F d -j 5 -f tecmintdumpdir

需要注意的是,并行转储选项减少了转储的时间,但另一方面,它也增加了数据库服务器的负载。

备份远程PostgreSQL数据库

pg_dump是一个常规的PostgreSQL客户端工具,它支持对远程数据库服务器的操作。要指定pg_dump应该访问的远程数据库服务器 ,请使用命令行-h选项指定远程主机并使用 -p 选项指定数据库服务器正在侦听的远程端口。此外,使用-U标志指定要连接的数据库角色名称。

请记住将10.10.20.10和5432以及tecmintdb分别替换为远程主机IP地址或主机名、数据库端口和数据库名称。

$ pg_dump -U tecmint -h 10.10.20.10 -p 5432 tecmintdb > tecmintdb.sql

注意:确保远程连接的用户具有访问数据库所需的权限,并且在数据库服务器上配置了适当的数据库身份验证方法,否则,将收到如下图所示的错误。

PostgreSQL数据库连接错误

当然,也可以将数据库直接从一台服务器转储到另一台服务器,使用pg_dump和psql实用程序即可,如下所示:

$ pg_dump -U tecmint -h 10.10.20.10 tecmintdb | pqsl -U tecmint -h 10.10.20.30 tecmintdb

使用Cron作业自动备份PostgreSQL数据库

可以使用cron作业定期执行备份,Cron作业是安排各种任务在服务器上运行的常用方法。你可以配置一个cron作业来自动执行PostgreSQL数据库备份,具体如下。请注意,你需要以PostgreSQL超级用户身份运行以下命令:

$ mkdir -p /srv/backups/databases

接下来,运行以下命令来编辑crontab以添加新的cron作业:

$ crontab -e

将以下行复制并粘贴到crontab的末尾,可以使用上面解释的任何转储格式。

0 0 * * *  pg_dump  -U postgres tecmintdb > /srv/backups/postgres/tecmintdb.sql

保存文件并退出即可。这样cron服务将自动开始运行这个新作业而无需重新启动系统,这个cron job会在每天午夜运行一次,是备份任务的最轻松解决方案。

总结

其实,在使用云服务器的时候,将备份PostgreSQL数据库作为数据库管理工作一部分是非常有意义的事情。主要体现在以下几个方面:

  1. 数据保护:备份是保护数据库中重要数据的关键措施。数据库中存储着组织的核心数据,包括客户信息、交易记录、产品数据等。定期备份数据库可以确保在数据丢失、意外删除、硬件故障或灾难性事件发生时能够迅速恢复数据。备份是数据保护和灾难恢复计划的重要组成部分。
  2. 业务连续性:数据库备份和恢复对于维护业务连续性至关重要。当数据库出现故障时,快速恢复数据库可以最大程度地减少停机时间,避免业务中断和损失。备份和恢复操作可以确保在出现故障时能够迅速将数据库恢复到正常运行状态。
  3. 数据恢复:备份提供了从以前的时间点恢复数据的能力。如果数据库中的数据被错误地更改、删除或损坏,可以使用备份来还原到先前的状态。这对于纠正用户错误、恢复到稳定状态或执行演练和测试非常有用。
  4. 数据迁移和复制:备份还可以用于数据迁移和复制。通过将数据库备份从一个环境迁移到另一个环境,可以在不同系统之间共享数据,实现开发、测试和生产环境之间的数据同步。
  5. 安全性和合规性:备份可以提供数据的安全性和合规性。数据库备份可以加密和存储在安全的位置,以防止未经授权的访问。此外,备份还可以用于满足合规性要求,例如数据保留和法规要求。

所以,备份和恢复 PostgreSQL 数据库对于数据保护、业务连续性、数据恢复、数据迁移和复制以及安全性和合规性方面都具有重要的意义。它们是保护和管理数据库的基本操作,确保数据的可靠性和可用性。

赞(1)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《Linux系统备份和恢复PostgreSQL数据库图解教程》
文章链接:https://www.ecscoupon.com/614.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!