Alert.png The wiki is deprecated and due to be decommissioned by the end of September 2022.
The content is being migrated to other supports, new updates will be ignored and lost.
If needed you can get in touch with EGI SDIS team using operations @ egi.eu.

VOMS Replication first replica

From EGIWiki
Revision as of 23:32, 1 December 2012 by Krakow (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
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"