问题描述
我转储了数据库:
pg_dump dsmartgpp -f /data1/master/backup/db.sql
然后我用
复制了数据库nohup psql -h gpnm1 -d dsmartgpp_1 -U gpadmin < /data1/master/backup/db.sql
日志信息显示了一些关于postgis的函数和数据类型的错误,例如
更改功能 错误:函数“gidx_out”已存在,且参数类型相同。
两个数据库之间的某些表具有相同的数量或记录,但大小相差约 1MB。
解决方法
正如预期的那样。恢复 pg_dump
会创建数据库的逻辑副本。特别是,副本不会膨胀(别担心 - 有点膨胀是健康的)。
如果您想避免这些错误,请使用 template0 作为模板(空数据库)创建新数据库 (dsmartgpp_1)。您似乎在 template1 中安装了 PostGIS,它会被复制到每个新数据库中。或者您在导入转储之前在新数据库中安装了 PostGIS。
无论哪种方式,创建空数据库 (dsmartgpp_1) 并让转储安装 PostGIS 功能。
哦,还有一件事,您可以使用“-f /data1/master/backup/db.sql
”而不是“<
”重定向。
如果您想非常小心,还可以添加“-v ON_ERROR_STOP=1
”。这将在第一个错误处停止。