SlideShare a Scribd company logo
1 of 91
Download to read offline
MySQL Sandbox 3.0
 Installing and testing MySQL servers
              effortlessly

 http://launchpad.net/mysql-sandbox




                                              Giuseppe Maxia
                                             MySQL Community


        This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License.
Overview
 Not an official Sun/MySQL product
 GPL
 installs from a tarball in a few seconds
 to install side servers, not the main instance
 creates a separated environment
         data directory
     


         port
     


         socket
     


   groups of related or unrelated servers
 


http://launchpad.net/mysql-sandbox/
System requirements
 Unix like operating system
         Linux
         Mac OS X
         Solaris
         Free BSD
 MySQL binary tarball
 MySQL Sandbox (current version 2.0.99a)
 Perl
 Bash shell
explaining the sandbox is like
            boxing
explaining the sandbox is like
            boxing
explaining the sandbox is like
            boxing
explaining the sandbox is like
              boxing




explaining takes longer than delivering
Overview




                            data directory
data directory

                            port
port

                            socket
socket
Overview
                    same data
                    directory?




/usr/local/mysql/data            /usr/local/mysql/data



                data corruption
Overview
                      same
                   data port or
                     socket?



3306                              3306

 /tmp/mysql.sock                   /tmp/mysql.sock


               does not start
the hard way
1.unpack the tarball
2.ensure that it goes to a separate directory
3.create the database tables
4.create a .cnf file with separate
  • port
  • data directory                   error prone
  • socket
5.launch mysqld_safe manually
6.launch mysql with options
Why tar.gz?
      Why not .rpm/.deb/.pgk?
  • it would work
  • but only in their specific environments
The sandbox aims at being standard across
          operating systems.

It works the same way on Linux, Mac OSX,
OpenSolaris, FreeBSD, and probably many
                   more
MySQL Sandbox               VERSION




 $SANDBOX_HOME/msb_VERSION/data

 VERSION

  /tmp/mysql_VERSION.sock
MySQL Sandbox             5.1.32




  $SANDBOX_HOME/msb_5_1_32/data

   5132

   /tmp/mysql_5132.sock
MySQL Sandbox             6.0.6




  $SANDBOX_HOME/msb_6.0.6/data

   6006

   /tmp/mysql_6006.sock
MySQL Sandbox
                  single sandbox
                    commands

  start     use
   stop
  clear
send_kill
MySQL Sandbox   multiple sandbox
                  commands

                One sandbox to
                 rule them all
                       m   n1
  start_all
                      s1   n2
   stop_all
                      s2   n3
  clear_all
send_kill_all
    use_all
The easy way - installation

# as root
$ cpan
cpan> install MySQL::Sandbox
Installing the sandbox as
           unprivileged user
# download the sandbox
# http://launchpad.net/mysql-sandbox/
$ tar -xzf MySQL-Sandbox-x.x.x.tar.gz
$ cd MySQL-Sandbox-x.x.x/
$ perl Makefile.PL 
   PREFIX=$HOME/usr/local
$ make
$ make test
$ make install

# change $PERL5LIB and $PATH
The easy way - single sandbox

$ make_sandbox 
    /path/mysql-OS-5.1.26.tar.gz

# that's it!
The easy way - replication
$ make_replication_sandbox 
    /path/mysql-OS-5.1.26.tar.gz

# that's it!
The easy way - circular
           replication
$ make_replication_sandbox 
    --circular=5 
    /path/mysql-OS-5.1.26.tar.gz

# that's it!
The easy way - multiple servers
$ make_multiple_sandbox 
    /path/mysql-OS-5.1.26.tar.gz

# that's it!
The even easier way -
        $SANDBOX_BINARY
# default SANDBOX_BINARY=$HOME/opt/mysql
$ export SANDBOX_BINARY=$HOME/mybin
$ ls $SANDBOX_BINARY
  5.0.64 5.0.66 5.0.67 5.1.20
  5.1.23 5.1.24 5.1.25 5.1.26
  5.1.28 5.1.29 6.0.5 6.0.6

$ make_sandbox 5.1.29

# that's it!
multiple servers - different
             versions
$ make_multiple_custom_sandbox 
    5.0.67 5.1.26 6.0.6

# that's it!
fine tuning
$ make_sandbox 
    /path/mysql-OS-5.1.26.tar.gz 
    [option] [option] [option]
pick your size
$ make_sandbox 
    /path/mysql-OS-5.1.26.tar.gz 
    --my_file={small|medium|large|huge}
fine tuning easily
$ make_sandbox 
    /path/mysql-OS-5.1.26.tar.gz 
    --interactive
fine tuning easily

Enter the values for each option
* To leave the interactive choice and accept default
  values for the remaining options, enter 'default'
* To go to the previous item, enter 'back'
* To quit the installation without any action, enter
  'quit'
------------------------------------------
home_directory
   The home directory. (default: $HOME/sandboxes
   (/Users/gmax/sandboxes))
Your choice: (current value [/Users/gmax/sandboxes]) _
hands on
Using the sandbox

./start
starts the server
creates a .pid file in the data directory
creates a socket file in /tmp
if a .pid file exists, it exits immediately
Using the sandbox

./stop
stops the server
if no .pid file exists, it exits immediately
Using the sandbox

./send_kill
stops the server, using
kill -TERM pid#
if the server is unresponsive, uses
kill -KILL pid#
Using the sandbox

./clear
stops the server (by calling the stop script)
removes all files in the data directory
empties the test database
Using the sandbox

    ./use
    starts the mysql client
    uses the credentials in the my_sandbox.cnf
    default username and password:
    msandbox/msandbox



    root password:
    msandbox

Using the sandbox

    ./my {sqldump|sqlbinlog|sqladmin}
    starts a mysql command line tool
    uses the credentials in the my_sandbox.cnf


    it's a shortcut to call the tool from the right



    version with the proper options
using mysql clients
$ ./my sqlbinlog 
   ./data/mysql-bin.000001 |less

$ ./my sqldump dbname > dumpname

$ ./my sqladmin extended-status
# no username or password needed!
Using the replication sandbox
  ./start_all
 starts the master and all the slaves
  ./stop_all
 stops all the slaves and then the master
  ./send_kill_all
 kills all the slaves and then the master
  ./clear_all
 clears all the slaves and then the master
  ./use_all quot;commandquot;
 executes quot;commandquot; for all nodes
Using the replication sandbox

 ./m
 uses the master
 ./s1
 uses the first slave

 ./s2 [s3, s4 ... ]
 uses the Nth slave
Using the multi-nodes sandbox
 ./start_all
 starts all the nodes
 ./stop_all
 stops all the nodes
 ./send_kill_all
 kills all the nodes
 ./clear_all
 clears all the nodes
 ./use_all quot;commandquot;
 executes quot;commandquot; for all nodes
Using the multi-node sandbox

 ./n1
 uses the first node

 ./n2 [n3, n4 ... ]
 uses the Nth node
Using the $SANDBOX_HOME directory
 the master sandbox that rules them all
  ./start_all
 starts all the sandboxes
 ./stop_all
 stops all the sandboxes

 ./clear_all
 clear all the sandboxes
 ./use_all      quot;SQL statementquot;
 passes a SQL statement to all
  servers in all sandboxes
a crowded host
sandbox
 5.0.67


                      7 servers
replication
 replication
  replication
  5.1.26
   5.1.26
    5.0.67


