增量日志备份
PolarDB-X Operator 从 1.4.0 版本开始支持增量日志备份功能。本文介绍如何对 PolarDB-X 进行增量日志备份。
此处的增量日志为,DN节点上生成的一致性日志(类似mysql binlog日志),默认在DN容器内的/data/mysql/log目录中
前置条件
- PolarDB-X Operator 升级到 1.4.0 及以上版本
- 完成备份存储方式配置,参见文档:备份存储配置
PolarDB-X企业版发起增量日志备份
下面介绍如何通过 PolarDBXBackupBinlog 对象为 PolarDB-X企业版 进行增量日志备份。
- 参照如下示例编写 pxc-backup-binlog.yaml 文件:
apiVersion: polardbx.aliyun.com/v1 # API 组/版本
kind: PolarDBXBackupBinlog # API 名称
metadata:
name: backupbinlogforpolardb-x #增量日志备份任务名称
spec:
pxcName: polardb-x # 待备份的目标 PolarDB-X 集群名称
pxcUid: 8f634de1-5a4e-4e1c-b2dc-e8763384d83a # 待备份的目标 PolarDB-X 集群名称UID
remoteExpireLogHours: 168 # 在远程端(OSS或者SFTP)上的保存小时数
localExpireLogHours: 7 # 在数据节点本地的保存小时数
maxLocalBinlogCount: 60 # 在数据节点本地保存的增量日志文件保存个数
pointInTimeRecover: true # 是否支持指定时间点恢复
binlogChecksum: CRC32 # 增量日志校验码
storageProvider:
storageName: oss # 存储方式,支持 sftp,oss和s3
sink: osssink # 存储配置项的名称
参数说明:
- pxcName: 待备份的目标 PolarDB-X 集群名称, 必填字段
- pxcUid: 待备份的目标 PolarDB-X 集群名称UID,可选字段,一般不填
- remoteExpireLogHours: 在远程端(OSS或者SFTP)上的保存小时数,可选字段,默认值为 168
- localExpireLogHours: 在数据节点本地的保存小时数,可选字段,默认值为 7
- maxLocalBinlogCount: 在数据节点本地保存的增量日志文件保存个数,可选字段,默认值为 60
- pointInTimeRecover: 是否支持指定时间点恢复,可选字段,默认值为 true
- binlogChecksum: 增量日志校验码,可选字段,默认值为 CRC32
- storageProvider.storageName: 备份集存储方式,支持 sftp 、 oss 和 s3,必填字段
- storageProvider.sink: 备份集存储配置的名称,对应备份存储配置中的 name 字段,必填字段
2.使用下面的命令创建 PolarDBXBackupBinlog 对象,开启增量日志备份:
kubectl create -f pxc-backup-binlog.yaml
3.查看增量日志备份运行阶段是否为running
kubectl get pxcblog
PolarDB-X标准版发起增量日志备份
下面介绍如何通过 XStoreBackupBinlog 对象为 PolarDB-X标准版 进行增量日志备份。
- 参照如下示例编写 pxc-standard-backup-binlog.yaml 文件:
apiVersion: polardbx.aliyun.com/v1 # API 组/版本
kind: XStoreBackupBinlog # API 名称
metadata:
name: backupbinlogforpolardb-xstandard #增量日志备份任务名称
spec:
xstoreName: polardb-x-standard # 待备份的目标 PolarDB-X标准版 集群名称
xstoreUid: 8f634de1-5a4e-4e1c-b2dc-e8763384d83a # 待备份的目标 PolarDB-X标准版 集群名称UID
remoteExpireLogHours: 168 # 在远程端(OSS或者SFTP)上的保存小时数
localExpireLogHours: 7 # 在数据节点本地的保存小时数
maxLocalBinlogCount: 60 # 在数据节点本地保存的增量日志文件保存个数
pointInTimeRecover: true # 是否支持指定时间点恢复
binlogChecksum: CRC32 # 增量日志校验码
storageProvider:
storageName: oss # 存储方式,支持 sftp,oss和s3
sink: osssink # 存储配置项的名称
参数说明:
- xstoreName: 待备份的目标 PolarDB-X 标准版集群名称, 必填字段
- xstoreUid: 待备份的目标 PolarDB-X 标准版集群名称UID,可选字段,一般不填
- 其他字段和 PolarDBXBackupBinlog 一致
2.使用下面的命令创建 XStoreBackupBinlog 对象,开启增量日志备份:
kubectl create -f pxc-standard-backup-binlog.yaml
3.查看增量日志备份运行阶段是否为running
kubectl get xsblog
增量日志备份查阅
PolarDB-X企业版和标准版的增量日志备份文件路径一致,存放在如下路径,您可以在 SFTP 配置的主机或者 OSS bucket 中查看对应的文件。
增量日志的元数据文件
{root_path}/polardbx-binlogbackup/{namespace}/{pxc_name}/{pxc_uid}/{xstore_name}/{xstore_uid}/{pod_name}/{version}/{batch_name}/binlog-meta/mysql_bin.{number}.txt
增量日志文件
{root_path}/polardbx-binlogbackup/{namespace}/{pxc_name}/{pxc_uid}/{xstore_name}/{xstore_uid}/{pod_name}/{version}/{batch_name}/binlog-file/mysql_bin.{number}
- root_path取决于存储配置
- 若采用sftp作为存储,则该值为sink.rootPath
- 若采用oss作为存储,则该值为sink.bucket
- polardbx-binlogbackup为固定字段
- namespace是目标PolarDB-X Cluster所在namesapce
- pxc_name是目标PolarDB-X Cluster的名称
- pxc_uid是目标PolarDB-X Cluster的UID
- xstore_name是备份文件所属的xstore名称
- xstore_uid是备份文件所属的xstore的uid
- pod_name是备份文件所属的pod的名称
- version是备份文件所属的pod的版本号
- batch_name是批目录名称,1000个文件为一批
- binlog-file和binlog-meta为固定字段
- number为增量日志文件的序号