VOMS Replication first replica
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Main | EGI.eu operations services | Support | Documentation | Tools | Activities | Performance | Technology | Catch-all Services | Resource Allocation | Security |
Documentation menu: | Home • | Manuals • | Procedures • | Training • | Other • | Contact ► | For: | VO managers • | Administrators |
Back to MAN07_VOMS_Replication
Here the content of first_replica.sh
#!/bin/sh
#
# Default prefix
VOMS_LOCATION=${VOMS_LOCATION:-NONE}
if test -z $VOMS_LOCATION_VAR ; then
VOMS_LOCATION_VAR=$VOMS_LOCATION/var
fi
CERTDIR=${CERTDIR:-/etc/grid-security/certificates} #CERTDIR
SSLPROG="openssl" #openssl
MYSQL_HOME=/usr # MySQL install prefi
voms_database="" # VOMS database
master_host="" # Master
master_mysql_user="" # Master MySQL admin user
master_mysql_pwd="" # Master MySQL admin pass
master_log_file="" # Master LOG file
master_log_pos="" # Master LOG file
mysql_username_admin="root" # MySQL admin username
mysql_password_admin="" # MySQL admin pass
basepath=$VOMS_LOCATION # Default path
datapath=$VOMS_LOCATION
verbose=""
TEMP=`getopt -o hv --long mysql-home:,db:,mysql-admin:,mysql-pwd:,master-host:,master-mysql-user:,master-mysql-pwd:,master-log-file:,master-db:,master-log-pos: -n 'voms_install_replica' -- "$@"`
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
eval set -- "$TEMP"
while true ; do
case "$1" in
--mysql-home) MYSQL_HOME=$2 ; shift 2 ;;
--db) voms_database=$2 ; shift 2 ;;
--mysql-admin) mysql_username_admin=$2 ; shift 2 ;;
--mysql-pwd) mysql_password_admin=$2 ; shift 2 ;;
--master-host) master_host=$2 ; shift 2 ;;
--master-mysql-user) master_mysql_user=$2 ; shift 2 ;;
--master-mysql-pwd) master_mysql_pwd=$2 ; shift 2 ;;
--master-db) master_db=$2 ; shift 2 ;;
--master-log-file) master_log_file=$2 ; shift 2 ;;
--master-log-pos) master_log_pos=$2 ; shift 2 ;;
-v) verbose="1" ; shift ;;
-h) echo "This is the help" ; exit 1 ;;
--) shift ; break ;;
*) echo "Internal Error!" >&2 ; exit 1 ;;
esac
done
###############################################################################
#STOP ACTIVITY
MYSQL=mysql
if ! test -z $verbose ; then echo "VOMS_INSTALL_REPLICA: LOCK MASTER TABLES.."; fi
$MYSQL -h $master_host -u $master_mysql_user -p$master_mysql_pwd -e "FLUSH TABLES WITH READ LOCK" # STOP MASTER
MYSQL="mysql -u$mysql_username_admin -p$mysql_password_admin"
if ! test -z $verbose ; then echo "VOMS_INSTALL_REPLICA: STOP SLAVE.." ; fi
#$MYSQL -e "RESET SLAVE" # May help..
$MYSQL -e "STOP SLAVE" # STOP SLAVE
#DUPLICATE DATABASE
if ! test -z $verbose ; then echo "VOMS_INSTALL_REPLICA: DUPLICATE DB (MYSQLDUMP).." ; fi
$MYSQL -e "DROP DATABASE IF EXISTS $voms_database; CREATE DATABASE $voms_database;"
mysqldump --host $master_host -u $master_mysql_user -p$master_mysql_pwd --opt $master_db | $MYSQL -C $voms_database;
$MYSQL -D $voms_database -e "update seqnumber set seq=00"
#GET MASTER STATUS
if test -z $master_log_file; then
if ! test -z $verbose ; then echo "VOMS_INSTALL_REPLICA: GET MASTER LOG FILE AND POS.." ; fi
master_log_file=`mysql -h $master_host -u $master_mysql_user -p$master_mysql_pwd -e "show master status" | awk 'NR==2 {print $1}'`
master_log_pos=`mysql -h $master_host -u $master_mysql_user -p$master_mysql_pwd -e "show master status" | awk 'NR==2 {print $2}'`
fi
#WRITE MASTER INFO
$MYSQL <<EOF
CHANGE MASTER TO MASTER_HOST='$master_host',MASTER_USER='$master_mysql_user',MASTER_PASSWORD='$master_mysql_pwd',MASTER_LOG_FILE='$master_log_file',MASTER_LOG_POS=$master_log_pos;
EOF
cat <<EOF
CHANGE MASTER TO MASTER_HOST='$master_host',MASTER_USER='$master_mysql_user',MASTER_PASSWORD='$master_mysql_pwd',MASTER_LOG_FILE='$master_log_file',MASTER_LOG_POS=$master_log_pos;
EOF
cat > /etc/my.cnf <<EOF
[mysqld]
server-id=2
master-host=$master_host
master-user=$master_mysql_user
master-password=$master_mysql_pwd
replicate-do-db=$master_db
replicate-ignore-table=$master_db.seqnumber
replicate-ignore-table=$master_db.realtime
replicate-ignore-table=$master_db.transactions
replicate-ignore-table=$voms_database.seqnumber
replicate-ignore-table=$voms_database.realtime
replicate-ignore-table=$voms_database.transactions
EOF
if ! test -z $verbose ; then echo "VOMS_INSTALL_REPLICA: MYSQL RESTART.." ; fi
/etc/init.d/mysqld restart
#service mysql restart
sleep 1
$MYSQL -e "START SLAVE" # START SLAVE
MYSQL=mysql
if ! test -z $verbose ; then echo "VOMS_INSTALL_REPLICA: UNLOCK MASTER TABLES.." ; fi
$MYSQL -h $master_host -u $master_mysql_user -p$master_mysql_pwd -e "UNLOCK TABLES"