independent
 independent
  independent
    5.1.26
     5.1.26
      5.0.67
a differently crowded host
sandbox
 5.0.67

                7 servers
replication
 replication
  replication
  5.1.26
   5.1.26
    5.0.67
                              independent
                                 5.0.67
                    independent     independent
                        6.0.6          5.1.26
a more crowded host
sandbox                   sandbox
 5.1.26                     6.0.6


                          replication
replication                replication
 replication
                  14        replication
  replication               5.1.26
  5.1.26                     5.1.26
   5.1.26                      6.0.6
    5.1.26
                servers
                          independent
independent                independent
 independent                independent
  independent                 5.1.26
    5.1.26                     5.1.26
     5.1.26                     6.0.6
      5.1.26
an even more crowded host
                                 sandbox
sandbox         sandbox
                                   6.0.6
 5.0.67          5.1.26


                                 replication
replication     replication       replication
 replication     replication       replication
  replication                      5.1.26
                  replication
  5.1.26          5.1.26            5.1.26
   5.1.26          5.1.26             6.0.6
    5.0.67          5.1.26

                                 independent
independent     independent       independent
 independent     independent       independent
  independent                        5.1.26
                  independent
    5.1.26          5.1.26            5.1.26
     5.1.26          5.1.26            6.0.6
      5.0.67          5.1.26

                                21
DEMO TIME
Installing a single one
$ make_sandbox 5.1.29
Executing ./low_level_make_sandbox --basedir=/Users/gmax/opt/mysql/5.1.29 
          --sandbox_directory=msb_5_1_29 
          --install_version=5.1 
          --sandbox_port=5129 
          --no_ver_after_name 
          --my_clause=log-error=msandbox.err
    The MySQL Sandbox, version 2.0.12 16-Oct-2008
    (C) 2006,2007,2008 Giuseppe Maxia, Sun Microsystems, Database Group
installing with the following parameters:
upper_directory                 = /Users/gmax/sandboxes
sandbox_directory               = msb_5_1_29
sandbox_port                    = 5129
datadir_from                    = script
install_version                 = 5.1
basedir                         = /Users/gmax/opt/mysql/5.1.29
operating_system_user           = gmax
db_user                         = msandbox
db_password                     = msandbox
my_clause                       = log-error=msandbox.err
prompt_prefix                   = mysql
prompt_body                     = [h] {u} (d) > '
do you agree? ([Y],n)
loading grants
.. sandbox server started
----------------------------------------
Your sandbox server was installed in /Users/gmax/sandboxes/msb_5_1_29
Using a single one
$ cd $HOME/sandboxes/msb_5_1_29
$ ./use

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.1.29-rc MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the
buffer.

mysql [localhost] {msandbox} ((none)) >
Installing a replication sandbox
$ make_replication_sandbox 5.1.29
installing and starting master
installing slave 1
installing slave 2
starting slave 1
.. sandbox server started
starting slave 2
.. sandbox server started
initializing slave 1
initializing slave 2
replication directory installed on
  /Users/gmax/sandboxes/rsandbox_5_1_29
using a replication sandbox
$ cd $HOME/sandboxes/rsandbox_5_1_29
# m = master

