C# Tutorials and offshore development in India
    Tutorials   Resources   Forum   Reviews   Communities   Interview   Jobs   Projects   Training   Your Ad Here    
Silverlight Games | Mentor | Code Converter | Articles | Code Factory | Computer Jokes | Members | Peer Appraisal | IT Companies | Bookmarks | Polls | Revenue Sharing | Lobby | Gift Shop |


Prizes & Awards
My Profile



Active Members
TodayLast 7 Days more...






Resources » Code Snippets » Automation »

Backup and Restore a MySQL Database in C#.NET


Posted Date: 10 Jul 2008    Resource Type: Code Snippets    Category: Automation
Author: Himasagar KutikuppalaMember Level: Silver    
Rating: 1 out of 5Points: 10





The code sample automates the process of backing up and restoring a MySQL database.

Create two batch files separately for backup(MySql_Backup.bat) and restore(MySql_Restore.bat).

MySql_Backup.bat



@ECHO off
cls
set DBchoice=%1%
set User=%2%
set Password=%3%
set pathchoice=%4%

@REM Remove double quotes from the path
@REM SET pathchoice=%pathchoice:"=%
@REM SET pathchoice=%pathchoice:"=%

mysqldump --add-drop-table -B %DBchoice% -u %User% --password=%Password% > %pathchoice%


MySql_Restore.bat




@ECHO off
cls

set User=%1%
set Password=%2%
set DBchoice=%3%
set pathchoice=%4%
set hostIP=%5%
set toolPath=%6%

@REM Remove double quotes from the path
@REM SET pathchoice=%pathchoice:"=%
@REM SET pathchoice=%pathchoice:"=%

%toolPath%\mysql -u %User% -h%hostIP% --password=%Password% %DBchoice% < %pathchoice%



Create the following method to execute the batch files with proper parameters


/// <summary&RT;
/// Author : Himasagar Kutikuppala
///A utility method that runs the batch file with supplied arguments.
/// </summary&RT;
/// <param name="batchFileName"&RT;Name of the batch file that should be run</param&RT;
/// <param name="argumentsToBatchFile"&RT;Arguments to the batch file</param&RT;
/// <returns&RT;Status of running the batch file</returns&RT;
protected bool ExecuteBatchFile(string batchFileName, string[] argumentsToBatchFile)
{
string argumentsString = string.Empty;
try
{
//Add up all arguments as string with space separator between the arguments
if (argumentsToBatchFile != null)
{
for (int count = 0; count < argumentsToBatchFile.Length; count++)
{
argumentsString += " ";
argumentsString += argumentsToBatchFile[count];
//argumentsString += "\"";
}
}

//Create process start information
System.Diagnostics.ProcessStartInfo DBProcessStartInfo = new System.Diagnostics.ProcessStartInfo(batchFileName, argumentsString);

//Redirect the output to standard window
DBProcessStartInfo.RedirectStandardOutput = true;

//The output display window need not be falshed onto the front.
DBProcessStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
DBProcessStartInfo.UseShellExecute = false;

//Create the process and run it
System.Diagnostics.Process dbProcess;
dbProcess = System.Diagnostics.Process.Start(DBProcessStartInfo);

//Catch the output text from the console so that if error happens, the output text can be logged.
System.IO.StreamReader standardOutput = dbProcess.StandardOutput;

/* Wait as long as the DB Backup or Restore or Repair is going on.
Ping once in every 2 seconds to check whether process is completed. */
while (!dbProcess.HasExited)
dbProcess.WaitForExit(2000);

if (dbProcess.HasExited)
{
string consoleOutputText = standardOutput.ReadToEnd();
//TODO - log consoleOutputText to the log file.

}

return true;
}
// Catch the SQL exception and throw the customized exception made out of that
catch (SqlException ex)
{

ExceptionManager.Publish(ex);
throw SQLExceptionClassHelper.GetCustomMsSqlException(ex.Number);
}
// Catch all general exceptions
catch (Exception ex)
{
ExceptionManager.Publish(ex);
throw new CustomizedException(ARCExceptionManager.ErrorCodeConstants.generalError, ex.Message);
}
}



Regards
Himasagar Kutikuppala



Responses


No responses found. Be the first to respond and make money from revenue sharing program.

Feedbacks      
Popular Tags   What are tags ?   Search Tags  
Sign In to add tags.
Restore mysql database  .  MySQL Database Backup and Restore from C#.NET application  .  Backup mysql database  .  Backup and restore mysql database  .  Backup and restore database in C#  .  Automate database restore  .  Automate database backup and restoring  .  Automate database backup  .  

Post Feedback


This is a strictly moderated forum. Only approved messages will appear in the site. Please use 'Spell Check' in Google toolbar before you submit.
You must Sign In to post a response.
Next Resource: Creating an Excel Spreadsheet and Adding Data to It Programmatically
Previous Resource: Longitude or Latitude Convert "Degrees Minute Second" Format to "Decimal Degree" C# Example
Return to Discussion Resource Index
Post New Resource
Category: Automation


Post resources and earn money!
 
More Resources



dotNet Slackers

About Us    Contact Us    Privacy Policy    Terms Of Use