A simple wrapper to execute `mysqldump` asynchronously and dump multiple tables *in parallel*.
1.1K
mysqldump-async is the simple wrapper to execute mysqldump asynchronously and dump multiple tables in parallel.
mysqldump in a single command.All the files you needs are in the directory examples:
dump.shrestore.shEdit the configuration file info.js before you run the scripts to dump or restore the database.
mysqldumpmysqldump should be installed first. Recommend to use Homebrew to install it if you are a Mac user:
brew install mysql
mysqldump binary is expected to in ${PATH}.
node packagesRun npm install on your mysqldump-async folder. All the node.js packages will be installed. Of course, node and npm is required. Use Homebrew to install both of node and npm if you are a Mac user:
brew install node
You can find all the configurations you need from info.js:
var dropAndCreate = true;
var backupBeforeDrop = false;
var dumpRootDir = path.join(__dirname, "dumps");
var mysqlPath = which('mysql').stdout;
var mysqldumpPath = which('mysqldump').stdout;
var backupRootDir = path.join(toolbox_js.getHomeDir(), '.backup');
var serverAddress = 'localhost';
var servers = [];
servers is the most important configurations and should be filled before using this tool. See the following examples:
var servers = [
{"name": "primary-database", "hostname": serverAddress, "port": "3306", "username": "root", "password": "PASSWORD", "database": "db_service", "tables" : {
"require": [
"users",
],
"clear": [
"audits",
]
},
"before" : path.join(dumpRootDir, "primary-database.db_service.prerequites.sql") ,
},
{"name": "schedule-database", "hostname": serverAddress, "port": "3306", "username": "root", "password": "PASSWORD", "database": "db_schedule", "tables" : {
"require": [
"SCHEDULE_BLOB_TRIGGERS" ,
"SCHEDULE_CALENDARS" ,
"SCHEDULE_CRON_TRIGGERS" ,
"SCHEDULE_FIRED_TRIGGERS" ,
"SCHEDULE_JOB_DETAILS" ,
"SCHEDULE_JOB_LISTENERS" ,
"SCHEDULE_LOCKS" ,
"SCHEDULE_PAUSED_TRIGGER_GRPS" ,
"SCHEDULE_SIMPLE_TRIGGERS" ,
"SCHEDULE_TRIGGERS" ,
"SCHEDULE_TRIGGER_LISTENERS" ,
"BATCH_JOB_EXECUTION_SEQ" ,
"BATCH_JOB_SEQ" ,
"BATCH_STEP_EXECUTION_SEQ" ,
],
"clear": [
"SCHEDULE_SCHEDULER_STATE",
"BATCH_JOB_EXECUTION",
"BATCH_JOB_EXECUTION_CONTEXT",
"BATCH_JOB_EXECUTION_PARAMS",
"BATCH_JOB_INSTANCE",
"BATCH_STEP_EXECUTION",
"BATCH_STEP_EXECUTION_CONTEXT"
]
},
"before" : path.join(dumpRootDir, "schedule-database.db_schedule.prerequites.sql") ,
},
];
Run dump.js.command to dump your databases and then you can find your dump files from dumpRootDir directory:
var dumpRootDir = path.join(__dirname, "dumps");
Run restore.js.command to restore the databases using your dump files. Any changes made on your database will be discarded if you do not dump the database before restoring it. Set backupBeforeDrop to true if you want to dump the database first before restoring it.
var backupBeforeDrop = false;
Content type
Image
Digest
Size
290 MB
Last updated
over 7 years ago
docker pull andromedarabbit/mysqldump-async