在Ubuntu 16.04上,如何备份和还原PostgreSQL数据库

・4 分钟阅读

介绍

PostgreSQL是一个免费的开源数据库管理系统,可用于存储与网站相关的信息,它也被称为Postgres ,软件本身有高性能的对象关系数据库,非常适合大型数据库和web应用程序。

也就是说,任何数据库管理员最重要的任务之一就是定期备份他们的数据库,在这里,你将学习如何备份和恢复PostgreSQL 16.04上的数据库。

前提条件

  • 运行Ubuntu 16.04的服务器,
  • 有sudo特权的非根用户,

步骤1:更新系统包

开始之前,更新服务器上的软件包。


sudo apt-get update -y
sudo apt-get upgrade -y

步骤2:安装PostgreSQL

幸运的是,PostgreSQL在Ubuntu 16.04存储库中可用,你可以使用以下命令轻松安装它。


sudo apt-get install postgresql postgresql-contrib

安装完成后,它将创建一个名为postgres的名为postgres的用户,也将创建一个名为postgres的系统帐户。

启动postgresql服务,并且使它在引导时运行。


sudo systemctl start postgresql
sudo systemctl enable postgresql

步骤3:备份说明

PostgreSQL附带一个名为pg_dump的实用工具,将数据库信息备份到文件。

你可以从命令行接口运行此实用程序,例如,如果要备份单个数据库,请运行以下命令:


sudo pg_dump -U user_name database_name > backup_file

注意:命令必须作为超级用户运行。

你还可以通过以postgres用户身份登录来备份数据库。


sudo su - postgres
pg_dump postgres > postgres.bak

上面的命令将备份名为postgres的默认数据库。

你还可以对远程数据库进行备份。


pg_dump -U user_name -h remote_ip_address -p remote_port database_name > backup_file

如果要备份系统中的所有数据库,则使用pg_dumpall


sudo pg_dumpall -U user_name > backup_file

步骤4:恢复指令

你可以使用psql命令还原由pg_dump命令创建的数据库。

首先,使用name new_database创建一个空数据库。


sudo -u postgres psql
createdb -T template0 new_database

接下来,使用以下命令重定向名为backup_file的数据库转储:


psql new_database < backup_file

如果要在遇到错误时立即停止恢复进程,请运行以下命令:


psql --set ON_ERROR_STOP=on new_database < backup_file

你可以通过将文件传递到psql来还原pg_dumpall命令创建的数据库。


psql -U user_name -f backup_file 

结束语

你现在拥有了备份和还原PostgreSQL数据库的足够知识,保持定期备份非常重要,因为它们对于恢复系统非常有用。

飞翔燕子! profile image