$ ./m test
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 4
Server version: 5.1.29-rc-log MySQL Community Server (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

master [localhost] {msandbox} (test) > create table t1 (i
int);
Query OK, 0 rows affected (0.08 sec)
using a replication sandbox
# s1 is slave1

$ ./s1 test
slave1 [localhost] {msandbox} (test) > show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
+----------------+
using a replication sandbox
# checking the slaves

$ ./check_slaves
slave # 1
             Slave_IO_Running:   Yes
            Slave_SQL_Running:   Yes
slave # 2
             Slave_IO_Running:   Yes
            Slave_SQL_Running:   Yes
using a replication sandbox
# sending commands to all nodes

$ ./use all quot;SELECT @@server_idquot;
# master
@@server_id
1
# server: 1:
@@server_id
101
# server: 2:
@@server_id
102
Example: breaking replication
# leveraging command line scripts
$ ./m -e 'create table test.t2 (i int primary key)'
$ ./s1 -e 'insert into test.t2 values (1)'
$ ./m -e 'insert into test.t2 values (1)'
$ ./check_slaves
slave # 1
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
slave # 2
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

$ ./s1 -e 'show slave statusG' |grep Last_Error
Last_Error: Error 'Duplicate entry '1' for key 'PRIMARY''
 on query. Default database: ''. Query: '
Installing circular replication
$ make_replication_sandbox --circular=4 5.1.34
installing node 1
installing node 2
installing node 3
installing node 4
# server: 1:
# server: 2:
# server: 3:
# server: 4:
Circular replication activated
group directory installed on
  /Users/gmax/sandboxes/rcsandbox_5_1_34
using circular replication
$ cd $HOME/sandboxes/rcsandbox_5_1_34
$   ./n1 -e 'create table test.t1 (i int)'
$   ./n3 -e 'insert into test.t1 values (3)'
$   ./use_all 'select * from test.t1'
#   server: 1:
i
3
#   server: 2:
i
3
#   server: 3:
i
3
#   server: 4:
i
3
Easy testing conditions (1)
$ cd $HOME/sandboxes/msb_5_1_35
$ ./use -e 'show variables like
quot;key_buffer_sizequot;'
+-----------------+---------+
| Variable_name    | Value  |
+-----------------+---------+
| key_buffer_size | 8384512 |
+-----------------+---------+

# we need to increase this one
Easy testing conditions (2)
$ ./restart --key_buffer=20M

$ ./use -e 'show variables like
quot;key_buffer_sizequot;'
+-----------------+-----------+
| Variable_name    | Value    |
+-----------------+-----------+
| key_buffer_size | 209715200 |
+-----------------+-----------+

# as easy as saying it!
Testing same version in different
            conditions
$ make_multiple_sandbox 5.1.34 
  --group_directory=unpartitioned 
  --base_port=5500 --check_base_port

$ make_multiple_sandbox 5.1.34 
  --group_directory=partitioned 
  --how_many_nodes=4 
  --base_port=6500 --check_base_port
Testing same version in different
           conditions
$SANDBOX_HOME/unpartitioned
|
+-- node1 MyISAM
|
+-- node2 InnoDB
|
+-- node3 Archive
Testing same version in different
           conditions
$SANDBOX_HOME/partitioned
|
+-- node1 MyISAM by month
|
+-- node2 InnoDB by month
|
+-- node3 InnoDB file per table by month
|
+-- node4 Archive by month
Running tests
cd $SANDBOX_HOME/unpartitioned

./stop_all
RESULTS=unpartitioned_results.txt
date > $RESULTS
for SB in 1 2 3
do
   ./node$SB/start
   time ./n$SB < test.sql >> $RESULTS
   ./node$DB/stop
done
# more on tests later on. Stay tuned
Latest news


3.0
MySQL Sandbox 3.0
 Released as Perl package - now on CPAN
 Added the sbtool
 Port detection
 Install from a source directory
 Allow the test suite to load and execute a
  customized test
 Improved documentation
Port detection
$ make_sandbox 5.1.33 --check_port
# port 5133 under msb_5_1_33

$ make_sandbox 5.1.33 --check_port
# port 5134 under msb_5_1_33_a

$ make_sandbox 5.1.33 --check_port
# port 5135 under msb_5_1_33_b
# ... and so on
Install from source directory
# compile mysql

$ ./configure && make

# install a sandbox

$ make_sandbox_from_source $PWD single
sbtool - the sandbox helper
 Server clone
 Server move
 Change port
 Sandbox deletion
 List ports
 Find a port range
 Multi-level replication
 Convert a sandbox from temporary to permanent
Cloning a sandbox
# install two sandboxes
$ make_sandbox 5.1.33
$ make_sandbox 5.1.34

# Load and process data into msb_5_1_33
# ...
# ...
# Clone data into the second sandbox
sbtool -o copy 
   -s $HOME/sandboxes/msb_5_1_33 
   -d $HOME/sandboxes/msb_5_1_34
Moving a sandbox
# install a sandbox
$ make_sandbox 5.1.33

# move it
sbtool -o move 
   -s $HOME/sandboxes/msb_5_1_33 
   -d /some/path/a_fancy_name
Powerful new testing (1)
# write a test script 'check_single_server.sb'

shell:
command = make_sandbox 5.1.30 --no_confirm
expected = sandbox server started
msg      = sandbox creation

sql:
path    = $SANDBOX_HOME/msb_5_1_30
query   = select version()
expected = 5.1.30
msg      = checking version
Powerful new testing (2)
# write a test script 'check_single_server.sb'
# (continues)

shell:
command = $SANDBOX_HOME/msb_5_1_30/stop
expected = OK
msg      = stopped
Powerful new testing (3)
# Run the test



$ test_sandbox --tests=user 
  --user_test=t/check_single_server.sb
** currently there are (0) mysqld processes
and (0) mysqld_safe processes
ok 1 - sandbox creation
ok 2 - checking version
ok 3 - stopped
*** Executed 3 tests. Passed 3 (100.00%).
Failed 0 ( 0.00%)
Powerful new testing (4)
# Run the test is simple TAP mode

$ export TAP_MODE=1
$ test_sandbox --tests=user 
  --user_test=t/check_single_server.sb
ok 1 - sandbox creation
ok 2 - checking version
ok 3 - stopped

# for more info on the TAP format:
$ perldoc Test::Harness::TAP
Powerful new testing (5)
# Run the test inside a test suite

prove -v t/06_test_user_defined.t
t/06_test_user_defined....
1..3
ok 1 - sandbox creation
ok 2 - checking version
ok 3 - stopped
ok
All tests successful.
Files=1, Tests=3, 8 wallclock secs ( 0.50
cusr + 0.56 csys = 1.06 CPU)
Create a replication tree
# 1 create a multiple sandbox

$ make_multiple_sandbox 
  --how_many_nodes=12 5.0.77

# set the roles

$    sbtool -o tree 
    --tree_dir=~/sandboxes/multi_msb_5_0_77 
     --master_node=1 
     --mid_nodes='2 3 4' 
     --leaf_nodes='5 6|7 8 9|10 11 12'
Using a replication tree (1)
$ cd ~/sandboxes/multi_msb_5_0_77

$ ./n1 -e 'show slave hosts'
+-----------+-------+-------+-------------------+-----------+
| Server_id | Host | Port | Rpl_recovery_rank | Master_id |
+-----------+-------+-------+-------------------+-----------+
|       102 | node2 | 19778 |                 0|        101 |
|       104 | node4 | 19778 |                 0|        101 |
|       103 | node3 | 19778 |                 0|        101 |
+-----------+-------+-------+-------------------+-----------+
Using a replication tree (2)
$ ./n2 -e 'show slave hosts'

+-----------+-------+-------+-------------------+-----------+
| Server_id | Host | Port | Rpl_recovery_rank | Master_id |
+-----------+-------+-------+-------------------+-----------+
|       105 | node5 | 19779 |                 0|        102 |
|       106 | node6 | 19779 |                 0|        102 |
+-----------+-------+-------+-------------------+-----------+
Using a replication tree (3)
$ ./n1 -e 'create table test.t1 (i int)'
$./n1 -e 'insert into test.t1
       values (@@server_id)'
Using a replication tree (4)
$ ./use_all quot;select * from test.t1quot;
# server:   1:
i
101
# server:   2:
i
102
# server:   3:
i
103
# server:   4:
i
104
# server:   5:
i
105
checking ports
$ sbtool -o ports
 5078 0
 5130 0
 5131 0
 5132 0
 5133 1
 5135 0
 5333 0
 5400 0

$ sbtool -o ports --only_used
 5133 1
checking ranges
$ sbtool -o range --min_range=5130
 5136 - 5146
Preserving a sandbox
$ sbtool -o preserve 
   -s $HOME/sandboxes/msb_5_1_33/
sandbox at <$HOME/sandboxes/msb_5_1_33/> is
now permanent

$ $HOME/sandboxes/msb_5_1_33/clear
This sandbox is permanent.
The 'clear' command has been disabled.
The contents of the old 'clear' command are in
the 'no_clear' file
un-preserving a sandbox
$ sbtool -o unpreserve 
   -s $HOME/sandboxes/msb_5_1_33/
sandbox at <$HOME/sandboxes/msb_5_1_33/> is
now NOT PERMANENT

$ $HOME/sandboxes/msb_5_1_33/clear

# no error
deleting a sandbox
$ sbtool -o delete 
   -s $HOME/sandboxes/msb_5_1_35
sandbox at <$HOME/sandboxes/msb_5_1_35> has
been removed
Roadmap

 Install on remote servers (in design)
 create a failover script in replication to promote
  a slave to master (in design)
 GUI
 flexible topology read-and-install
Participate!
Participate!
Participate!
Participate!
THANKS
                                                                   Let's talk!




This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License. To view a copy of this license, visit http://
creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

More Related Content

What's hot

MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014MariaDB Corporation
 
3 周彦偉-隨需而變 我所經歷的my sql架構變遷﹣周彥偉﹣acmug@2015.12台北
3 周彦偉-隨需而變 我所經歷的my sql架構變遷﹣周彥偉﹣acmug@2015.12台北3 周彦偉-隨需而變 我所經歷的my sql架構變遷﹣周彥偉﹣acmug@2015.12台北
3 周彦偉-隨需而變 我所經歷的my sql架構變遷﹣周彥偉﹣acmug@2015.12台北Ivan Tu
 
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?Sveta Smirnova
 
Galera cluster for MySQL - Introduction Slides
Galera cluster for MySQL - Introduction SlidesGalera cluster for MySQL - Introduction Slides
Galera cluster for MySQL - Introduction SlidesSeveralnines
 
M|18 Under the Hood: Galera Cluster
M|18 Under the Hood: Galera ClusterM|18 Under the Hood: Galera Cluster
M|18 Under the Hood: Galera ClusterMariaDB plc
 
M|18 Writing Stored Procedures in the Real World
M|18 Writing Stored Procedures in the Real WorldM|18 Writing Stored Procedures in the Real World
M|18 Writing Stored Procedures in the Real WorldMariaDB plc
 
Cinder Live Migration and Replication - OpenStack Summit Austin
Cinder Live Migration and Replication - OpenStack Summit AustinCinder Live Migration and Replication - OpenStack Summit Austin
Cinder Live Migration and Replication - OpenStack Summit AustinEd Balduf
 
Yahoo: Experiences with MySQL GTID and Multi Threaded Replication
Yahoo: Experiences with MySQL GTID and Multi Threaded ReplicationYahoo: Experiences with MySQL GTID and Multi Threaded Replication
Yahoo: Experiences with MySQL GTID and Multi Threaded ReplicationYashada Jadhav
 
The MySQL High Availability Landscape and where Galera Cluster fits in
The MySQL High Availability Landscape and where Galera Cluster fits inThe MySQL High Availability Landscape and where Galera Cluster fits in
The MySQL High Availability Landscape and where Galera Cluster fits inSakari Keskitalo
 
MySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated EnvironmentMySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated EnvironmentJean-François Gagné
 
The consequences of sync_binlog != 1
The consequences of sync_binlog != 1The consequences of sync_binlog != 1
The consequences of sync_binlog != 1Jean-François Gagné
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorJean-François Gagné
 
Demystifying MySQL Replication Crash Safety
Demystifying MySQL Replication Crash SafetyDemystifying MySQL Replication Crash Safety
Demystifying MySQL Replication Crash SafetyJean-François Gagné
 
ceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-shortceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-shortNAVER D2
 
MongoDB Engines: Demystified
MongoDB Engines: DemystifiedMongoDB Engines: Demystified
MongoDB Engines: DemystifiedSveta Smirnova
 
MySQL replication best practices 105-232-931
MySQL replication best practices 105-232-931MySQL replication best practices 105-232-931
MySQL replication best practices 105-232-931Baruch Osoveskiy
 
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...Codership Oy - Creators of Galera Cluster
 

What's hot (20)

MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
MariaDB Enterprise & MariaDB Enterprise Cluster - MariaDB Webinar July 2014
 
3 周彦偉-隨需而變 我所經歷的my sql架構變遷﹣周彥偉﹣acmug@2015.12台北
3 周彦偉-隨需而變 我所經歷的my sql架構變遷﹣周彥偉﹣acmug@2015.12台北3 周彦偉-隨需而變 我所經歷的my sql架構變遷﹣周彥偉﹣acmug@2015.12台北
3 周彦偉-隨需而變 我所經歷的my sql架構變遷﹣周彥偉﹣acmug@2015.12台北
 
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
MySQL Storage Engines - which do you use? TokuDB? MyRocks? InnoDB?
 
Galera cluster for MySQL - Introduction Slides
Galera cluster for MySQL - Introduction SlidesGalera cluster for MySQL - Introduction Slides
Galera cluster for MySQL - Introduction Slides
 
M|18 Under the Hood: Galera Cluster
M|18 Under the Hood: Galera ClusterM|18 Under the Hood: Galera Cluster
M|18 Under the Hood: Galera Cluster
 
How to Monitor MySQL
How to Monitor MySQLHow to Monitor MySQL
How to Monitor MySQL
 
M|18 Writing Stored Procedures in the Real World
M|18 Writing Stored Procedures in the Real WorldM|18 Writing Stored Procedures in the Real World
M|18 Writing Stored Procedures in the Real World
 
Cinder Live Migration and Replication - OpenStack Summit Austin
Cinder Live Migration and Replication - OpenStack Summit AustinCinder Live Migration and Replication - OpenStack Summit Austin
Cinder Live Migration and Replication - OpenStack Summit Austin
 
Yahoo: Experiences with MySQL GTID and Multi Threaded Replication
Yahoo: Experiences with MySQL GTID and Multi Threaded ReplicationYahoo: Experiences with MySQL GTID and Multi Threaded Replication
Yahoo: Experiences with MySQL GTID and Multi Threaded Replication
 
The MySQL High Availability Landscape and where Galera Cluster fits in
The MySQL High Availability Landscape and where Galera Cluster fits inThe MySQL High Availability Landscape and where Galera Cluster fits in
The MySQL High Availability Landscape and where Galera Cluster fits in
 
MySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated EnvironmentMySQL Scalability and Reliability for Replicated Environment
MySQL Scalability and Reliability for Replicated Environment
 
The consequences of sync_binlog != 1
The consequences of sync_binlog != 1The consequences of sync_binlog != 1
The consequences of sync_binlog != 1
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
 
Demystifying MySQL Replication Crash Safety
Demystifying MySQL Replication Crash SafetyDemystifying MySQL Replication Crash Safety
Demystifying MySQL Replication Crash Safety
 
Galera webinar migration to galera cluster from my sql async replication
Galera webinar migration to galera cluster from my sql async replicationGalera webinar migration to galera cluster from my sql async replication
Galera webinar migration to galera cluster from my sql async replication
 
ceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-shortceph optimization on ssd ilsoo byun-short
ceph optimization on ssd ilsoo byun-short
 
Introducing Galera 3.0
Introducing Galera 3.0Introducing Galera 3.0
Introducing Galera 3.0
 
MongoDB Engines: Demystified
MongoDB Engines: DemystifiedMongoDB Engines: Demystified
MongoDB Engines: Demystified
 
MySQL replication best practices 105-232-931
MySQL replication best practices 105-232-931MySQL replication best practices 105-232-931
MySQL replication best practices 105-232-931
 
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
Choosing between Codership's MySQL Galera, MariaDB Galera Cluster and Percona...
 

Viewers also liked

db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアShinya Sugiyama
 
Mysql Introduction
Mysql IntroductionMysql Introduction
Mysql Introductionhemant meena
 
Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQLTed Wennmark
 
MySQL clients
MySQL clientsMySQL clients
MySQL clientsyoku0825
 
An introduction to MySQL
An introduction to MySQLAn introduction to MySQL
An introduction to MySQLCreditas
 
Hortonworks Sandbox Startup Guide for VirtualBox
Hortonworks Sandbox Startup Guide for VirtualBoxHortonworks Sandbox Startup Guide for VirtualBox
Hortonworks Sandbox Startup Guide for VirtualBoxHortonworks
 
The Sandbox Manifesto
The Sandbox ManifestoThe Sandbox Manifesto
The Sandbox ManifestoAngela Maiers
 
BITS: Introduction to relational databases and MySQL - SQL
BITS: Introduction to relational databases and MySQL - SQLBITS: Introduction to relational databases and MySQL - SQL
BITS: Introduction to relational databases and MySQL - SQLBITS
 
From Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release ManagementFrom Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release ManagementSalesforce Developers
 

Viewers also liked (20)

db tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストアdb tech showcase2016 - MySQLドキュメントストア
db tech showcase2016 - MySQLドキュメントストア
 
PPT
PPTPPT
PPT
 
Mysql1
Mysql1Mysql1
Mysql1
 
Plsql
PlsqlPlsql
Plsql
 
Download It
Download ItDownload It
Download It
 
Mysql
MysqlMysql
Mysql
 
Mysql Introduction
Mysql IntroductionMysql Introduction
Mysql Introduction
 
Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQL
 
MySQL clients
MySQL clientsMySQL clients
MySQL clients
 
MySQL lecture
MySQL lectureMySQL lecture
MySQL lecture
 
Mysql database
Mysql databaseMysql database
Mysql database
 
An introduction to MySQL
An introduction to MySQLAn introduction to MySQL
An introduction to MySQL
 
Hortonworks Sandbox Startup Guide for VirtualBox
Hortonworks Sandbox Startup Guide for VirtualBoxHortonworks Sandbox Startup Guide for VirtualBox
Hortonworks Sandbox Startup Guide for VirtualBox
 
The Sandbox Manifesto
The Sandbox ManifestoThe Sandbox Manifesto
The Sandbox Manifesto
 
BITS: Introduction to relational databases and MySQL - SQL
BITS: Introduction to relational databases and MySQL - SQLBITS: Introduction to relational databases and MySQL - SQL
BITS: Introduction to relational databases and MySQL - SQL
 
Mysql an introduction
Mysql an introductionMysql an introduction
Mysql an introduction
 
From Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release ManagementFrom Sandbox To Production: An Introduction to Salesforce Release Management
From Sandbox To Production: An Introduction to Salesforce Release Management
 
MySQL Introduction
MySQL IntroductionMySQL Introduction
MySQL Introduction
 
MySQL
MySQLMySQL
MySQL
 
Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQL
 

Similar to MySQL Sandbox 3

Test complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployerTest complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployerGiuseppe Maxia
 
Dbdeployer, the universal installer
Dbdeployer, the universal installerDbdeployer, the universal installer
Dbdeployer, the universal installerGiuseppe Maxia
 
OpenStack Tokyo Meeup - Gluster Storage Day
OpenStack Tokyo Meeup - Gluster Storage DayOpenStack Tokyo Meeup - Gluster Storage Day
OpenStack Tokyo Meeup - Gluster Storage DayDan Radez
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Carlos Sanchez
 
Build MySQL virtual enviroment
Build MySQL virtual enviromentBuild MySQL virtual enviroment
Build MySQL virtual enviromentTaras Vasylyuk
 
Vagrant for real
Vagrant for realVagrant for real
Vagrant for realCodemotion
 
Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Michele Orselli
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierCarlos Sanchez
 
Chef Workshop: Setup Environment with Chef,Vagrant, and Berkshelf
Chef Workshop: Setup Environment with Chef,Vagrant, and BerkshelfChef Workshop: Setup Environment with Chef,Vagrant, and Berkshelf
Chef Workshop: Setup Environment with Chef,Vagrant, and BerkshelfJun Sakata
 
Spider Setup with AWS/sandbox
Spider Setup with AWS/sandboxSpider Setup with AWS/sandbox
Spider Setup with AWS/sandboxI Goo Lee
 
MySQL Spider Architecture
MySQL Spider ArchitectureMySQL Spider Architecture
MySQL Spider ArchitectureI Goo Lee
 
MySQL for Beginners - part 1
MySQL for Beginners - part 1MySQL for Beginners - part 1
MySQL for Beginners - part 1Ivan Zoratti
 
My two cents about Mysql backup
My two cents about Mysql backupMy two cents about Mysql backup
My two cents about Mysql backupAndrejs Vorobjovs
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefMatt Ray
 
Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Michele Orselli
 

Similar to MySQL Sandbox 3 (20)

Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
Test complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployerTest complex database systems in your laptop with dbdeployer
Test complex database systems in your laptop with dbdeployer
 
Dbdeployer, the universal installer
Dbdeployer, the universal installerDbdeployer, the universal installer
Dbdeployer, the universal installer
 
OpenStack Tokyo Meeup - Gluster Storage Day
OpenStack Tokyo Meeup - Gluster Storage DayOpenStack Tokyo Meeup - Gluster Storage Day
OpenStack Tokyo Meeup - Gluster Storage Day
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
 
Network Manual
Network ManualNetwork Manual
Network Manual
 
Build MySQL virtual enviroment
Build MySQL virtual enviromentBuild MySQL virtual enviroment
Build MySQL virtual enviroment
 
Capistrano
CapistranoCapistrano
Capistrano
 
Vagrant for real
Vagrant for realVagrant for real
Vagrant for real
 
Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)Vagrant for real (codemotion rome 2016)
Vagrant for real (codemotion rome 2016)
 
