The Eric Wroolie Blog

Overpass Experiences

  • Blog
  • Videos
  • Overpass Apps

Powered by Overpass Apps

Creating a daily Database backup for MySql (and self-hosted WordPress blogs)

June 8, 2009 by wroolie 2 Comments

Most of the professional work I do is with Microsoft SQL Server and .Net platform.  For my own pet projects, I prefer using MySql as a db engine.  WordPress (and most PHP projects use it primarily).  It’s cheap and efficient to host.

One of the features I always found SQL Server to lack is the ability to generate insert scripts.  Sure, it’s easy to script out tables, views, and stored procs– but you still have to get tricky with transferring data from one database to another.  I know people say “you can just back up the database and restore it to a new server”, but they obviously have never worked in a tight change-controlled enterprise environment where you need everyone under the sun to approve this a dedicated dba overlooking everything.  This method is overkill if you just want to replace the a record that a user has “accidentally deleted”.

MySql has a very handy feature that use frequently called mysqldump.  This will create an sql file of all db objects and store them in an sql file — data structures and data too.  Mysqldump will create one script with table create statments (and drop statements) along with insert statements for all of your data.

I use mysqldump to store local backups of my remote databases.  For example, this blog is backed up every morning– just in case my server goes down and is unrecoverable.   I occasionally back up web code with an FTP routine, but the database needs to be done more often– since it is frequently updated by me or readers of this blog with comments.

Here’s how it’s done using my WordPress database and local XP account:

1.  Make sure you can connect to your remote database from your local pc

To do this, you need to have MySql client tools installed on you local pc.  Just try to log into our remote site using MySQL Administrator. 

image

If you can connect from you local pc, you can use mysqldump from the command line.

2.  Write a batch script to create a folder for each day

I have a folder called “backups” with a date-stamped folder for each day of backup (ie.  2009-06-08).  Here is my code for that batch file (with my db details removed):

rem backup blog

rem create new folder name
set DD=%DATE:~0,2%
set MM=%DATE:~3,2%
set YY=%DATE:~8,2%
set YYYY=%DATE:~6,4%
set FOLDER=%YYYY%-%MM%-%DD%

rem make the new folder
cd g:backups
mkdir %FOLDER%

rem go to folder
cd %FOLDER%

rem create the data dump
mysqldump -h 111.222.111.222 -u username -ppassword wpDBName > blogdump.sql

For the mysqldump line, use the ip address (or host name) of the remote server and user name and password.  In the example above, I am connecting to my db called “wpDBName” on host 111.222.111.222 with the user name “username” and password “password”.  It is writing out to a file on my local pc called “blogdump.sql” in a folder with a date stamp.

NOTE: the -p switch does not have a space between it and the password.  This is bizarre, but that’s how it works.

Save to the above code to a file with a .bat extension.  I called mine “backup.bat”.

3.  Create a scheduled task to run this job.

Use Windows Scheduled Tasks to automatically run your batch job.  This can be found in Control Panel and is easy to use (Wizard Generated).  I run my job at 4:10 am.  To save the environment, I shut down my pc at night, but a bios task wakes it back up at 4.  At 10 minutes past 4, my databases are backed up (just before I sit at the keyboard with my coffee to catch the final innings of a Padres game).  Once a week, I have a similar job that will back up all web code via ftp.

image

 

That’s it, the majority of my disaster recovery problems taken care of.  I have the data stored on my local pc and on the server.  It would be easy to run the same script from another pc if I need to, also.

As you can imagine, this daily backup can take a good deal of disk space.  Each sql dump is about 3mb for this site.  I usually clear things down every few weeks and delete backups that are over a week old.  I don’t replace my backup file every day because it could be a few days before I realise anything has gone wrong.  I may script this at some point in the future.

I’m blogging about this because a few days ago I was playing around with my Plesk settings on my Ubuntu VPS and everything stopped working.  I had to restore to my last VPS backup– which was a few weeks old.  That would have meant losing all my WordPress blog posts and (more importantly) the comments I’ve received from them.  Luckily, I have this backup method in place so I didn’t lose anything.

