从CockroachDB到PostgreSQL的数据迁移

问题描述 投票:0回答:1

我正在尝试将我的 CockroachDB 迁移到 PostgreSQL。

我有 SQL 格式的 CockroachDB 数据转储,如“booking.sql”。

我尝试了很多方法来解决这个问题:

  1. 尝试使用 psql 直接导入转储文件,但由于转储文件是 CockroachDB 的,因此显示一些语法错误
  2. 我的第二个计划是将转储文件恢复到 CockroachDB 系统中并尝试从那里运行 pgdump。但我无法恢复 CockroachDB 中的数据库。

ERROR: failed to open backup storage location: unsupported storage scheme: "" - refer to docs to find supported storage schemes

我再次尝试使用 CockroachDB 中的

import
语句进行操作,但这没有用。

sql postgresql database-migration pg-dump cockroachdb
1个回答
1
投票

从 cockroachDB 导出数据有一些限制。在新版本中,您无法将数据直接导出到 SQL 中。 第一种导出方法是使用

cockroach dump
命令,但它已从版本 20.2 开始弃用,因此如果您使用的是较新版本,则此方法将不起作用。

cockroach dump <database> <table> <table...> <flags>

样品:

cockroach dump startrek --insecure --user=maxroach > backup.sql

在新版本中,您可以使用 SQL 命令将数据导出到 CSV 文件,例如

EXPORT

EXPORT DATABASE bank INTO 's3://{BUCKET NAME}/{PATH}?AWS_ACCESS_KEY_ID={KEYID}&AWS_SECRET_ACCESS_KEY={SECRET ACCESS KEY}' \ AS OF SYSTEM TIME '-10s';

导出到本地节点

EXPORT DATABASE bank INTO ('nodelocal://1/{PATH}');

另一种导出方法是使用数据库客户端,例如 DBeaver。 您可以从 https://dbeaver.io/download/ 下载并安装 DBeaver。 添加连接后,您可以从此路径导出数据库右键单击 db>tools>Backup

最快、最简单的导出方法是使用 DBeaver 等数据库工具。 我希望这个答案对您有帮助

© www.soinside.com 2019 - 2024. All rights reserved.