Continuous Delivery: The Next Frontier
Continuous Delivery: The Next FrontierContinuous Delivery: The Next Frontier
Continuous Delivery: The Next Frontier
 
Chef Workshop: Setup Environment with Chef,Vagrant, and Berkshelf
Chef Workshop: Setup Environment with Chef,Vagrant, and BerkshelfChef Workshop: Setup Environment with Chef,Vagrant, and Berkshelf
Chef Workshop: Setup Environment with Chef,Vagrant, and Berkshelf
 
Spider Setup with AWS/sandbox
Spider Setup with AWS/sandboxSpider Setup with AWS/sandbox
Spider Setup with AWS/sandbox
 
MySQL Spider Architecture
MySQL Spider ArchitectureMySQL Spider Architecture
MySQL Spider Architecture
 
Intro to vagrant
Intro to vagrantIntro to vagrant
Intro to vagrant
 
MySQL for Beginners - part 1
MySQL for Beginners - part 1MySQL for Beginners - part 1
MySQL for Beginners - part 1
 
My two cents about Mysql backup
My two cents about Mysql backupMy two cents about Mysql backup
My two cents about Mysql backup
 
Mysql
Mysql Mysql
Mysql
 
Bare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and ChefBare Metal to OpenStack with Razor and Chef
Bare Metal to OpenStack with Razor and Chef
 
Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))Vagrant for real codemotion (moar tips! ;-))
Vagrant for real codemotion (moar tips! ;-))
 

