在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数据库的足够知识,保持定期备份非常重要,因为它们对于恢复系统非常有用。