日志归档的目录结构
日志归档可以由用户指定切分目录的时间间隔,默认按照一天来切分目录:即每一天的日志数据目录对应一个 backup_piece。一个 backup_piece 目录下有一个 single_piece_info 文件,记录了该 backup_piece 的信息;还有一个 tenant_backup_piece_infos 文件,记录了该租户所有的 backup_piece 的信息。
日志归档目录下的 rounds 是日志归档的占位符,每个占位符表示一次日志 Round 的开始和结束。占位符的格式为 round_DSETID_ROUNDID_STATE,其中:
DSETID表示归档的路径 ID。ROUNDID表示日志归档的轮次。STATE分为 start(开始) 和 end(结束)。
日志归档目录下的 pieces 是日志归档的占位符,每个占位符表示一次日志 Piece 的开始和结束。占位符的格式为 piece_DSETID_ROUNDID_PIECEID_STATE_DATE,其中:
DSETID表示归档的路径 ID。ROUNDID表示日志归档的轮次。PIECEID表示日志 Piece 的 ID。STATE分为 start(开始) 和 end(结束)。DATE是备份的时间点,格式为yyyymmddThhmmss,用于记录开始或者结束的时间。
日志归档的目录结构如下:
/log_archive_dest/ # 用户设置的日志归档根目录
├── format # 格式化信息
├── check_file
│ └── 1002_connect_file_20220601T010101 //联通性检查文件,后缀为日期加时间,格式为 YYYYMMDDTHHMMSS
├── rounds # rounds占位符目录
| ├── round_1001_1_start # round开始占位符
| ├── round_1001_1_end # round结束占位符
| ├── round_1001_2_end # round结束占位符
├── pieces # piece占位符目录
| ├── piece_d1001r1p1_start_20220601T010101 # piece开始占位符,piece_DSETID_ROUNDID_PIECEID_start_DATE
| ├── piece_d1001r1p1_end_20220602T010101 # piece结束占位符,piece_DSETID_ROUNDID_PIECEID_end_DATE
| ├── piece_d1001r1p2_start_20220602T010101 # piece开始占位符,piece_DSETID_ROUNDID_PIECEID_start_DATE
| ├── piece_d1001r1p2_end_20220602T120000 # piece开始占位符,piece_DSETID_ROUNDID_PIECEID_start_DATE
| ├── piece_d1001r2p3_start_20220603T080000 # piece开始占位符,piece_DSETID_ROUNDID_PIECEID_start_DATE
├── piece_d1001r1p1 # piece目录(frozen piece)
| ├──piece_d1001r1p2_20220601T010101_20220602T010101
| ├──single_piece_info
| ├──tenant_archive_piece_infos
| ├──checkpoint # checkpoint目录
| ├── ├──checkpoint_info_0
| ├── ├──checkpoint_info_1
| ├──piece_file_info # 所有日志流文件列表
| ├──logstream_0 # 日志流目录
| ├── ├──ls_file_info # 日志流文件列表
| | ├── 1 # 日志流文件
| | ├── 2
| | ├── 3
| ├──logstream_1 # 日志流目录
| ├── ├──ls_file_info # 日志流文件列表
| | ├── 1 # 日志流文件
| | ├── 2
| | ├── 3
├── piece_d1001r1p2 # piece目录(frozen piece)
| ├──piece_d1001r1p2_20220602T010101_20220602T120000
| ├──single_piece_info
| ├──tenant_archive_piece_infos
| ├──checkpoint # checkpoint目录
| ├── ├──checkpoint_info_0
| ├──piece_file_info # 所有日志流文件列表
| ├──logstream_0 # 日志流目录
| ├── ├──ls_file_info # 日志流文件列表
| | ├── 4 # 日志流文件
| | ├── 5
| ├──logstream_1 # 日志流目录
| ├── ├──ls_file_info # 日志流文件列表
| | ├── 4 # 日志流文件
├── piece_d1001r2p3 # piece目录(active piece)
| ├──tenant_archive_piece_infos
| ├──checkpoint # checkpoint目录
| ├── ├──checkpoint_info_0
| ├──logstream_0 # 日志流目录
| | ├── 6 # 日志流文件
| ├──logstream_1 # 日志流目录
| | ├── 5 # 日志流文件
数据备份的目录结构
单次的数据备份对应一个 backup_set。每次用户运行 ALTER SYSTEM BACKUP DATABASE 都会生成一个新的 backup_set 的目录,该目录包含了本次备份的所有数据。每个 backup_set 目录下有一个 single_backup_set_info 文件,记录了该 backup_set 的信息;还有一个 tenant_backup_set_infos 文件,记录了该租户所有的 backup_set 的信息。
数据备份目录下的 backup_sets 是数据备份的占位符,每个占位符表示一次数据备份的开始和结束。占位符的格式为 backup_set_N_TYPE_DATE_STATE,其中:
N表示第几次数据备份。TYPE分为FULL(全量备份)和INC(增量备份)。DATE是数据备份的时间点,格式为YYYYMMDDTHHMMSS,用于记录开始或者结束时间。STATE分为start(数据备份开始)、end_success(数据备份成功)和end_failed(数据备份失败)。
数据备份的目录结构如下:
/data_backup_dest/ #用户设置的数据备份路径
├── format // 格式化信息
├── check_file
│ └── 1002_connect_file_20220601T010101 //联通性检查文件,后缀为日期加时间,格式为 YYYYMMDDTHHMMSS
├── backup_sets // backup set 占位符,用于list
│ ├── backup_set_1_full_start // 全量备份起始占位符
│ ├── backup_set_1_full_end_success_20220602T0200510 // 全量备份结束占位符
│ ├── backup_set_2_inc_start // 增量备份起始占位符
│ └── backup_set_2_inc_end_success_20220609T021001 // 增量备份结束占位符
├── backup_set_1_full
│ ├── backup_set_1_full_20220602T010000_20220602T0200510 //占位符,展示备份的开始和结束时间。
│ ├── single_backup_set_info //当前备份集的元信息
│ ├── tenant_backup_set_infos //当前租户的全量备份集信息
│ ├── infos
│ │ ├── data_info_turn_1 // turn 1 下的租户级备份文件
│ │ │ ├── tablet_log_stream_info // tablet 与 日志流映射文件
│ │ │ ├── tenant_major_data_macro_range_index // major 宏块索引
│ │ │ ├── tenant_major_data_meta_index // major meta 索引
│ │ │ ├── tenant_major_data_sec_meta_index // major 逻辑id与物理id映射
│ │ │ ├── tenant_minor_data_macro_range_index // minor 宏块索引
│ │ │ ├── tenant_minor_data_meta_index // minor meta 索引
│ │ │ └── tenant_minor_data_sec_meta_index // minor 逻辑id与物理id映射
│ │ ├── diagnose_info //备份集诊断信息文件
│ │ ├── locality_info //当前备份集的所属租户的locality信息
│ │ └── meta_info //租户级别的日志流元信息文件,包含所有日志流的元信息。
│ │ ├── ls_attr_info_turn_1
│ │ └── ls_meta_infos
│ ├── logstream_1 // 日志流1
│ │ ├── major_data_turn_1_retry_0 // turn 1,retry 0下的基线数据
│ │ │ ├── macro_block_data.0 // 一个数据文件,512MB~4GB
│ │ │ ├── macro_range_index // macro索引
│ │ │ ├── meta_index // meta索引
│ │ │ └── sec_meta_index // 逻辑id与物理id映射文件。
│ │ ├── meta_info_turn_1_retry_0 // turn 1,retry 0下的日志流元信息文件
│ │ │ ├── ls_meta_info // 日志流元信息
│ │ │ └── tablet_info // 日志流tablet列表
│ │ ├── minor_data_turn_1_retry_0 // turn 1,retry 0下的转储数据
│ │ │ ├── macro_block_data.0
│ │ │ ├── macro_range_index
│ │ │ ├── meta_index
│ │ │ └── sec_meta_index
│ │ └── sys_data_turn_1_retry_0 //turn 1, retry 0下的系统tablet数据
│ │ ├── macro_block_data.0
│ │ ├── macro_range_index
│ │ ├── meta_index
│ │ └── sec_meta_index
│ └── logstream_1001
│ ├── major_data_turn_1_retry_0
│ │ ├── macro_block_data.0
│ │ ├── macro_range_index
│ │ ├── meta_index
│ │ └── sec_meta_index
│ ├── meta_info_turn_1_retry_0
│ │ ├── ls_meta_info
│ │ └── tablet_info
│ ├── minor_data_turn_1_retry_0
│ │ ├── macro_block_data.0
│ │ ├── macro_range_index
│ │ ├── meta_index
│ │ └── sec_meta_index
│ └── sys_data_turn_1_retry_0
│ ├── macro_block_data.0
│ ├── macro_range_index
│ ├── meta_index
│ └── sec_meta_index
├── backup_set_2_inc //增量备份目录,与全备一致



