SlideShare a Scribd company logo
DRP Technical Documentation V1.0 
October 14, 2014 
By: Azaam Alfi 
 
Summary: 
 
Our goal here is to synchronize all files which include code and other files such as uploads and 
images necessary to run to all projects which are web applications and MySQL data in real time 
between the ​live server ​and the ​backup server​. This is required incase our live server goes 
down or loses data. Our backup server will need to be ​hot ​all the time which means that 
anytime we need to close the live server and use the backup server it need to be up and 
running with the most current version of data and files. 
 
There are 4 major components I have worked on that you MUST understand: 
 
­  MySQL native data replication 
­ “Unison” 2­way file synchronization 
­ Monitoring script 
­ “GoDaddy” A records Domain configuration 
 
 
MySQL native data replication: 
 
Data replication here is for the 2 identical databases in the live and backup server. Basically 
replication here is applying any change made to 1 database or database server instantly to the 
other database or the database server. For example, one record is added to table “A” in the live 
server. That same record is instantly added to table “A” in the backup server through the 
MySQL replication. 
 
Replication has a “Master” database and a “Slave” database the changes made on the “Master” 
are applied on the “Slave” but the changes made on the “Slave” are not applied to the “Master”. 
Having 1 database as “Master” and the other as “Slave” is called a “Master to Slave” 
relationship. 
 
You can learn more by clicking these links: 
 
http://en.wikipedia.org/wiki/Replication_%28computing%29#Database_replication 
 
http://dev.mysql.com/doc/refman/5.0/en/replication.html 
 
Page 1 out of 20 
I have went a step forward and created a “Master to Master” relationship in which 1 database is 
both the master and the slave and the other is also the master and the slave. This means if a 
change is made to on the live it will instantly be applied to the backup server. Also if a change is 
made on the backup server then it will be replicated instantly on the live so its a “2­way” 
replication. 
 
 
setting up a master to master relationship 
 
 
I have this article to set up the master to master relationship: 
 
https://www.digitalocean.com/community/tutorials/how­to­set­up­mysql­master­master­replicatio
n 
 
If you are working Centos Linux distribution user “server_id” instead of “server­id” and make 
changes under the [mysqld] line. Also the configuration file in Centos is usually in /etc/my.cnf if 
not enter command locate ­i my.cnf to find it. 
 
Troubleshooting MySQL replication 
 
­ Steps 2 and 3 in the article above may need to be reapplied if servers lose connection. 
­ make sure the you can enter as “replicator” from live to backup and from backup to live 
 
For example, in the live server type this command # mysql ­u [replicator username] 
­p[replicator password] ­h[backup server IP/domain] it should log you in.. 
 
­ make sure firewall on backup server does not block incoming connections on tcp port 
3306 (mysql port) from the live server and vice versa. 
­ login to mysql and type “show slave status” and read any error messages carefully and 
maybe try googling it. 
­ Do not forget to test replication changes on both servers after resolving issues. 
 
“Unison” 2­way file synchronization 
 
I have installed and configured “Unison” as the file synchronization program. This is a 2­way file 
synchronization program and works similarly to the “Master to Master” relationship described 
above except that is related to files and changing their content not databases. Here is the article 
I used to set both servers on: 
 
http://xmodulo.com/synchronize­files­between­two­servers.html 
 
Page 2 out of 20 
 
 
I use the ssh to make the the transfers as it is more secure but needs to keep connecting and 
disconnecting to server also ssh encrypts the files between transfers unlike using a direct socket 
connection to the server so keep it this way. 
 
Please make sure that unison is installed on both the backup and live servers with the SAME 
version as I have used different versions and files could not be transferred. Even if files do 
transfer we don’t want what issues we will be facing if we different versions are used so don’t 
risk it. After installing unison on BOTH servers check the version by entering this command: 
 
# unison ­version 
 
At the time of this writing the most up to date stable version I am using is: 
 
unison version 2.40.102 
 
Configuration 
 
Unison will be running ONLY from the backup server so configuration is at ONE server only. I 
have placed the configuration for one profile (you can create more profiles if you need them) 
while logged in as root here: 
 
~/.unison/sync_live.prf 
 
