CRDB的BACKUP语句允许您创建集群模式和数据的完整或增量备份,这些备份与给定的时间戳一致。
您可以备份整个集群,包括:
- 相关系统表
- 所有数据库
- 所有表(自动包含它们的索引)
- 所有视图
- 所有预定的作业
你也可以备份:
- 一个单独的数据库,它包括所有的表和视图。
- 一个单独的表,其中包括它的索引和视图。
BACKUP只备份整个表;它不支持备份表的子集。
因为cockachdb设计了高容错性,所以这些备份主要用于通过RESTORE进行灾难恢复(即,如果您的集群失去了大部分节点)。孤立的问题(如小规模节点中断)不需要任何干预。
要查看使用backup语句创建的备份的内容,请使用SHOW backup。
考虑因素
恢复之前目标集群上的区域配置将在使用备份集群中的区域配置进行集群恢复时被覆盖。如果在进行备份时集群上没有定制的分区配置,那么在恢复之后,目标集群将使用RANGE DEFAULT配置中的分区配置。
使用exclude_data_from_backup参数从备份中排除表的行数据。
BACKUP是一个阻塞语句。要异步运行备份作业,请使用DETACHED选项。
存储考虑
备份和恢复不支持HTTP存储。
修改存储位置中的备份文件可能会使备份失效,因此会阻止恢复。
必需权限
全集群备份只能由管理角色的成员运行。默认情况下,root用户属于admin角色。
对于所有其他备份,用户必须对正在备份的所有对象具有读访问权。数据库备份需要CONNECT权限,表备份需要SELECT权限。用户定义模式的备份或包含用户定义类型的备份需要USAGE特权。
BACKUP要求对其目标目的地具有完全的读和写权限。
参数
cockachdb将完整备份存储在备份集合中。集合中的每个全量备份也可以有增量备份。
参数 | 描述 |
---|---|
targets | 备份目标。不指定代表备份整个集群。或者使用DATABASE {database_name}[,…]代表备份哪些库,使用TAB |