twindb_backup.source package¶
Submodules¶
twindb_backup.source.base_source module¶
Module defines base source class.
-
class
twindb_backup.source.base_source.
BaseSource
(run_type)[source]¶ Bases:
object
Base source for backup
-
basename
¶ Return file name (w/o directory part) of the backup.
-
get_prefix
()[source]¶ Get prefix of the backup copy. It includes hostname and run type.
Returns: Backup name prefix like ‘db-10/daily’
-
host
¶ Return host where the backup is being taken from.
-
run_type
= None¶
-
suffix
¶ Backup file name suffix
-
twindb_backup.source.exceptions module¶
Module for backup source exceptions.
-
exception
twindb_backup.source.exceptions.
BinlogSourceError
[source]¶ Bases:
twindb_backup.source.exceptions.SourceError
Exceptions in Binlog source
-
exception
twindb_backup.source.exceptions.
MySQLSourceError
[source]¶ Bases:
twindb_backup.source.exceptions.SourceError
Exceptions in MySQL source
-
exception
twindb_backup.source.exceptions.
RemoteMySQLSourceError
[source]¶ Bases:
twindb_backup.source.exceptions.MySQLSourceError
Exceptions in remote MySQL source
-
exception
twindb_backup.source.exceptions.
SourceError
[source]¶ Bases:
twindb_backup.exceptions.TwinDBBackupError
General source error
twindb_backup.source.file_source module¶
Module defines File source class for backing up local directories.
-
class
twindb_backup.source.file_source.
FileSource
(path, run_type)[source]¶ Bases:
twindb_backup.source.base_source.BaseSource
FileSource class
-
media_type
¶ Get media type. Media type is a general term that describes what you backup. For directories media_type is ‘file’.
Returns: ‘file’
-
twindb_backup.source.mysql_source module¶
Module defines MySQL source class for backing up local MySQL.
-
class
twindb_backup.source.mysql_source.
MySQLClient
(defaults_file, connect_timeout=10, hostname='127.0.0.1')[source]¶ Bases:
object
Class to send queries to MySQL
-
get_connection
()[source]¶ Connect to MySQL host and yield a connection.
Returns: MySQL connection Raises: MySQLSourceError – if can’t connect to server
-
-
class
twindb_backup.source.mysql_source.
MySQLConnectInfo
(defaults_file, connect_timeout=10, cursor=<class 'pymysql.cursors.DictCursor'>, hostname='127.0.0.1')[source]¶ Bases:
object
MySQL connection details
-
class
twindb_backup.source.mysql_source.
MySQLMasterInfo
(host, port, user, password, binlog, binlog_pos)[source]¶ Bases:
object
MySQL master details
-
class
twindb_backup.source.mysql_source.
MySQLSource
(mysql_connect_info, run_type, backup_type, **kwargs)[source]¶ Bases:
twindb_backup.source.base_source.BaseSource
MySQLSource class
-
apply_retention_policy
(dst, config, run_type, status)[source]¶ Delete old backup copies.
Parameters: - dst (BaseDestination) – Destination where the backups are stored.
- config (TwinDBBackupConfig) – Tool configuration
- run_type (str) – Run type.
- status (Status) – Backups status.
Returns: Updated status.
Return type: Status
-
binlog_coordinate
¶ Binary log coordinate up to that backup is taken
Returns: file name and position Return type: tuple
-
datadir
¶ Return datadir path on MySQL server
-
disable_wsrep_desync
()[source]¶ Wait till wsrep_local_recv_queue is zero and disable wsrep_local_recv_queue then
-
enable_wsrep_desync
()[source]¶ Try to enable wsrep_desync
Returns: True if wsrep_desync was enabled. False if not supported
-
full
¶ Check if the backup copy is a full copy.
Returns: True if it’s a full copy. Return type: bool
-
galera
¶ Check if local MySQL instance is a Galera cluster
Returns: True if it’s a Galera. Return type: bool
-
static
get_binlog_coordinates
(err_log_path)[source]¶ Parse innobackupex log and return binary log coordinate
Parameters: err_log_path (str) – path to the innobackupex log Returns: Binlog coordinate. Return type: tuple
-
get_connection
()[source]¶ Connect to MySQL host and yield a connection.
Returns: MySQL connection Raises: MySQLSourceError – if can’t connect to server
-
incremental
¶ Check if the backup copy is an incremental copy.
Returns: True if it’s an incremental copy. Return type: bool
-
is_galera
()[source]¶ Check if local MySQL instance is a Galera cluster
Returns: True if it’s a Galera. Return type: bool
-
lsn
¶ The latest LSN of the taken backup :return: LSN :rtype: int
-
status
¶ Backup status on a destination
Returns: Backups status Return type: dict
-
type
¶ Get backup copy type - full or incremental
Returns: ‘full’ or ‘incremental’ Return type: str
-
wsrep_provider_version
¶ Parse Galera version from wsrep_provider_version.
Returns: Galera version Return type: str
-
twindb_backup.source.remote_mysql_source module¶
Module defines MySQL source class for backing up remote MySQL.
-
class
twindb_backup.source.remote_mysql_source.
RemoteMySQLSource
(kwargs)[source]¶ Bases:
twindb_backup.source.mysql_source.MySQLSource
Remote MySQLSource class
-
apply_backup
(datadir)[source]¶ Apply backup of destination server
Parameters: datadir – Path to datadir Returns: Binlog file name and position Return type: tuple Raises: RemoteMySQLSourceError – if any error.
-
clone
(dest_host, port, compress=False)[source]¶ Send backup to destination host
Parameters: - dest_host (str) – Destination host
- port (int) – Port to sending backup
- compress (bool) – If True compress stream
Raises: RemoteMySQLSourceError – if any error
-
clone_config
(dst)[source]¶ Clone config to destination server
Parameters: dst (Ssh) – Destination server
-
setup_slave
(master_info)[source]¶ Change master
Parameters: master_info (MySQLMasterInfo) – Master details.
-