在进行数据库恢复前,需完成以下基础准备:
pg_dump)创建的备份文件(常见格式为.sql、.dump)未被损坏,且存储路径可访问。postgres超级用户或具有CREATEDB、INSERT等权限的角色)。pgAdmin右侧面板右键“创建”→“数据库”完成)。pgAdmin作为PostgreSQL的常用图形化管理工具,提供了直观的恢复流程,适合不熟悉命令行的用户:
启动pgAdmin应用程序,在左侧“服务器”列表中找到目标PostgreSQL服务器(如“PostgreSQL 15”),双击或右键选择“连接”,输入服务器密码完成认证。
展开已连接的服务器节点,在“Databases”(数据库)下找到需恢复数据的数据库(如mydatabase),右键点击该数据库,弹出上下文菜单。
在上下文菜单中选择“恢复…”(Restore)选项,系统将弹出“恢复数据库”对话框。
在“恢复数据库”对话框中,需设置以下关键参数:
/home/user/backups/mydatabase.dump),选中后点击“打开”。.dump为自定义格式,需用pg_restore恢复;.sql为纯文本格式,可直接用psql恢复);确认所有参数设置无误后,点击“恢复”(Restore)按钮。pgAdmin将调用PostgreSQL的恢复工具(如pg_restore或psql)在后台执行恢复,进度条会显示当前恢复状态。
恢复完成后,点击“关闭”(Close)按钮退出对话框。展开目标数据库,检查其中的表、视图、函数等对象是否恢复完整,或执行简单SQL查询(如SELECT * FROM table_name LIMIT 1;)验证数据是否存在。
若偏好命令行操作,或pgAdmin无法满足复杂恢复需求(如大规模数据恢复),可使用PostgreSQL自带的命令行工具:
打开Linux终端,确保已安装PostgreSQL客户端工具(pg_restore、psql),可通过pg_restore --version或psql --version验证。
若备份文件为自定义格式(如.dump),需使用pg_restore命令,语法如下:
pg_restore -h [主机地址] -U [用户名] -d [目标数据库名] [备份文件路径]
示例(恢复至mydatabase数据库,备份文件位于/opt/backups/mydatabase.dump):
pg_restore -h localhost -U postgres -d mydatabase /opt/backups/mydatabase.dump
执行后,系统会提示输入用户密码,输入正确密码后按回车键,等待恢复完成。
若备份文件为纯文本格式(如.sql),需使用psql命令,语法如下:
psql -h [主机地址] -U [用户名] -d [目标数据库名] < [备份文件路径]
示例(恢复至mydatabase数据库,备份文件位于/opt/backups/mydatabase.sql):
psql -h localhost -U postgres -d mydatabase < /opt/backups/mydatabase.sql
执行后,系统会提示输入用户密码,输入正确密码后按回车键,psql会将备份文件中的SQL语句逐条执行,完成恢复。