离线迁移PostgreSQL数据库
这个教程将指导您如何使用pg_dump
和pg_restore
命令,通过离线的方式,将您的PostgreSQL数据库从一台服务器迁移到另一台。
在旧服务器上备份
在您的旧服务器上,打开终端或命令行,执行以下两个命令。
这个命令会将单个数据库,如 -d 指定的名为 postgres 的数据库进行备份。
Bash
pg_dump -h sbp-jefk8patl3pot31s.supabase.opentrust.net -U postgres -d postgres -F c -b -f postgres_db.dump
参数
- -F p -f backup.sql # plain SQL
- -F c -f backup.dump # custom格式
- -U 指定用户名
- -f 指定的备份文件名
在执行以上命令时,系统会提示您输入 postgres
用户的密码。
查看备份下来的数据(可选)
如果您想确认一下备份文件里是否包含了您想要的数据,比如 shops
表,您可以在旧服务器上执行下面的命令:
Bash
pg_restore -l postgres.dump | grep shops
如果 shops
表在备份文件里,这个命令会把它显示出来。
在新服务器上恢复
在新服务器上,打开终端或命令行。
现在,把 postgres.dump
文件里的数据,恢复到您刚刚创建的空数据库里。
Bash
pg_restore -h sbp-jefk8patl3pot31s.supabase.opentrust.net -U postgres -d postgres postgres.dump
在执行以上命令时,系统同样会提示您输入 postgres
用户的密码。
在线迁移PostgreSQL数据库
知道了前面,这可以直接执行新的。从一条立即迁移到另一台上。
shell
pg_dump -h sbp-jefk8patl3pot31s.supabase.opentrust.net -U postgres -d postgres -F c | pg_restore -h 目标主机 -U postgres -d 目标数据库 --clean --if-exists