postgres进行迁移可以使用psql,也可以使用postgres自带工具pg_dump和pg_restore.
命令:
– 备份
pg_dump -h 13.xx.xx.76 -U postgres -n “public” “schema” -f ./schema_backup.gz -Z 9
-h host,备份目标数据库的ip地址
-U 用户名(输入命令后会要求输入密码,也可以使用-w输入密码)
-n 需要导出的schema名称
-f 导出存储的文件
-Z 进行压缩(一般导出文件会占用很大的存储空间,直接进行压缩)
– 恢复
gunzip schema_backup.gz ./ (对导出的压缩文件解压)
psql -U postgres -f ./schema_backup >>restore.log
参数意义与导出一样
坑与tips:
版本,pg_dump的版本要高于目标备份数据库的版本(比如目标数据库是10.3, pg_dump要使用10.3或者10.4)
-Z 是pg_dump提供的压缩参数,默认使用的是gzip的格式,目标文件导出后,可以使用gunzip解压(注意扩展名,有时习惯性命名为.dump 或者.zip,使用gunzip时会报错,要改为.gz)
也可以针对指定的表进行导出操作:
pg_dump -h localhost -U postgres -c -E UTF8 –inserts -t public.t_* > t_taste.sql
–inserts 导出的数据使用insert语句
-c 附带创建表命令
具体参数:
https://www.postgresql.org/docs/9.2/static/app-pgdump.html