mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	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
 |