This patch enables exclude-pattern to work with logical backups, excludes information_schema by default via enumAllDatabases() (paving the way for excluding performance_schema as well), and cleans up some nearby code.
Code:
diff -up MySQL-zrm-3.0/usr/bin/mysql-zrm-backup.exclude MySQL-zrm-3.0/usr/bin/mysql-zrm-backup
--- MySQL-zrm-3.0/usr/bin/mysql-zrm-backup.exclude 2013-08-26 14:45:36.000000000 -0600
+++ MySQL-zrm-3.0/usr/bin/mysql-zrm-backup 2014-04-03 17:02:13.648882414 -0600
@@ -1584,7 +1584,7 @@ sub doLogicalFullBackup()
&printStartPhase( "Creating logical backup\n" );
}
my $params;
- my $mydumperparams;
+ my $mydumperparams = "";
my $msg = "";
my $dbs = "";
my $index_msg = "";
@@ -1611,15 +1611,9 @@ sub doLogicalFullBackup()
$index_msg = "logical-databases=".$inputs{"databases"}."\n";
if($isMyDumper){
my @mdbs = split " ", $inputs{"databases"};
- my $str ="";
- foreach(@mdbs){
- $str.="$_|";
- }
- $str =~ s/\|$//;
- $mydumperparams = "--regex '^(".$str.")'";
+ $mydumperparams = "--regex '^(".join("|", @mdbs).")'";
}
} else {
- $params = "--all-databases ";
@pdbs = &enumAllDatabases();
if( defined $inputs{"exclude-pattern"} ){
my $ln = @pdbs;
@@ -1629,28 +1623,18 @@ sub doLogicalFullBackup()
&printAndDie( "Nothing to backup after exclude-pattern is applied\n" );
}
# handle the all-databases with ZRM exclude filter
- my $str = "";
if($isMyDumper){
if($ln > $l){
- foreach(@pdbs){
- $str.="$_|";
- }
- $str =~ s/\|$//;
- $mydumperparams = "--regex '^(".$str.")'";
- }else{
- $mydumperparams = "";
+ $mydumperparams = "--regex '^(".join("|", @pdbs).")'";
}
- }
+ }
}
+ $params = "--databases @pdbs";
if( $verbose ){
&printLog( "backup of the following databases will be done @pdbs\n" );
}
- $msg = "Logical backup done for the following database(s)\n";
- foreach( @pdbs ) {
- $dbs = $dbs.$_." ";
- }
- $msg = $msg.$dbs."\n";
- $index_msg = "logical-databases=".$dbs."\n";
+ $msg = "Logical backup done for the following database(s)\n@pdbs\n";
+ $index_msg = "logical-databases=@pdbs\n";
}
my $ntp = &checkIfNonTrans( @pdbs );
if($isMyDumper){