mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
1c55b845e0
Added support to BACKUP STAGE to maria-backup This is a port of the code from ES 10.6 See MDEV-5336 for backup stages description. The following old options are not supported by the new code: --rsync ; This is because rsync will not work on tables that are in used. --no-backup-locks ; This is disabled as mariadb-backup will always use backup locks for better performance.
35 lines
1.3 KiB
C
35 lines
1.3 KiB
C
#pragma once
|
|
#include "my_dbug.h"
|
|
|
|
#ifndef DBUG_OFF
|
|
char *dbug_mariabackup_get_val(const char *event, fil_space_t::name_type key);
|
|
/*
|
|
In debug mode, execute SQL statement that was passed via environment.
|
|
To use this facility, you need to
|
|
|
|
1. Add code DBUG_EXECUTE_MARIABACKUP_EVENT("my_event_name", key););
|
|
to the code. key is usually a table name
|
|
2. Set environment variable my_event_name_$key SQL statement you want to execute
|
|
when event occurs, in DBUG_EXECUTE_IF from above.
|
|
In mtr , you can set environment via 'let' statement (do not use $ as the first char
|
|
for the variable)
|
|
3. start mariabackup with --dbug=+d,debug_mariabackup_events
|
|
*/
|
|
extern void dbug_mariabackup_event(
|
|
const char *event, const fil_space_t::name_type key, bool need_lock);
|
|
#define DBUG_MARIABACKUP_EVENT(A, B) \
|
|
DBUG_EXECUTE_IF("mariabackup_events", \
|
|
dbug_mariabackup_event(A,B,false););
|
|
#define DBUG_MARIABACKUP_EVENT_LOCK(A, B) \
|
|
DBUG_EXECUTE_IF("mariabackup_events", \
|
|
dbug_mariabackup_event(A,B, true););
|
|
#define DBUG_EXECUTE_FOR_KEY(EVENT, KEY, CODE) \
|
|
DBUG_EXECUTE_IF("mariabackup_inject_code", {\
|
|
char *dbug_val = dbug_mariabackup_get_val(EVENT, KEY); \
|
|
if (dbug_val && *dbug_val) CODE \
|
|
})
|
|
#else
|
|
#define DBUG_MARIABACKUP_EVENT(A,B)
|
|
#define DBUG_MARIABACKUP_EVENT_LOCK(A,B)
|
|
#define DBUG_EXECUTE_FOR_KEY(EVENT, KEY, CODE)
|
|
#endif
|