More from Giuseppe Maxia

MySQL NDB 8.0 clusters in your laptop with dbdeployer
MySQL NDB 8.0 clusters in your laptop with dbdeployerMySQL NDB 8.0 clusters in your laptop with dbdeployer
MySQL NDB 8.0 clusters in your laptop with dbdeployerGiuseppe Maxia
 
A quick tour of Mysql 8 roles
A quick tour of Mysql 8 rolesA quick tour of Mysql 8 roles
A quick tour of Mysql 8 rolesGiuseppe Maxia
 
Synchronise your data between MySQL and MongoDB
Synchronise your data between MySQL and MongoDBSynchronise your data between MySQL and MongoDB
Synchronise your data between MySQL and MongoDBGiuseppe Maxia
 
Juggle your data with Tungsten Replicator
Juggle your data with Tungsten ReplicatorJuggle your data with Tungsten Replicator
Juggle your data with Tungsten ReplicatorGiuseppe Maxia
 
Tungsten Replicator tutorial
Tungsten Replicator tutorialTungsten Replicator tutorial
Tungsten Replicator tutorialGiuseppe Maxia
 
Preventing multi master conflicts with tungsten
Preventing multi master conflicts with tungstenPreventing multi master conflicts with tungsten
Preventing multi master conflicts with tungstenGiuseppe Maxia
 
MySQL high availability power and usability
MySQL high availability power and usabilityMySQL high availability power and usability
MySQL high availability power and usabilityGiuseppe Maxia
 
Solving MySQL replication problems with Tungsten
Solving MySQL replication problems with TungstenSolving MySQL replication problems with Tungsten
Solving MySQL replication problems with TungstenGiuseppe Maxia
 
State of the art of MySQL replication and clustering
State of the art of MySQL replication and clusteringState of the art of MySQL replication and clustering
State of the art of MySQL replication and clusteringGiuseppe Maxia
 
Testing mysql creatively in a sandbox
Testing mysql creatively in a sandboxTesting mysql creatively in a sandbox
Testing mysql creatively in a sandboxGiuseppe Maxia
 
Mysql 5.5 and 5.6 replication
Mysql 5.5 and 5.6 replicationMysql 5.5 and 5.6 replication
Mysql 5.5 and 5.6 replicationGiuseppe Maxia
 
Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012Giuseppe Maxia
 
Testing early mysql releases in a sandbox
Testing early mysql releases in a sandboxTesting early mysql releases in a sandbox
Testing early mysql releases in a sandboxGiuseppe Maxia
 