If you are not backing up your databases (even if they are hosted with a web host), you should really consider it.  It is a trivial task to set this up and could save you in the future.

I hope someone out there finds this useful.  Drop me a line (or post a comment) if you found this to be of any help.

Filed Under: Blogging, Software Dev & Productivity

Conan O’Brien on the Tonight Show

June 6, 2009 by wroolie 3 Comments

I used to watch the tonight show every night. I missed a lot of school from oversleeping. At the NBC studios in Burbank, I saw Jay Leno a few times while he was guest hosting for Carson. When O’Brien took over for Letterman, I thought he was awful– but six months later, he had his own style and was funnier than Letterman.

I miss the late night TV while living in England. This week, Conan took over for Leno as host of the Tonight Show. This is the opening for the first show. Looks like it will be very good.

Maybe we will be able to watch the show from the UK one day.

Filed Under: Growing Up, Living in the UK

Live Fire use of Hindi

June 4, 2009 by wroolie 2 Comments

Last night, my family treated ourselves to Indian takeaway.  I was planning on cooking something earlier (I absolutely hate cooking), but was feeling ill after my vaccinations.  So, I called the local Indian restaurant and ordered a curry.

When I showed up at the Indian restaurant to pick up the food, it wasn’t ready yet so I sat in a chair by the door.  The restaurant was empty except for me and the waiter.  I was wearing sandals, shorts and t-shirt, and my San Diego Padres cap.  He was wearing his waiters uniform (bow tie and button-up shirt).  The waiter started to make small talk with me.

“So, are you having a good day today?” he asked.

“Yes.  Thank you.  Are you?” I returned.  I’m never good with small talk. I think this is why I will never be a master networker.  I will never attain my junior high school visions of being able to walk down the street and have people greet me with high fives and everyone knows me.  I’m just not good at talking when I don’t have anything to say.   

The waiter told me he was fine and a few minutes of silence passed.  Then I realised this was an excellent opportunity to practice some Hindi.  I could actually use some Hindi in a real-life, live fire, situation.

“Aj mausam garam hai,” I said.  This means “The weather is warm”.  Luckily, the weather actually was very warm– because I couldn’t remember if the word “weather” was masculine or feminine and which form of the word “cold” to use.

He looked slightly amused and asked where I learned to speak Hindi.  I told him about taking the class at the local college.  He confirmed back to me that the weather is very warm (“bohot garam hai”).

I was pretty impressed with myself that I was having a Hindi conversation.  But, I had nothing else to say!  I couldn’t think of anything thing else to say that I learned on that 10 week course that I could use. I couldn’t think of anything that my colleagues in Mumbai had taught me.  I froze.  So, to fill the conversation gap, I said the one thing I used to say to my Mumbai friends which usually got them to laugh– “May thola thola mota hai kewkee may chicken bohot passand hai.”  This means “I am a little bit fat because I really like chicken.”

This was just met by an odd look from the man.  He didn’t laugh or even smile– he just looked at me as if not knowing what to say.  He then told me he was actually Bangladeshi but did understand Hindi.  I nodded in understanding and then pretending I was reading a text on my phone.

It got my food and then left.

I’ve been studying Chinese a lot lately and haven’t really used Hindi at all.  To be honest, I found Hindi to be a difficult language to learn.  I am not fluent by any stretch of the imagination.  It will never be listed on my CV.  I’m not sure if I will ever have a reason to pick it up again.

I don’t think I’ll try speaking Hindi in a restaurant again any time soon.

Filed Under: Hindi, Languages

  • « Previous Page
  • 1
  • …
  • 45
  • 46
  • 47
  • 48
  • 49
  • …
  • 111
  • Next Page »

Recent Posts

  • My Gig and the Imposter Syndrome
  • Getting Picked Last for Teams in PE
  • One Little Growth Opportunity at a Time
  • I’m sorry if I look like I know what I’m doing
  • New Years Reclamations