recover.sh test script that build a few database and populates them with
[sahlberg/ctdb.git] / tests / recover.sh
1 #!/bin/sh
2
3 killall -q ctdbd
4
5 echo "Starting 4 ctdb daemons"
6 bin/ctdbd --nlist direct/4nodes.txt
7 bin/ctdbd --nlist direct/4nodes.txt
8 bin/ctdbd --nlist direct/4nodes.txt
9 bin/ctdbd --nlist direct/4nodes.txt
10
11 echo "Attaching to some databases"
12 bin/ctdb_control --socket=/tmp/ctdb.socket attach test1.tdb || exit 1
13 bin/ctdb_control --socket=/tmp/ctdb.socket attach test2.tdb || exit 1
14 bin/ctdb_control --socket=/tmp/ctdb.socket attach test3.tdb || exit 1
15 bin/ctdb_control --socket=/tmp/ctdb.socket attach test4.tdb || exit 1
16
17 echo "Clearing all databases to make sure they are all empty"
18 bin/ctdb_control --socket=/tmp/ctdb.socket getdbmap 0 | egrep "^dbid:" | sed -e "s/^dbid://" -e "s/ .*$//" | while read DB; do
19         seq 0 3 | while read NODE; do
20                 bin/ctdb_control --socket=/tmp/ctdb.socket cleardb $NODE $DB
21         done
22 done
23
24
25 echo
26 echo
27 echo "Printing all databases on all nodes. they should all be empty"
28 echo "============================================================="
29 bin/ctdb_control --socket=/tmp/ctdb.socket getdbmap 0 | egrep "^dbid:" | sed -e "s/^dbid://" -e "s/ .*$//" | while read DB; do
30         seq 0 3 | while read NODE; do
31                 echo "Content of DB:$DB NODE:$NODE :"
32                 bin/ctdb_control --socket=/tmp/ctdb.socket catdb $NODE $DB
33         done
34 done
35
36
37 echo
38 echo
39 echo "Populating the databases"
40 ./bin/ctdb_control --socket=/tmp/ctdb.socket writerecord 0 0x220c2a7b testkey1 testdata1
41 ./bin/ctdb_control --socket=/tmp/ctdb.socket setdmaster 0 0x220c2a7b 1
42
43 ./bin/ctdb_control --socket=/tmp/ctdb.socket writerecord 1 0x220c2a7b testkey1 testdata1
44 ./bin/ctdb_control --socket=/tmp/ctdb.socket writerecord 1 0x220c2a7b testkey1 testdata1
45 ./bin/ctdb_control --socket=/tmp/ctdb.socket setdmaster 1 0x220c2a7b 2
46
47 ./bin/ctdb_control --socket=/tmp/ctdb.socket writerecord 2 0x220c2a7b testkey1 testdata1
48 ./bin/ctdb_control --socket=/tmp/ctdb.socket writerecord 2 0x220c2a7b testkey1 testdata1
49 ./bin/ctdb_control --socket=/tmp/ctdb.socket writerecord 2 0x220c2a7b testkey1 testdata1
50 ./bin/ctdb_control --socket=/tmp/ctdb.socket setdmaster 2 0x220c2a7b 3
51
52 ./bin/ctdb_control --socket=/tmp/ctdb.socket writerecord 3 0x220c2a7b testkey1 testdata1
53 ./bin/ctdb_control --socket=/tmp/ctdb.socket writerecord 3 0x220c2a7b testkey1 testdata1
54 ./bin/ctdb_control --socket=/tmp/ctdb.socket writerecord 3 0x220c2a7b testkey1 testdata1
55 ./bin/ctdb_control --socket=/tmp/ctdb.socket writerecord 3 0x220c2a7b testkey1 testdata1
56 ./bin/ctdb_control --socket=/tmp/ctdb.socket setdmaster 3 0x220c2a7b 3
57
58
59 echo
60 echo
61 echo "Printing all databases on all nodes. there should be a record there"
62 echo "============================================================="
63 bin/ctdb_control --socket=/tmp/ctdb.socket getdbmap 0 | egrep "^dbid:" | sed -e "s/^dbid://" -e "s/ .*$//" | while read DB; do
64         seq 0 3 | while read NODE; do
65                 echo "Content of DB:$DB NODE:$NODE :"
66                 bin/ctdb_control --socket=/tmp/ctdb.socket catdb $NODE $DB
67         done
68 done
69
70 echo
71 echo
72 echo "Recovery the cluster"
73 echo "===================="
74 ./bin/ctdb_control --socket=/tmp/ctdb.socket recover 0 0x220c2a7b
75
76 echo
77 echo
78 echo "Printing all databases on all nodes."
79 echo "The databases should be the same now on all nodes"
80 echo "and the record will have been migrated to node 0"
81 echo "================================================="
82 bin/ctdb_control --socket=/tmp/ctdb.socket getdbmap 0 | egrep "^dbid:" | sed -e "s/^dbid://" -e "s/ .*$//" | while read DB; do
83         seq 0 3 | while read NODE; do
84                 echo "Content of DB:$DB NODE:$NODE :"
85                 bin/ctdb_control --socket=/tmp/ctdb.socket catdb $NODE $DB
86         done
87 done
88
89
90 #leave the ctdb daemons running
91 #killall -q ctdbd