Kubernetes 中的 CockroachDB 快照备份
CockroachDB snapshot backups in Kubernetes
我正在尝试使用 Velero 在 Kubernetes 中使用 Velero 对 12 节点测试 CockroachDB 集群进行快照备份,这样,如果集群失败,我们可以重建集群并从这些快照中恢复 cockroachdb。
我们正在使用 Velero 执行此操作,快照和恢复似乎有效,但在恢复时,我们似乎遇到了 CockroachDB 丢失范围的问题。
有没有人获得快照备份以使用具有大规模数据库的 CockroachDB? (鉴于数据集的大小,转储或从转储中恢复是不可行的。)
在 CockroachDB 节点 运行 时执行底层磁盘备份不太可能按预期工作。
主要原因是,即使持久化磁盘快照是原子的,也没有办法确保所有磁盘在同一时间被捕获(时间由 CockroachDB 的一致性机制定义)。恢复将包含具有不同提交索引的跨节点副本的数据,导致数据丢失或仲裁丢失(在管理 UI 中显示为“不可用”范围)。
您有几个选项(按顺序或方便):
- CockroachDB BACKUP which has all nodes write data to external storage (S3, GCS, etc...). Before version 20.2, this is only available with an enterprise license.
- SQL dump 这对于大型数据集是不切实际的
- 停止所有节点,快照所有磁盘,再次启动所有节点。 警告:这是我们用于快速加载测试数据集但未在生产环境中使用的东西。
我正在尝试使用 Velero 在 Kubernetes 中使用 Velero 对 12 节点测试 CockroachDB 集群进行快照备份,这样,如果集群失败,我们可以重建集群并从这些快照中恢复 cockroachdb。
我们正在使用 Velero 执行此操作,快照和恢复似乎有效,但在恢复时,我们似乎遇到了 CockroachDB 丢失范围的问题。
有没有人获得快照备份以使用具有大规模数据库的 CockroachDB? (鉴于数据集的大小,转储或从转储中恢复是不可行的。)
在 CockroachDB 节点 运行 时执行底层磁盘备份不太可能按预期工作。
主要原因是,即使持久化磁盘快照是原子的,也没有办法确保所有磁盘在同一时间被捕获(时间由 CockroachDB 的一致性机制定义)。恢复将包含具有不同提交索引的跨节点副本的数据,导致数据丢失或仲裁丢失(在管理 UI 中显示为“不可用”范围)。
您有几个选项(按顺序或方便):
- CockroachDB BACKUP which has all nodes write data to external storage (S3, GCS, etc...). Before version 20.2, this is only available with an enterprise license.
- SQL dump 这对于大型数据集是不切实际的
- 停止所有节点,快照所有磁盘,再次启动所有节点。 警告:这是我们用于快速加载测试数据集但未在生产环境中使用的东西。