MySQL Internals Online Backup
← Back to MySQL Internals overview page
[edit] Online Backup
This chapter describes MySQL Online Backup.
Mostly it consists of stubs for material yet to be added.
[edit] Glossary
Definitions of important terms. Examples:
- Server instance
- Backup kernel
- Backup engine
- Backup/restore driver
[edit] Architectural Design & APIs
[edit] Stub for WL#3169 material (Server kernel)
[edit] Stub for WL#3473 material (Backup engine API)
[edit] Stub for WL#3569 material (Backup synchronization algorithm)
[edit] Stub for WL#3574 material (Online backup: Service API for Metadata Objects II)
[edit] Backup Engines and Drivers
[edit] Stub for WL#3570 material (Default algorithm backup & restore (blocking))
There is a default backup engine that provides default backup and restore drivers, to be used if a better backup engine cannot be found. This engine's drivers use blocking algorithms.
[edit] Stub for WL#3776 material (Consistent snapshot backup for MVCC)
The consistent snapshot engine provides a backup similar to that created by mysqldump --single-transaction.
[edit] Stub for WL#866 material (Online backup: MyISAM native driver (redo-log algorithm, modify source file, log byte changes))
[edit] Stub for WL#4064 material (Online Backup: Adapt native MyISAM driver to new kernel architecture)
[edit] Stub for WL#4205 material (Online Backup: modify kernel to use object services API)
[edit] Stub for WL#3576 material (synchronization with binary log)
A backup image must have contents that are consistent with the binary log coordinates taken from the time of the backup. Otherwise, point-in-time recovery using the backup image plus the binary log contents beginning from the coordinates will not work correctly. Online Backup synchronizes with binary logging to make sure that the backup image and binary log are consistent with each other.
(Discuss implementation of synchronization with binary logging)
[edit] Stub for WL#4060 material (kernel updates)
- Character support for identifiers (database/table metadata)
- Table name mangling
- Implementation of the catalog services API
- Implementation of the Image_info class
- Memory management
- Memory (de)allocator for backup stream library
[edit] Stub for WL#4062 material (DDL blocker, A.K.A metadata freeze)
During a backup or restore operation, it is not allowable to modify the structure of databases or tables being backed up. Consequently, several DDL statements are blocked during these operations.
(Discuss implementation of blocking)
[edit] Stub for WL#3956 material (commit blocker)
Rationale is similar to that for DDL blocking.
(Discuss implementation of blocking)
[edit] Error Handling
[edit] Stub for WL#3904 (Error Handling)
[edit] Stub for WL#4190 (Error Handling II)
[edit] Testing
The code allows for breakpoints to be inserted into the backup or restore process
[edit] Stub for WL#3324 (Test breakpoints)
[edit] Stub for WL#4120 (Breakpoints)
[edit] Data Formats
[edit] Stub for WL#3568 (Online backup: Stream format and server file handling)
[edit] Stub for WL#4063 (Online Backup: Finalize backup stream format)
There are two parts to this:
- Definitions of the data formats
- API for library that applications use to read/write these formats