IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> mysql Replication双机同步脚本 -> 正文阅读

[大数据]mysql Replication双机同步脚本

mysql Replication双机,有时有问题导致双机不一致,需要手动做一次同步,太烦麻了,写了个脚本,可实现一键同步,但是前提是两台机器有做互信,不说废话,直接上代码:

#!/bin/bash
v_time=date '+%Y%m%d%H%M'
#主备机IP
master_ip='192.168.0.1'
slave_ip='192.168.0.2'
#主备机mysql的base目录
master_mysql_base='/home/mysql/mysql-8.0.26'
slave_mysql_base='/home/mysql/mysql-8.0.26'
#主备机mysql的data目录
master_mysql_data='/home/mysql/mysql_data'
slave_mysql_data='/home/mysql/mysql_data'
#主备机mysql的安装目录
master_mysql='/home/mysql'
slave_mysql='/home/mysql'
#主备机的登录用户和密码
master_root='root'
slave_root='root'
master_root_pwd='root'
slave_root_pwd='root'
#mysql同步用户和密码
sync_account='repl'
sync_account_pwd='******'
echo ?'是否要执同步操作:yes 是 other 否'
echo -n '请输入: '
read na
if [ ${na} = 'yes' ];then
echo '开始同步'
#主机操作
echo '停止主机mysql'
service mysql stop
cd ${master_mysql}
echo '压缩数据文件'
if [ -f mysql_data.tar.gz ];
then
rm -rf mysql_data.tar.gz
tar -zcf mysql_data.tar.gz mysql_data
else
tar -zcf mysql_data.tar.gz mysql_data
fi
echo '启动主机mysql'
service mysql start
echo '获取主机同步配置信息,改成只读'
mysql -u ${master_root} -p${master_root_pwd} << EOF >${master_mysql}/master_info.txt
flush tables with read lock;
show master status;
exit
EOF
v_log_file=cat ${master_mysql}/master_info.txt | awk '{print $1}' |sed -n '2p'
v_log_pos=cat ${master_mysql}/master_info.txt | awk '{print $2}' |sed -n '2p'
echo '复制主机数据文件到备机'
scp mysql_data.tar.gz root@${slave_ip}:${slave_mysql}
echo '切换到备机操作'
#切换到备机操作
ssh ${slave_ip} <<END
cd ${slave_mysql}
echo '停止备机mysql'
service mysql stop
echo '备份备机的数据文件'
mv ${slave_mysql_data} ${slave_mysql_data}${v_time}
echo '解压数据文件'
tar -zxf ${slave_mysql}/mysql_data.tar.gz
echo '备份备机auto.cnf文件'
cd ${slave_mysql_data}
mv auto.cnf auto.cnf.bak
echo '启动备机mysql'
service mysql start
echo '用同步用户连主机测试连接'
mysql -u ${sync_account} -p${sync_account_pwd} -h ${master_ip} << EOF
exit
EOF
echo '登录备机mysql配置同步参数'
mysql -u ${slave_root} -p${slave_root_pwd} << EOF
stop slave;
CHANGE MASTER TO
MASTER_HOST='${master_ip}',
MASTER_USER='${sync_account}',
MASTER_PASSWORD='${sync_account_pwd}',
MASTER_LOG_FILE='${v_log_file}',
MASTER_LOG_POS=${v_log_pos};
start slave;
exit
EOF
sleep 5
echo '记录同步状态'
mysql -u ${slave_root} -p${slave_root_pwd} << EOF > ${slave_mysql}/slave_info.txt
show slave status\G
EOF
END

#切回主机
echo '切回主机,修改主机为可读可写'
mysql -u ${master_root} -p${master_root_pwd} << EOF
unlock tables;
exit
EOF
echo '同步完成,请查看备机上的slave_info.txt文件,确认是否同步成功'
else
exit
fi

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-18 17:42:19  更:2022-05-18 17:43:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:44:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码