Here is the file (with comments: 
 
# Two root directories to sync. 
# You can use ssh:// to sync over SSH 
root = /var/www/ 
root = ssh://ogsis@50.63.52.151//var/www/ 
 
# If you want one­way mirroring from one replica to the other, specify the source 
replica using "force" as follows. 
# force = /home/alice/sync_folder 
 
# If you want Unison to run without any user input, try "batch" mode. 
batch = true 
 
# If you don't want to be prompted, and just accept Unison's recommendation: 
auto = true 
 
Page 3 out of 20 
# Optionally, you can sync specific sub directories only (under the root). 
path = test_project1/uploads/ 
path = test_project2/uploads/ 
path = test_project3/uploads/ 
 
# Optionally, you can ignore specific files or directories that are matched with 
regular expressions. 
# ignore = Name *.o 
# ignore = Name *~ 
# ignore = Path */temp/archive_* 
 
# If you want to ignore difference in file props: 
perms = 0 
 
#suppress message: Contacting Server 
#contactquietly = true 
 
#show text interface instead of graphic 
ui = text 
 
 
 
Some important notes to mention on the file… 
 
root = /var/www/ 
root = ssh://ogsis@50.63.52.151//var/www/ 
 
The first line the local root path and the second is server root path which should be in this format 
ssh://[username]@[host]/[absolute path to the root]. You need to have key­based passwordless 
ssh access to the server (which means access the server without entering its password) read 
this article here if you did not do this already or just need to understand it: 
 
https://www.centosblog.com/passwordless­ssh­key­based­authentication­60­seconds­centos­lin
ux/ 
 
path = test_project1/uploads/ 
path = test_project2/uploads/ 
path = test_project3/uploads/ 
 
These are the sub directories that will be checked which most­likely will be the uploaded files. 
 
#show text interface instead of graphic 
ui = text 
Page 4 out of 20 
 
Unison has a Graphical User Interface (GUI) and we don’t want to show it as file 
synchronization should automatically be handled by the server. Even though I place this option 
in the file I don’t know why it still shows the GUI so I still have to include this option when 
running the sync by including: 
 
­ui text 
 
Running/testing 
 
I run the unison ONLY on the BACKUP server since I want to try to reduce load on the live 
server. So the backup server will be checking changes from within itself and from within the live 
server but this still means that synchronization is 2­way or bidirectional. To manually run the 
Unison program I enter this command: 
 
# unison ­ui text sync_live 
 
You can add a file on 1 server run the program and see it present on the other server. You can 
also delete files and change their content to see the changes applied at the other server. 
 
Please note that when the last file in the folder is removed on 1 side it will not be removed on 
the other side unless another file is added on the side it was removed then it will delete the file 
deleted on the second side and add the new file to be synchronized. 
 
Automating the process 
 
Ok now we understand what unison does and how to synchronize the files, so now its time to 
make the server handle it all by itself. At a very basic level, unison requires 2 things to run, a 
connection from the backup to the live server and access to ssh port (tcp port 22) so we need to 
check that both are open before scheduling a run to the unison which will be made every 
minute. Here is the bash script used to run unison every minute ONLY IF server is up and port 
22 is open: 
 
#!/bin/bash 
 
#vars 
server_status_file="./server_status.txt"; 
ssh_service_file="./server_ssh_service.txt"; 
 
#check if server status (if it is up or not) file exists, value must be "off" or "on" 
(anything other the "off" is considered "on") 
 
Page 5 out of 20 
# if any of the 2 files don’t exist then consider them as “on” 
if [ ­f $server_status_file ]; then 
 
exists=true; 
 
else 
 
echo "on" > $server_status_file; 
 
fi 
 
#check if ssh service in the server is running, value must be "off" or "on" 
(anything other the "off" is considered "on") 
if [ ­f $ssh_service_file ]; then 
 
exists=true; 
 
else 
 
echo "on" > $ssh_service_file; 
 
fi 
 
if [ "$(cat $server_status_file)" != "off" ]  && [ "$(cat $ssh_service_file)" != "off" ]; 
then 
 
echo "unison ­ui text sync_live" | at ­t `date ­d '+1 minute' "+%Y%m%d%H%M"`; 
echo "./unison_sync.bash" | at ­t `date ­d '+1 minute' "+%Y%m%d%H%M"`; 
date > last_unison_status.txt; 
fi 
 
 
One note to mention… 
 
server_status_file="./server_status.txt"; 
ssh_service_file="./server_ssh_service.txt"; 
 
The script basically checks if one these files has “off” as their content and if it does not then it 
will schedule to run unison the next 1 minute and places a timestamp in a text file when the last 
run was schedule which is 1 minute ahead of the time stamp. 
 
Page 6 out of 20 
You can easily stop scheduling by changing the content of 1 of the 2 files mentioned above to 
“off” and the next minute will be unison will not run. You can then start it after stopping it by just 
running by first making sure script is executable by running this command: 
 
chmod +x ./unison_sync.bash 
 
 
Then making sure that BOTH files mentioned above are set to anything BUT “off” or do not exist 
(as they will created with “on” as their content if they do not exist. 
 
Then running the script: 
 
./unison_sync.bash 
 
These files are controlled by the monitoring script as well which is mention in the next section.. 
 
 
Monitoring script: 
 
We need to be vigilant on issues that occur and notified immediately if anything happens. The 
backup server will have a constant eye on the live server. I have made a monitoring scripts that 
runs every minute and checks 4 things the “nmap” (which must must installed before hand) 
command: 
 
­ If the the server is running or if connection to the server from the backup could not be 
made 
­ if the the apache web server is running (by checking tcp port 80) 
­ if the MySQL database server is running (tcp port 3306) 
­ if the SSH server is running (tcp port 22) which is important for unison to be running 
 
Requirements before running 
 
Make sure that the backup server has access to all ports mentioned above as well as the server 
itself you can use this command to check the status: 
 
# nmap ­p 22,80,3306 [server_address] 
 
If you do not have access to the server or to 1 or more of the ports mentioned above please 
check the incoming connections on the firewall on the live server. 
 
The script will use the mail command so make sure you can send an email from the BACKUP 
server by entering this command: 
Page 7 out of 20 
 
# echo “the email body here..” | mail ­s “just a subject” $USER 
 
You can then check the local mailbox by entering this command: 
 
# mail 
In the home directory (~/) of the user that will run the script there should be a .forward file which 
contains the email addresses that will receive emails sent by the monitoring script. The emails 
will be seperated by “; “ the .forward should like this: 
 
mazen@eaa.com.sa; azzam@eaa.com.sa; ghaith@eaa.com.sa; ahmad@eaa.com.sa 
 
Please test the mail program and check if emails are sent to all emails specified in the .forward 
file. They may enter as spam and if they do Gmail can ​filter​ them back to inbox. 
 
Finally, make sure that this bash script file (which the monitoring script) is executable by 
entering this command: 
 
# chmod +x ./check_nmap.bash 
 
Responding to email alerts 
 
If any fault is detected an email will be sent. Lets say for instance an email was sent that the live 
server is down because the internet connection for the live server was disconnected. I would 
connect the internet back on for the live server make a quick ping from the live server to google 
by entering this command: 
 
# ping google.com 
 
Then I would go to the backup server and make sure it can see the live server by also pinging to 
it and if ping was successful I would cd into the monitoring script path and change all these files 
content to “on” 
 
./control.txt file (this file stops the monitoring script) 
./server_status.txt (stops the unison synchronization) 
./server_ssh_service.txt (stops the unison synchronization) 
 
Run the monitoring bash script then run the unison bash script which BOTH need to be in the 
SAME path. 
 
Here is the monitoring script: 
 
Page 8 out of 20 
#!/bin/bash 
 
#vars 
server_address="192.168.0.129"; 
control_file="./control.txt"; 
 
exists=false; 
 
#check if control file exists 
if [ ­f $control_file ]; then 
 
exists=true; 
 
else 
 
echo "on" > $control_file; 
 
fi 
 
 
#first save output to file 
nmap ­p 22,80,3306 $server_address > last_nmap_status.txt 
 
#check if server is down 
cat last_nmap_status.txt | grep ­i "Nmap done:" | 
while read ­r line 
do 
    #split by open parenthesis "(" 
    IFS=" " read ­a sep_field <<< $line; 
   
    received=${sep_field[5]//(}; 
 
    
    if [ $received ­lt 1 ]; then 
   echo "off ­ email was sent.." > control.txt ; 
   echo "off" > server_status.txt; 
   subject=$server_address" is DOWN!"; 
   body="Here is the nmap status: 
 
"$(cat last_nmap_status.txt); 
    
echo "$subject 
 
Page 9 out of 20 
";    
echo "$body"; 
 
   echo "$body" | mail ­s "$subject" $USER; 
   exit 0; 
    fi 
 
done 
 
# check apache server 
cat last_nmap_status.txt | grep ­i "80/tcp" | 
while read ­r line 
do 
  #split by open parenthesis "(" 
  IFS=" " read ­a sep_field <<< $line; 
 
  port_check=${sep_field[1]}; 
 
 
  if [ $port_check == "closed" ]; then 
   echo "off ­ email was sent.." > control.txt ; 
 
  subject=$server_address" apache/web service is DOWN!"; 
  body="Here is the nmap status: 
 
"$(cat last_nmap_status.txt); 
 
echo "$subject 
 
"; 
echo "$body"; 
 
  echo "$body" | mail ­s "$subject" $USER; 
 
  fi 
 
done 
 
 
# check mysql server 
cat last_nmap_status.txt | grep ­i "3306/tcp" | 
while read ­r line 
do 
Page 10 out of 20 
  #split by open parenthesis "(" 
  IFS=" " read ­a sep_field <<< $line; 
 
  port_check=${sep_field[1]}; 
 
 
  if [ $port_check == "closed" ]; then 
   echo "off ­ email was sent.." > control.txt ; 
 
  subject=$server_address" MySQL/Database service is DOWN!"; 
  body="Here is the nmap status: 
 
"$(cat last_nmap_status.txt); 
 
echo "$subject 
 
"; 
echo "$body"; 
 
  echo "$body" | mail ­s "$subject" $USER; 
 
  fi 
 
done 
 
# check ssh server 
cat last_nmap_status.txt | grep ­i "22/tcp" | 
while read ­r line 
do 
  #split by open parenthesis "(" 
  IFS=" " read ­a sep_field <<< $line; 
 
  port_check=${sep_field[1]}; 
 
 
  if [ $port_check == "closed" ]; then 
  echo "off ­ email was sent.." > control.txt ; 
   echo "off" > server_ssh_service.txt; 
    
  subject=$server_address" ssh service is DOWN!"; 
  body="Here is the nmap status: 
 
"$(cat last_nmap_status.txt); 
Page 11 out of 20 
 
echo "$subject 
 
"; 
echo "$body"; 
 
  echo "$body" | mail ­s "$subject" $USER; 
 
  fi 
 
done 
 
 
date > last_check_nmap_run.txt; 
if [ "$(cat $control_file)" == "on" ]; then 
echo "./check_nmap.bash" | at ­t `date ­d '+1 minute' "+%Y%m%d%H%M"`; 
fi 
 
 
 
“GoDaddy” A records Domain configuration 
 
According to dnsimple.com the “A record” is: 
 
“The ​A​ in A record stands for ​Address​. Simply put, an A record is used to find the 
address of a computer connected to the internet from a name. Whenever you visit a 
web site, send an email, connect to Twitter or Facebook or do almost anything on the 
Internet, the address you enter is a series of words connected with dots. 
 
For example, to get to this blog you may have followed a link from another web site 
pointing to blog.dnsimple.com. In my DNSimple account is an A record that points 
blog.dnsimple.com to the IP address 72.32.231.8.” 
 
http://support.dnsimple.com/articles/a­record/ 
 
We will use the”A records” to have a domain automatically redirect from live to backup instantly 
when the live server goes down. 
 
viewing “A records” for a domain on GoDaddy 
 
 
Page 12 out of 20 
 
 
 
 
 
 
On the home page click “My Account” at the top. 
 
 
A top bar drops down, from within it click the “Visit My Account” button. 
Page 13 out of 20 
 
 
In the account page click the “+” button in the “Domains” tree item. 
 
 
Page 14 out of 20 
The tree item will expand. Next to the domain you need to maintain, click the “Launch” 
button.
 
In the domain details page click the “DNS Zone File” tab. 
Page 15 out of 20 
 
The table under the “A (host)” title contains the “A records”. 
 
Page 16 out of 20 
NOTE! 
 
I have noticed a missing functionality in the page shown above. Now there is a primary IP 
Address which should be the live server and a Secondary IP address which should be the 
backup server and this is determined by which IP was added first. Now viewing the image 
above you see that 50.63.52.151 as the first record but this is the SECONDARY IP not the 
primary. The table by default sorts by ascending order of the first segment of the IP address. 
Here 50 is smaller than 212 so its listed first. There is no way of determining which IP has a 
higher priority by looking at this control panel! 
 
The only way to know which has a higher priority is to ask the person who has added the “A 
records” which was added first, or by disconnecting the primary IP to see it redirect to the 
secondary, deleting all records and adding them again. 
 
Testing automatic redirection 
 
You can test that the secondary IP will be instantly pointed to by correctly setting up the apache 
web server on both servers for a domain. Then you can simply stop the apache web server on 
the live server or simply turn it off to see the site redirect.  
 
Please note​ that if you don’t see it redirect empty your local browser’s cache and refresh or 
open it from another browser. 
 
Manually redirecting a domain to an IP 
 
According to GoDaddy updating the zone records on their side may take up to 48 hours. Go to 
the “A records” in GoDaddy, which is described above, to the domain that needs to be 
redirected. Before doing anything take record of the current “A records”. You can simply take a 
screenshot and record the date and time to know exactly what change you have performed. 
 
 
   
Page 17 out of 20 
Delete all “A records” for the domain. 
 
 
Click the “Save Changes” button to confirm deleting “A records”. 
 
 
 
   
Page 18 out of 20 
You should now confirm that the “A records” are all deleted. 
 
 
Click the “Add Record” button under the “A records” to add the IP you need to direct to. 
 
 
 
 
 
 
 
Page 19 out of 20 
Fill in the correct values and click finish to see the popup close. 
 
 
Click the “Save Changes” button to be notified again that changes may take up to 48 hours. 
 
Page 20 out of 20 

More Related Content

PPTX
Unbreakable SharePoint 2016 with SQL Server 2016 Always On Availability groups
PDF
What's new in Confluent 3.2 and Apache Kafka 0.10.2
PDF
New Data Transfer Tools for Hadoop: Sqoop 2
PPTX
Unbreakable SharePoint 2013 with SQL Server Always On Availability Groups (HA...
PPTX
Apache Kafka with Spark Streaming: Real-time Analytics Redefined
PDF
Oracle Enteprise Manager Cloud Control 12c - Setting Up Metrics and Monitorin...
PPTX
Apache Hive on ACID
PPTX
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools
Unbreakable SharePoint 2016 with SQL Server 2016 Always On Availability groups
What's new in Confluent 3.2 and Apache Kafka 0.10.2
New Data Transfer Tools for Hadoop: Sqoop 2
Unbreakable SharePoint 2013 with SQL Server Always On Availability Groups (HA...
Apache Kafka with Spark Streaming: Real-time Analytics Redefined
Oracle Enteprise Manager Cloud Control 12c - Setting Up Metrics and Monitorin...
Apache Hive on ACID
May 2013 HUG: Apache Sqoop 2 - A next generation of data transfer tools

What's hot (20)

PPTX
Storage and-compute-hdfs-map reduce
PPTX
Apache Kafka 0.8 basic training - Verisign
PPTX
Meet hbase 2.0
PPTX
Kafka connect-london-meetup-2016
PPTX
Hadoop Summit 2012 | A New Generation of Data Transfer Tools for Hadoop: Sqoop 2
PPTX
PDB Provisioning with Oracle Multitenant Self Service Application
PDF
Migrating and Running DBs on Amazon RDS for Oracle
PDF
Developing real-time data pipelines with Spring and Kafka
PDF
Oracle 12c Parallel Execution New Features
PPT
State of Security: Apache Spark & Apache Zeppelin
PPTX
From zero to hero Backing up alfresco
PPTX
Hive acid-updates-strata-sjc-feb-2015
PDF
SQL AlwaysON for SharePoint HA/DR on Azure Global Azure Bootcamp 2017 Eisenac...
PPTX
Jose portillo dev con presentation 1138
PPTX
Migrate Oracle database to Amazon RDS
PPTX
Apache Hive 2.0: SQL, Speed, Scale
PPTX
Hive: Loading Data
PDF
Generic Parse Server
PPTX
Apache Zeppelin + Livy: Bringing Multi Tenancy to Interactive Data Analysis
PPTX
Web Servers(IIS, NGINX, APACHE)
Storage and-compute-hdfs-map reduce
Apache Kafka 0.8 basic training - Verisign
Meet hbase 2.0
Kafka connect-london-meetup-2016
Hadoop Summit 2012 | A New Generation of Data Transfer Tools for Hadoop: Sqoop 2
PDB Provisioning with Oracle Multitenant Self Service Application
Migrating and Running DBs on Amazon RDS for Oracle
Developing real-time data pipelines with Spring and Kafka
Oracle 12c Parallel Execution New Features
State of Security: Apache Spark & Apache Zeppelin
From zero to hero Backing up alfresco
Hive acid-updates-strata-sjc-feb-2015
SQL AlwaysON for SharePoint HA/DR on Azure Global Azure Bootcamp 2017 Eisenac...
Jose portillo dev con presentation 1138
Migrate Oracle database to Amazon RDS
Apache Hive 2.0: SQL, Speed, Scale
Hive: Loading Data
Generic Parse Server
Apache Zeppelin + Livy: Bringing Multi Tenancy to Interactive Data Analysis
Web Servers(IIS, NGINX, APACHE)
Ad

Viewers also liked (17)

PPTX
Overall Equipment Efficiency
PDF
How to generate winning in mails on LinkedIn recruiter
PDF
PDF
Besser Presentation
PPT
Fujitsu Glovia, Inc. :: Solving Unique Requirements of Automotive Suppliers w...
DOC
Executive Engineer with 5 Years Exp. in Maintenance & PPC
PPTX
American Airlines Winners
PPTX
Natura realtyplus nomination
PPTX
Docker presentation for sharing
DOCX
Recommendations for Kevin Brown
PDF
HubSpot Presentation Q4 10-13-15
DOCX
HEM BAHADUR CHUHAN(NCV)
PDF
Haifa Al Mousa CV
PPTX
Diereccion ip de tu computadora
PDF
Five Health Benefits of Drinking Beer
DOCX
Semester evaluation Report- CT (1)
PDF
Certificates-Education, Training, Achievements-Awards
Overall Equipment Efficiency
How to generate winning in mails on LinkedIn recruiter
Besser Presentation
Fujitsu Glovia, Inc. :: Solving Unique Requirements of Automotive Suppliers w...
Executive Engineer with 5 Years Exp. in Maintenance & PPC
American Airlines Winners
Natura realtyplus nomination
Docker presentation for sharing
Recommendations for Kevin Brown
HubSpot Presentation Q4 10-13-15
HEM BAHADUR CHUHAN(NCV)
Haifa Al Mousa CV
Diereccion ip de tu computadora
Five Health Benefits of Drinking Beer
Semester evaluation Report- CT (1)
Certificates-Education, Training, Achievements-Awards
Ad

Similar to DRPTechnicalDocumentationV1.0 (20)

PPTX
MySQL - Scale Out @ CloudParty 2013 Milano Talent Garden
ODP
MySQL HA with PaceMaker
PDF
MySQL Replication Update -- Zendcon 2016
PPT
MySQL Replication Basics
PPTX
Alibaba patches in MariaDB
PDF
MySQL Replication Basics -Ohio Linux Fest 2016
PDF
Buytaert kris my_sql-pacemaker
ODP
Mysql
PDF
Mashing the data
PDF
MySQL Cluster Asynchronous replication (2014)
PPTX
MySQL Replication Evolution -- Confoo Montreal 2017
PPTX
ConFoo MySQL Replication Evolution : From Simple to Group Replication
PDF
2012 ohiolinuxfest replication
PDF
Keith Larson Replication
PDF
Mysql Replication Excerpt 5.1 En
PDF
Drupal Camp Göteborg 2013: Skalbarhet och tillgänglighet med MySQL-replikering
PPT
Download presentation
PPT
Download presentation531
PDF
2012 replication
PDF
2012 scale replication
MySQL - Scale Out @ CloudParty 2013 Milano Talent Garden
MySQL HA with PaceMaker
MySQL Replication Update -- Zendcon 2016
MySQL Replication Basics
Alibaba patches in MariaDB
MySQL Replication Basics -Ohio Linux Fest 2016
Buytaert kris my_sql-pacemaker
Mysql
Mashing the data
MySQL Cluster Asynchronous replication (2014)
MySQL Replication Evolution -- Confoo Montreal 2017
ConFoo MySQL Replication Evolution : From Simple to Group Replication
2012 ohiolinuxfest replication
Keith Larson Replication
Mysql Replication Excerpt 5.1 En
Drupal Camp Göteborg 2013: Skalbarhet och tillgänglighet med MySQL-replikering
Download presentation
Download presentation531
2012 replication
2012 scale replication

DRPTechnicalDocumentationV1.0