将 Vertica Schema 或架构中的所有表从一个物理集群复制到另一个物理集群

StackOverflow https://stackoverflow.com//questions/25046917

我正在尝试将 Vertica 架构从一个物理集群导出和导入到另一个物理集群。我的测试实例有一个集群,我的生产实例有 3 个集群。

我探索了以下选项,但它们仅限于在一个物理 Vertica 实例上移动数据:

  1. 导出到 VERTICA ..
  2. 从 VERTICA 复制 schema.table ...

我想知道是否有一个选项可以将 Vertica 架构从一个物理 Vertica 实例移动到具有不同集群配置的另一个物理 Vertica 实例。

有帮助吗?

解决方案

这是棘手的操作,有很多问题:

  • 如果复制ddls,则会丢失序列的当前值,这可能会在插入数据时表示重复主键。
  • 如果将列设置为auto_increment,则无法在源上插入其中的数据(您不能强制auto_increment列,尽管我相信这可能已在新版本中修复)。
  • 如果在具有不同数量的节点之间的簇之间复制DDL,如果节点名称是投影定义的一部分,则最终将与您不想要的东西结束。
  • 正如您所知,不同的网络将防止使用连接。

尝试通过 pyvertica 实用程序在Python中完成了在Python中完成的。 vertica_migrate 脚本。您可以在 https://pyvertica.readthedocs.org

中找到doc。

这是一个棘手的工作,我知道这个脚本有一些问题,虽然它已经帮助了我。

希望这有助于,

其他提示

您可以使用 COPY FROM VERTICA 或者 EXPORT TO VERTICA 将数据导入/导出到另一个 Vertica 数据库(无论节点配置如何)。此外,目标表必须已经存在。您可以使用 EXPORT_OBJECTS 导出 DDL。这两种方法都允许从上一个主要版本的早期版本(运行 6.x,您可以从 5.x 导入)迁移数据。

在下面的示例中,我将使用 EXPORT TO VERTICA 将数据从源数据库导出到目标数据库。

您必须首先创建到其他数据库的连接:

CONNECT TO VERTICA VMart USER dbadmin PASSWORD '' ON 'VerticaTarget',5433;

然后使用 EXPORT TO VERTICA 将数据从源导出到目标数据库:

EXPORT TO VERTICA VMart.schema.customer_dimension FROM schema.customer_dimension;
                  |______________________________|     |_______________________|
                                 |                                 |
                              Target                            Source

DISCONNECT VMart;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top