--ibbackup xtrabackup --apply-log $SHARED_STORAGE_PATH/${backup_folder}/
innobackupex --user=$HOTBACKUP_USER --password=$HOTBACKUP_PASSWORD $INNOBACKUP_OPT --copy-back $SHARED_STORAGE_PATH/${backup_folder}/
#(7)将原来的备份中的复制点信息copy到临时目录下,并赋予对copy后的文件赋予相应的权限。
cp -f $SHARED_STORAGE_PATH/${backup_folder}/xtrabackup_binlog_info $TEMP_SETUP_FOLDER/xtrabackup_binlog_info.master
chmod 644 $TEMP_SETUP_FOLDER/xtrabackup_binlog_info.master
#(8)恢复成功后,删除原来的临时目录的备份数据,释放磁盘空间,如果你磁盘空间足够,这一步可以省略。
echo "Remove backup files..."
rm -rf $SHARED_STORAGE_PATH/${backup_folder}/
6 搭建M1上面的复制,M2为master,M1为slave,MM架构。
#!/bin/sh
set -x
set -u
set -e
#(1)$1:master主库服务器主机名或者IP地址; $2:slave主库服务器主机名或者IP地址;
MASTER_SERVER=$1
SLAVE_SERVER=$2
MYSQL_CNF_DIR='/opt/mysql/product/mysql/etc'
MYSQL_EXEC='/opt/mysql/product/mysql/bin/mysql'
#(2)从$1主库上面获取复制点信息
master_file=$(ssh -t $MASTER_SERVER "$MYSQL_EXEC -u$SUPER_USER -p$SUPER_PASSWORD -e 'SHOW MASTER STATUS\G'" | grep "File" | awk '{print $2}')
master_file=$(sed -e 's/[\r\n]//' <<<"$master_file")
master_pos=$(ssh -t $MASTER_SERVER "$MYSQL_EXEC -u$SUPER_USER -p$SUPER_PASSWORD -e 'SHOW MASTER STATUS\G'" | grep "Position" | awk '{print $2}')
master_pos=$(sed -e 's/[\r\n]//' <<<"$master_pos")
#(3)执行搭建复制sql命令操作:
ssh -t $SLAVE_SERVER "$MYSQL_EXEC -u$SUPER_USER -p$SUPER_PASSWORD -e \"
STOP SLAVE;
RESET SLAVE;
CHANGE MASTER TO master_host='$MASTER_SERVER', master_port=3306, master_user='$REPLICATION_USER',
master_password='$REPLICATION_PASSWORD', master_log_file='$master_file', master_log_pos=$master_pos;
START SLAVE;
\""
7 执行操作
在根目录下,执行
[root@xx-control xx]# nohup /home/cc/a_build_rep.sh m2.xx.com m1-.xx.com . > rebuild.log &,放在后台执行,使用nohup以防止屏幕突然失效。
然后用 tail -f rebuild.log 查看进展:
[root@xx-control xx]# tail -f rebuild.log
+ set -e
+ BACKUP_FOLDER=/mysqldata/shared/backup
Run xtrabackup to take hotbackup...
+ HOTBACKUP_USER=backupuser
+ HOTBACKUP_PASSWORD='#xxx$'
+ NEED_SAFE_SLAVE=N
+ NEED_RSYNC=Y
+ INNOBACKUP_OPT=
+ [[ N == \Y ]]
+ [[ Y == \Y ]]
+ INNOBACKUP_OPT=' --rsync'
+ echo 'Run xtrabackup to take hotbackup...'
+ export MYSQL_HOME=/opt/mysql/product/mysql
+ MYSQL_HOME=/opt/mysql/product/mysql
+ innobackupex --rsync --user=user'--password=#xxx$' /mysqldata/shared/backup
.................................................................................
................................................................................
Rebuild secondary done!