Catastrophes come uninvited. You might wake up one day to find out that your website is missing, replaced or has been taken down.
An administrator has to be prepared for all of such unforeseen and uninvited events. Although they cannot be prevented, they can be controlled and the damage can be minimized by strengthening security, frequent backups, installing updates in a timely manner.
We cannot stop disasters but we can arm ourselves with better security and backups
In this article, we are going to discuss how we can minimize the damage by creating backups.
Backup of a site means:
Backing up of the site database,
Backing up of the files system,
Backing up of configurations,
Backing up of the codebase
Backing up of the Site Database
The Backup and Migrate Module
The Backup and Migrate Module provides the administrator with an easy way to backup and later migrate the data when needed but here we will only be emphasizing on backing up of our site. it supports online as well as offline backups. this module also makes it possible to transfer the backup files to a custom destination; say an email address. So, let's see what are the configuration options for this module.
When we open the module, we see the screen shown below. Although the default settings are enough for taking a backup of the database, they can also be tweaked for one's own needs. After tweaking, we need to click on Backup now and the backup will be created in a compressed format and will be automatically downloaded onto one's own machine.
There is also an option for Advanced Backup which provides additional features such as adding a timestamp to the backup file, changing the compression format (gzip, bzip and zip) and also for encrypting the backup files.
Using the Graphical Utility
We can also use a graphical utility such as PHPmyAdmin to create a backup of our websites databases. In order to backup our databases, we need to follow the steps mentioned below;
Go to http://localhost/phpmyadmin/ and log in.
Select the source database from the list of databases from the left pane. If we want, we can also choose individual tables.
Now, we click on Export located at the top.
This window allows us to choose between quick and custom export methods which provide minimal and extended control over data respectively. In this demonstration, we select the Custom option which reveals a lot of options which are discussed below.
In the output section, we select the compression method.
In the format section, we select the database format from the drop down box and check the ‘structure and data’ radio button.
Next, in the object creation options section, we configure as follows:
>Select the checkbox labelled "Add DROP TABLE/ VIEW/ PROCEDURE/ FUNCTION statement". This option overwrites tables if they exist in the target database.
>Select the checkbox labelled "Add AUTO_INCREMENT value"
>Select the checkbox labelled "Enclose table and field names with backquotes"
We leave the other options in their default state and click on the ‘Go’ button.
Download the file when prompted if the file doesn't get automatically downloaded.
An administrator should back up the entire site before upgrading or updating, saving a copy of the backup in multiple locations both online and offline
Using the Command Line
Using SSH Terminal
A user having access to (Secure Shell) SSH can use mysqldump command to export. This method has an advantage over the graphical utility method when trying to backup large databases as PHPmyadmin suffers from a timeout issue. To export a database, type in the following,
However, if no destination folder is being specified, it is saved in drush-backup/archive-dump folder.
Backing Up with Drupal Console
We can also use the Drupal console to take backups of our sites by typing in commands. The syntax for the command to dump the structure and contents of a database is;
drupal database:dump [arguments] [options]
database: Database key from settings.php
-file The filename for your database backup. -gz Pass this option if you want the SQL result file gzipped.
2. Backing up the Site Files
In Drupal, the site files can be classified into core and non-core files.
Backing up core files
The core files mainly refer to the files that reside in the root directory of Drupal and does what stock Drupal is supposed to do. Although the core files can be downloaded from drupal.org, it still helps in saving some time when disasters do happen and creating backups is extremely necessary when the core files have been edited.
Backing up non-core files.
In addition to core files, there also exists non-core files that are necessary for the seamless functioning of a website. Non-core files are stored in the directory specified in
Administer > Site Configuration > File System
which contains various uploaded files, pictures, logos etc that are vital in nature.
In the same way, /sites/directory should also be backed up frequently because it contains settings and configuration files specific to the site and is an integral part of multisite configurations.
To back up the site files, we need to go to the specific directories and can use any compression software to decrease the size of the backup files.
So far, we have discussed only a few ways in which we can back up sites. The options are limitless. However, an administrator should back up the entire site before upgrading or updating, saving a copy of the backup in multiple locations both online and offline.
Last but not the least, an administrator needs to be careful and ready to face such calamities whenever the need arises. Connect with us at [email protected] and we would be happy to help.
Bikash is fond of lines of code that does magic. He loves listening to techno and is a budding car-geek. Likes spending his time browsing through tech sites. Bikash is a big-time Batman fan and believes that Batman can beat anyone.