如果想要在同一 PostgreSQL 数据库群集上将一个地理数据库的内容移动到另一个数据库,可以创建另一个数据库并移动数据。如果想要将地理数据库移动至新 PostgreSQL 数据库群集,可使用 PostgreSQL 命令移动数据库。
将数据移动至同一 PostgreSQL 数据库群集中的另一个地理数据库
同一 PostgreSQL 数据库群集中的数据库和地理数据库名称必须是唯一的;因此,如果想要在同一数据库群集中将数据移动到不同的地理数据库,应在数据库群集上创建第二个地理数据库,然后将现有数据移动到新的地理数据库。可使用“导出”工具、“提取数据”向导或 XML 工作空间文档,通过复制和粘贴将数据移动到 ArcGIS 中。
请注意,在将数据加载到新的地理数据库时登录的用户将成为数据的所有者。如果希望在新的地理数据库中该数据仍归同一用户所有,则应使每个用户都移动自己的数据。
将数据库移动至新的 PostgreSQL 数据库群集
如果想要将地理数据库移动至新 PostgreSQL 数据库群集,可使用 pg_dump 命令。
pg_dump 命令可将数据库定义(方案)和数据或仅数据库方案提取至结构化查询语言 (SQL) 脚本或存档文件。如果提取至存档文件,则可使用 pg_restore 命令在另一个 PostgreSQL 群集中重新构建数据库。如果提取至 SQL 脚本,则可在新服务器上运行该 SQL 脚本来重新构建数据库。
以下是通过 pg_dump 移动 PostgreSQL 数据库的部分指导原则:
- 移动 PostgreSQL 中的地理数据库时,必须首先恢复公共方案,然后恢复数据库的剩余部分。有关详细信息,请参阅将地理数据库恢复到 PostgreSQL。
- 如果在用户定义的数据中使用对象标识符 (OID),请务必指定 -o 选项,以在转储文件中包括 OID。
- 表空间必须重新创建。
- 如果输出到 TAR 存档,则任何文本形式的单个表都不能大于 8 GB。
- 重新构建数据库之后,可运行 ANALYZE 来更新数据库统计数据。
- 以超级用户的身份进行连接以运行 pg_dump。
有关如何使用 pg_dump 或 pg_restore 的特定信息,请参阅 PostgreSQL 文档。