~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/slave/docs/user_example.rst

  • Committer: Olaf van der Spek
  • Date: 2011-08-04 08:13:04 UTC
  • mfrom: (2384 drizzle)
  • mto: This revision was merged to the branch mainline in revision 2385.
  • Revision ID: olafvdspek@gmail.com-20110804081304-rlejjpvoos17bjdf
Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
How to use replication: An example
2
2
====================================
3
3
 
4
 
Simple replication setup (using a single master and a single slave) between two Drizzle servers is straightforward with the replication slave plugin. With Drizzle replication, you can also provision a new slave into an existing setup.
 
4
A simple replication setup (using a single master and a single slave) between two Drizzle servers is done with the replication slave plugin. With Drizzle replication, you can also provision a new slave into an existing setup.
5
5
 
6
6
Replication setup begins with making certain that both master and slave share the same version of Drizzle to avoid any potential incompatibility issues.
7
7
 
8
8
Master Setup
9
9
-------------
10
10
 
11
 
Setting up the master is the first step. An important requirement is to start the master Drizzle database server with the --innodb.replication-log option. For example:
12
 
 
13
 
    master> sbin/drizzled --datadir=$PWD/var --innodb.replication-log &
14
 
 
15
 
 
16
 
For more complex setups, the --server-id option may be appropriate to use.
 
11
Setting up the master is the first step. An important requirement is to start the master Drizzle database server with the --innodb.replication-log option, and a few other options in most circumstances. More options can be found in the options documentation. These are the most common options needed for a replication master. For example:
 
12
 
 
13
    master> usr/local/sbin/drizzled \
 
14
                        --innodb.replication-log \
 
15
                        --pid-file=/var/run/drizzled/drizzled.pid \
 
16
                        --drizzle-protocol.bind-address=0.0.0.0 \
 
17
                        --mysql-protocol.bind-address=0.0.0.0 \
 
18
                        --daemon
 
19
 
 
20
 
 
21
Several options are required on most setups. They are set on Drizzle Startup with a --optionname. The most important ones are:
 
22
 
 
23
 
 
24
The InnoDB replication log must be running:
 
25
 
 
26
--innodb.replication-log
 
27
 
 
28
 
 
29
PID must be set:
 
30
 
 
31
--pid-file=/var/run/drizzled/drizzled.pid
 
32
 
 
33
 
 
34
the address binding for Drizzle's default port (4427):
 
35
 
 
36
--drizzle-protocol.bind-address=0.0.0.0
 
37
 
 
38
 
 
39
The address binding for systems replicating through MySQL's default port (3306):
 
40
 
 
41
--mysql-protocol.bind-address=0.0.0.0
 
42
 
 
43
 
 
44
Data Directory can be set other than default:
 
45
 
 
46
--datadir=$PWD/var
 
47
 
 
48
 
 
49
For more complex setups, the server id option may be appropriate to use:
 
50
 
 
51
--server-id
 
52
 
 
53
 
 
54
To run Drizzle in the background, thereby keeping the database running if the user logs out:
 
55
 
 
56
--daemon
 
57
 
 
58
 
17
59
 
18
60
With the master running, you can optionally now create a backup of any databases to be imported on the new slave by using :doc:`../../clients/drizzledump`. This example, however, assumes that we are starting with a fresh database with no data.
19
61
 
20
62
Slave Setup
21
63
-------------
22
64
 
23
 
Starting the slave is almost as simple as starting the master. There are two Drizzle database server options required for the slave: --plugin-add=slave and --slave.config-file. For example: ::
24
 
 
25
 
        slave> sbin/drizzled --datadir=$PWD/var \
26
 
                                    --plugin-add=slave \
27
 
                                    --slave.config-file=/tmp/slave.cfg &
28
 
 
 
65
Starting the slave is very similar to starting the master. There are two Drizzle database server options required for the slave: --plugin-add=slave and --slave.config-file. For example: ::
 
66
 
 
67
        slave> /usr/local/sbin/drizzled \
 
68
                        --plugin-add=slave \
 
69
                        --slave.config-file=/usr/local/etc//slave.cfg  
 
70
 
 
71
A more typical startup will need more options:
 
72
 
 
73
        slave> /usr/local/sbin/drizzled \
 
74
                        --plugin-add=slave \
 
75
                        --slave.config-file=/usr/local/etc//slave.cfg \
 
76
                        --pid-file=/var/run/drizzled/drizzled.pid \
 
77
                        --drizzle-protocol.bind-address=0.0.0.0 \
 
78
                        --mysql-protocol.bind-address=0.0.0.0 \
 
79
                        --daemon
 
80
 
 
81
Similar to the Master setup, there are a number of options that can be selected. Please see the Plugin Documentation for the relevent options.
29
82
 
30
83
These options tell the server to load the slave plugin, and then tell the slave plugin where to find the slave host configuration file. This configuration file has options to specify the master host and a few options to control how the slave operates. You can read more about the available configuration options in the replication slave plugin documentation. Below is a simple example: ::
31
84
 
32
 
        master-host = dino
33
 
        master-port = 3306
 
85
        master-host = master.location.com
 
86
        master-port = 4427
 
87
 
 
88
Some options that can be set other than default, but are otherwise not necessary, are: 
 
89
 
34
90
        master-user = dino_slave
35
91
        master-pass = my_password
36
92
        io-thread-sleep = 10
69
125
 
70
126
        slave> sbin/drizzled --datadir=$PWD/var \
71
127
                                    --plugin-add=slave \
72
 
                                    --slave.config-file=/tmp/slave.cfg \
 
128
                                    --slave.config-file=/user/local/etc/slave.cfg \
73
129
                                    --slave.max-commit-id=33426 &
74
130
 
75
131