More from Giuseppe Maxia (20)

MySQL NDB 8.0 clusters in your laptop with dbdeployer
MySQL NDB 8.0 clusters in your laptop with dbdeployerMySQL NDB 8.0 clusters in your laptop with dbdeployer
MySQL NDB 8.0 clusters in your laptop with dbdeployer
 
Test like a_boss
Test like a_bossTest like a_boss
Test like a_boss
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
A quick tour of Mysql 8 roles
A quick tour of Mysql 8 rolesA quick tour of Mysql 8 roles
A quick tour of Mysql 8 roles
 
MySQL document_store
MySQL document_storeMySQL document_store
MySQL document_store
 
Replication skeptic
Replication skepticReplication skeptic
Replication skeptic
 
Synchronise your data between MySQL and MongoDB
Synchronise your data between MySQL and MongoDBSynchronise your data between MySQL and MongoDB
Synchronise your data between MySQL and MongoDB
 
Juggle your data with Tungsten Replicator
Juggle your data with Tungsten ReplicatorJuggle your data with Tungsten Replicator
Juggle your data with Tungsten Replicator
 
MySQL in your laptop
MySQL in your laptopMySQL in your laptop
MySQL in your laptop
 
Script it
Script itScript it
Script it
 
Tungsten Replicator tutorial
Tungsten Replicator tutorialTungsten Replicator tutorial
Tungsten Replicator tutorial
 
Preventing multi master conflicts with tungsten
Preventing multi master conflicts with tungstenPreventing multi master conflicts with tungsten
Preventing multi master conflicts with tungsten
 
MySQL high availability power and usability
MySQL high availability power and usabilityMySQL high availability power and usability
MySQL high availability power and usability
 
Solving MySQL replication problems with Tungsten
Solving MySQL replication problems with TungstenSolving MySQL replication problems with Tungsten
Solving MySQL replication problems with Tungsten
 
State of the art of MySQL replication and clustering
State of the art of MySQL replication and clusteringState of the art of MySQL replication and clustering
State of the art of MySQL replication and clustering
 
Testing mysql creatively in a sandbox
Testing mysql creatively in a sandboxTesting mysql creatively in a sandbox
Testing mysql creatively in a sandbox
 
Mysql 5.5 and 5.6 replication
Mysql 5.5 and 5.6 replicationMysql 5.5 and 5.6 replication
Mysql 5.5 and 5.6 replication
 
Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012
 
Replication 101
Replication 101Replication 101
Replication 101
 
Testing early mysql releases in a sandbox
Testing early mysql releases in a sandboxTesting early mysql releases in a sandbox
Testing early mysql releases in a sandbox
 

Recently uploaded

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 

MySQL Sandbox 3

  • 1. MySQL Sandbox 3.0 Installing and testing MySQL servers effortlessly http://launchpad.net/mysql-sandbox Giuseppe Maxia MySQL Community This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License.
  • 2. Overview  Not an official Sun/MySQL product  GPL  installs from a tarball in a few seconds  to install side servers, not the main instance  creates a separated environment data directory  port  socket  groups of related or unrelated servers  http://launchpad.net/mysql-sandbox/
  • 3. System requirements  Unix like operating system Linux Mac OS X Solaris Free BSD  MySQL binary tarball  MySQL Sandbox (current version 2.0.99a)  Perl  Bash shell
  • 4. explaining the sandbox is like boxing
  • 5. explaining the sandbox is like boxing
  • 6. explaining the sandbox is like boxing
  • 7. explaining the sandbox is like boxing explaining takes longer than delivering
  • 8. Overview data directory data directory port port socket socket
  • 9. Overview same data directory? /usr/local/mysql/data /usr/local/mysql/data data corruption
  • 10. Overview same data port or socket? 3306 3306 /tmp/mysql.sock /tmp/mysql.sock does not start
  • 11. the hard way 1.unpack the tarball 2.ensure that it goes to a separate directory 3.create the database tables 4.create a .cnf file with separate • port • data directory error prone • socket 5.launch mysqld_safe manually 6.launch mysql with options
  • 12. Why tar.gz? Why not .rpm/.deb/.pgk? • it would work • but only in their specific environments The sandbox aims at being standard across operating systems. It works the same way on Linux, Mac OSX, OpenSolaris, FreeBSD, and probably many more
  • 13. MySQL Sandbox VERSION $SANDBOX_HOME/msb_VERSION/data VERSION /tmp/mysql_VERSION.sock
  • 14. MySQL Sandbox 5.1.32 $SANDBOX_HOME/msb_5_1_32/data 5132 /tmp/mysql_5132.sock
  • 15. MySQL Sandbox 6.0.6 $SANDBOX_HOME/msb_6.0.6/data 6006 /tmp/mysql_6006.sock
  • 16. MySQL Sandbox single sandbox commands start use stop clear send_kill
  • 17. MySQL Sandbox multiple sandbox commands One sandbox to rule them all m n1 start_all s1 n2 stop_all s2 n3 clear_all send_kill_all use_all
  • 18. The easy way - installation # as root $ cpan cpan> install MySQL::Sandbox
  • 19. Installing the sandbox as unprivileged user # download the sandbox # http://launchpad.net/mysql-sandbox/ $ tar -xzf MySQL-Sandbox-x.x.x.tar.gz $ cd MySQL-Sandbox-x.x.x/ $ perl Makefile.PL PREFIX=$HOME/usr/local $ make $ make test $ make install # change $PERL5LIB and $PATH
  • 20. The easy way - single sandbox $ make_sandbox /path/mysql-OS-5.1.26.tar.gz # that's it!
  • 21. The easy way - replication $ make_replication_sandbox /path/mysql-OS-5.1.26.tar.gz # that's it!
  • 22. The easy way - circular replication $ make_replication_sandbox --circular=5 /path/mysql-OS-5.1.26.tar.gz # that's it!
  • 23. The easy way - multiple servers $ make_multiple_sandbox /path/mysql-OS-5.1.26.tar.gz # that's it!
  • 24. The even easier way - $SANDBOX_BINARY # default SANDBOX_BINARY=$HOME/opt/mysql $ export SANDBOX_BINARY=$HOME/mybin $ ls $SANDBOX_BINARY 5.0.64 5.0.66 5.0.67 5.1.20 5.1.23 5.1.24 5.1.25 5.1.26 5.1.28 5.1.29 6.0.5 6.0.6 $ make_sandbox 5.1.29 # that's it!
  • 25. multiple servers - different versions $ make_multiple_custom_sandbox 5.0.67 5.1.26 6.0.6 # that's it!
  • 26. fine tuning $ make_sandbox /path/mysql-OS-5.1.26.tar.gz [option] [option] [option]
  • 27. pick your size $ make_sandbox /path/mysql-OS-5.1.26.tar.gz --my_file={small|medium|large|huge}
  • 28. fine tuning easily $ make_sandbox /path/mysql-OS-5.1.26.tar.gz --interactive
  • 29. fine tuning easily Enter the values for each option * To leave the interactive choice and accept default values for the remaining options, enter 'default' * To go to the previous item, enter 'back' * To quit the installation without any action, enter 'quit' ------------------------------------------ home_directory The home directory. (default: $HOME/sandboxes (/Users/gmax/sandboxes)) Your choice: (current value [/Users/gmax/sandboxes]) _
  • 31. Using the sandbox ./start starts the server creates a .pid file in the data directory creates a socket file in /tmp if a .pid file exists, it exits immediately
  • 32. Using the sandbox ./stop stops the server if no .pid file exists, it exits immediately
  • 33. Using the sandbox ./send_kill stops the server, using kill -TERM pid# if the server is unresponsive, uses kill -KILL pid#
  • 34. Using the sandbox ./clear stops the server (by calling the stop script) removes all files in the data directory empties the test database
  • 35. Using the sandbox ./use starts the mysql client uses the credentials in the my_sandbox.cnf default username and password: msandbox/msandbox  root password: msandbox 
  • 36. Using the sandbox ./my {sqldump|sqlbinlog|sqladmin} starts a mysql command line tool uses the credentials in the my_sandbox.cnf it's a shortcut to call the tool from the right  version with the proper options
  • 37. using mysql clients $ ./my sqlbinlog ./data/mysql-bin.000001 |less $ ./my sqldump dbname > dumpname $ ./my sqladmin extended-status # no username or password needed!
  • 38. Using the replication sandbox ./start_all  starts the master and all the slaves ./stop_all  stops all the slaves and then the master ./send_kill_all  kills all the slaves and then the master ./clear_all  clears all the slaves and then the master ./use_all quot;commandquot;  executes quot;commandquot; for all nodes
  • 39. Using the replication sandbox ./m  uses the master ./s1  uses the first slave ./s2 [s3, s4 ... ]  uses the Nth slave
  • 40. Using the multi-nodes sandbox ./start_all  starts all the nodes ./stop_all  stops all the nodes ./send_kill_all  kills all the nodes ./clear_all  clears all the nodes ./use_all quot;commandquot;  executes quot;commandquot; for all nodes
  • 41. Using the multi-node sandbox ./n1  uses the first node ./n2 [n3, n4 ... ]  uses the Nth node
  • 42. Using the $SANDBOX_HOME directory the master sandbox that rules them all ./start_all  starts all the sandboxes ./stop_all  stops all the sandboxes ./clear_all  clear all the sandboxes ./use_all quot;SQL statementquot;  passes a SQL statement to all servers in all sandboxes
  • 43. a crowded host sandbox 5.0.67 7 servers replication replication replication 5.1.26 5.1.26 5.0.67 independent independent independent 5.1.26 5.1.26 5.0.67
  • 44. a differently crowded host sandbox 5.0.67 7 servers replication replication replication 5.1.26 5.1.26 5.0.67 independent 5.0.67 independent independent 6.0.6 5.1.26
  • 45. a more crowded host sandbox sandbox 5.1.26 6.0.6 replication replication replication replication 14 replication replication 5.1.26 5.1.26 5.1.26 5.1.26 6.0.6 5.1.26 servers independent independent independent independent independent independent 5.1.26 5.1.26 5.1.26 5.1.26 6.0.6 5.1.26
  • 46. an even more crowded host sandbox sandbox sandbox 6.0.6 5.0.67 5.1.26 replication replication replication replication replication replication replication replication 5.1.26 replication 5.1.26 5.1.26 5.1.26 5.1.26 5.1.26 6.0.6 5.0.67 5.1.26 independent independent independent independent independent independent independent independent 5.1.26 independent 5.1.26 5.1.26 5.1.26 5.1.26 5.1.26 6.0.6 5.0.67 5.1.26 21
  • 48. Installing a single one $ make_sandbox 5.1.29 Executing ./low_level_make_sandbox --basedir=/Users/gmax/opt/mysql/5.1.29 --sandbox_directory=msb_5_1_29 --install_version=5.1 --sandbox_port=5129 --no_ver_after_name --my_clause=log-error=msandbox.err The MySQL Sandbox, version 2.0.12 16-Oct-2008 (C) 2006,2007,2008 Giuseppe Maxia, Sun Microsystems, Database Group installing with the following parameters: upper_directory = /Users/gmax/sandboxes sandbox_directory = msb_5_1_29 sandbox_port = 5129 datadir_from = script install_version = 5.1 basedir = /Users/gmax/opt/mysql/5.1.29 operating_system_user = gmax db_user = msandbox db_password = msandbox my_clause = log-error=msandbox.err prompt_prefix = mysql prompt_body = [h] {u} (d) > ' do you agree? ([Y],n) loading grants .. sandbox server started ---------------------------------------- Your sandbox server was installed in /Users/gmax/sandboxes/msb_5_1_29
  • 49. Using a single one $ cd $HOME/sandboxes/msb_5_1_29 $ ./use Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3 Server version: 5.1.29-rc MySQL Community Server (GPL) Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql [localhost] {msandbox} ((none)) >
  • 50. Installing a replication sandbox $ make_replication_sandbox 5.1.29 installing and starting master installing slave 1 installing slave 2 starting slave 1 .. sandbox server started starting slave 2 .. sandbox server started initializing slave 1 initializing slave 2 replication directory installed on /Users/gmax/sandboxes/rsandbox_5_1_29
  • 51. using a replication sandbox $ cd $HOME/sandboxes/rsandbox_5_1_29 # m = master $ ./m test Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 4 Server version: 5.1.29-rc-log MySQL Community Server (GPL) Type 'help;' or 'h' for help. Type 'c' to clear the buffer. master [localhost] {msandbox} (test) > create table t1 (i int); Query OK, 0 rows affected (0.08 sec)
  • 52. using a replication sandbox # s1 is slave1 $ ./s1 test slave1 [localhost] {msandbox} (test) > show tables; +----------------+ | Tables_in_test | +----------------+ | t1 | +----------------+
  • 53. using a replication sandbox # checking the slaves $ ./check_slaves slave # 1 Slave_IO_Running: Yes Slave_SQL_Running: Yes slave # 2 Slave_IO_Running: Yes Slave_SQL_Running: Yes
  • 54. using a replication sandbox # sending commands to all nodes $ ./use all quot;SELECT @@server_idquot; # master @@server_id 1 # server: 1: @@server_id 101 # server: 2: @@server_id 102
  • 55. Example: breaking replication # leveraging command line scripts $ ./m -e 'create table test.t2 (i int primary key)' $ ./s1 -e 'insert into test.t2 values (1)' $ ./m -e 'insert into test.t2 values (1)' $ ./check_slaves slave # 1 Slave_IO_Running: Yes Slave_SQL_Running: No slave # 2 Slave_IO_Running: Yes Slave_SQL_Running: Yes $ ./s1 -e 'show slave statusG' |grep Last_Error Last_Error: Error 'Duplicate entry '1' for key 'PRIMARY'' on query. Default database: ''. Query: '
  • 56. Installing circular replication $ make_replication_sandbox --circular=4 5.1.34 installing node 1 installing node 2 installing node 3 installing node 4 # server: 1: # server: 2: # server: 3: # server: 4: Circular replication activated group directory installed on /Users/gmax/sandboxes/rcsandbox_5_1_34
  • 57. using circular replication $ cd $HOME/sandboxes/rcsandbox_5_1_34 $ ./n1 -e 'create table test.t1 (i int)' $ ./n3 -e 'insert into test.t1 values (3)' $ ./use_all 'select * from test.t1' # server: 1: i 3 # server: 2: i 3 # server: 3: i 3 # server: 4: i 3
  • 58. Easy testing conditions (1) $ cd $HOME/sandboxes/msb_5_1_35 $ ./use -e 'show variables like quot;key_buffer_sizequot;' +-----------------+---------+ | Variable_name | Value | +-----------------+---------+ | key_buffer_size | 8384512 | +-----------------+---------+ # we need to increase this one
  • 59. Easy testing conditions (2) $ ./restart --key_buffer=20M $ ./use -e 'show variables like quot;key_buffer_sizequot;' +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | key_buffer_size | 209715200 | +-----------------+-----------+ # as easy as saying it!
  • 60. Testing same version in different conditions $ make_multiple_sandbox 5.1.34 --group_directory=unpartitioned --base_port=5500 --check_base_port $ make_multiple_sandbox 5.1.34 --group_directory=partitioned --how_many_nodes=4 --base_port=6500 --check_base_port
  • 61. Testing same version in different conditions $SANDBOX_HOME/unpartitioned | +-- node1 MyISAM | +-- node2 InnoDB | +-- node3 Archive
  • 62. Testing same version in different conditions $SANDBOX_HOME/partitioned | +-- node1 MyISAM by month | +-- node2 InnoDB by month | +-- node3 InnoDB file per table by month | +-- node4 Archive by month
  • 63. Running tests cd $SANDBOX_HOME/unpartitioned ./stop_all RESULTS=unpartitioned_results.txt date > $RESULTS for SB in 1 2 3 do ./node$SB/start time ./n$SB < test.sql >> $RESULTS ./node$DB/stop done # more on tests later on. Stay tuned
  • 65. MySQL Sandbox 3.0  Released as Perl package - now on CPAN  Added the sbtool  Port detection  Install from a source directory  Allow the test suite to load and execute a customized test  Improved documentation
  • 66. Port detection $ make_sandbox 5.1.33 --check_port # port 5133 under msb_5_1_33 $ make_sandbox 5.1.33 --check_port # port 5134 under msb_5_1_33_a $ make_sandbox 5.1.33 --check_port # port 5135 under msb_5_1_33_b # ... and so on
  • 67. Install from source directory # compile mysql $ ./configure && make # install a sandbox $ make_sandbox_from_source $PWD single
  • 68. sbtool - the sandbox helper  Server clone  Server move  Change port  Sandbox deletion  List ports  Find a port range  Multi-level replication  Convert a sandbox from temporary to permanent
  • 69. Cloning a sandbox # install two sandboxes $ make_sandbox 5.1.33 $ make_sandbox 5.1.34 # Load and process data into msb_5_1_33 # ... # ... # Clone data into the second sandbox sbtool -o copy -s $HOME/sandboxes/msb_5_1_33 -d $HOME/sandboxes/msb_5_1_34
  • 70. Moving a sandbox # install a sandbox $ make_sandbox 5.1.33 # move it sbtool -o move -s $HOME/sandboxes/msb_5_1_33 -d /some/path/a_fancy_name
  • 71. Powerful new testing (1) # write a test script 'check_single_server.sb' shell: command = make_sandbox 5.1.30 --no_confirm expected = sandbox server started msg = sandbox creation sql: path = $SANDBOX_HOME/msb_5_1_30 query = select version() expected = 5.1.30 msg = checking version
  • 72. Powerful new testing (2) # write a test script 'check_single_server.sb' # (continues) shell: command = $SANDBOX_HOME/msb_5_1_30/stop expected = OK msg = stopped
  • 73. Powerful new testing (3) # Run the test $ test_sandbox --tests=user --user_test=t/check_single_server.sb ** currently there are (0) mysqld processes and (0) mysqld_safe processes ok 1 - sandbox creation ok 2 - checking version ok 3 - stopped *** Executed 3 tests. Passed 3 (100.00%). Failed 0 ( 0.00%)
  • 74. Powerful new testing (4) # Run the test is simple TAP mode $ export TAP_MODE=1 $ test_sandbox --tests=user --user_test=t/check_single_server.sb ok 1 - sandbox creation ok 2 - checking version ok 3 - stopped # for more info on the TAP format: $ perldoc Test::Harness::TAP
  • 75. Powerful new testing (5) # Run the test inside a test suite prove -v t/06_test_user_defined.t t/06_test_user_defined.... 1..3 ok 1 - sandbox creation ok 2 - checking version ok 3 - stopped ok All tests successful. Files=1, Tests=3, 8 wallclock secs ( 0.50 cusr + 0.56 csys = 1.06 CPU)
  • 76. Create a replication tree # 1 create a multiple sandbox $ make_multiple_sandbox --how_many_nodes=12 5.0.77 # set the roles $ sbtool -o tree --tree_dir=~/sandboxes/multi_msb_5_0_77 --master_node=1 --mid_nodes='2 3 4' --leaf_nodes='5 6|7 8 9|10 11 12'
  • 77. Using a replication tree (1) $ cd ~/sandboxes/multi_msb_5_0_77 $ ./n1 -e 'show slave hosts' +-----------+-------+-------+-------------------+-----------+ | Server_id | Host | Port | Rpl_recovery_rank | Master_id | +-----------+-------+-------+-------------------+-----------+ | 102 | node2 | 19778 | 0| 101 | | 104 | node4 | 19778 | 0| 101 | | 103 | node3 | 19778 | 0| 101 | +-----------+-------+-------+-------------------+-----------+
  • 78. Using a replication tree (2) $ ./n2 -e 'show slave hosts' +-----------+-------+-------+-------------------+-----------+ | Server_id | Host | Port | Rpl_recovery_rank | Master_id | +-----------+-------+-------+-------------------+-----------+ | 105 | node5 | 19779 | 0| 102 | | 106 | node6 | 19779 | 0| 102 | +-----------+-------+-------+-------------------+-----------+
  • 79. Using a replication tree (3) $ ./n1 -e 'create table test.t1 (i int)' $./n1 -e 'insert into test.t1 values (@@server_id)'
  • 80. Using a replication tree (4) $ ./use_all quot;select * from test.t1quot; # server: 1: i 101 # server: 2: i 102 # server: 3: i 103 # server: 4: i 104 # server: 5: i 105
  • 81. checking ports $ sbtool -o ports 5078 0 5130 0 5131 0 5132 0 5133 1 5135 0 5333 0 5400 0 $ sbtool -o ports --only_used 5133 1
  • 82. checking ranges $ sbtool -o range --min_range=5130 5136 - 5146
  • 83. Preserving a sandbox $ sbtool -o preserve -s $HOME/sandboxes/msb_5_1_33/ sandbox at <$HOME/sandboxes/msb_5_1_33/> is now permanent $ $HOME/sandboxes/msb_5_1_33/clear This sandbox is permanent. The 'clear' command has been disabled. The contents of the old 'clear' command are in the 'no_clear' file
  • 84. un-preserving a sandbox $ sbtool -o unpreserve -s $HOME/sandboxes/msb_5_1_33/ sandbox at <$HOME/sandboxes/msb_5_1_33/> is now NOT PERMANENT $ $HOME/sandboxes/msb_5_1_33/clear # no error
  • 85. deleting a sandbox $ sbtool -o delete -s $HOME/sandboxes/msb_5_1_35 sandbox at <$HOME/sandboxes/msb_5_1_35> has been removed
  • 86. Roadmap  Install on remote servers (in design)  create a failover script in replication to promote a slave to master (in design)  GUI  flexible topology read-and-install
  • 91. THANKS Let's talk! This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License. To view a copy of this license, visit http:// creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.