双A复制mysql_mysql双主复制并利用keepalived做高可用
1、架构
vip 192.168..45.244
mysql-1:192.168.45.238
mysql-2:192.168.45.239
2、mysql双主设置
192.168.45.238
#vim /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
datadir=/usr/local/mysql/var/
skip-locking
skip-name-resolve
key_buffer = 64M
max_allowed_packet = 64M
table_cache = 2048
sort_buffer_size = 4M
net_buffer_length = 256K
read_buffer_size = 10M
read_rnd_buffer_size = 10M
myisam_sort_buffer_size = 16M
interactive_timeout = 240
wait_timeout = 240
max_connections = 800
connect_timeout=30
open_files_limit=8192
query_cache_size = 1024M
thread_cache_size=16
thread_concurrency = 8
long_query_time = 1
log-slow-queries = slow.log
innodb_additional_mem_pool_size = 8M
innodb_buffer_pool_size = 32M
innodb_log_buffer_size=8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_file_io_threads = 8
innodb_lock_wait_timeout= 50
innodb_thread_concurrency = 16
innodb_file_per_table
log_slave_updates
expire_logs_days=7
auto_increment_increment=2
auto_increment_offset=2
binlog_format=mixed
log-bin=mysql-bin
server-id = 8
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
设置mysql复制账号
mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.45.238' IDENTIFIED BY 'repl_123';
mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.45.239' IDENTIFIED BY 'repl_123';
导出数据库
#mysqldump -uroot -p --single-transaction --flush-logs --master-data=2 --all-databases > all.sql
192.168.45.239
mysql配置
#vim /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
datadir=/usr/local/mysql/var/
skip-locking
skip-name-resolve
key_buffer = 64M
max_allowed_packet = 64M
table_cache = 128
sort_buffer_size = 4M
net_buffer_length = 256K
read_buffer_size = 10M
read_rnd_buffer_size = 10M
myisam_sort_buffer_size = 64M
interactive_timeout = 240
wait_timeout = 240
max_connections = 800
connect_timeout=30
open_files_limit=8192
query_cache_size = 1024M
thread_cache_size=16
thread_concurrency = 8
long_query_time = 1
log-slow-queries = slow.log
innodb_additional_mem_pool_size = 8M
innodb_buffer_pool_size = 64M
innodb_log_buffer_size=8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_file_io_threads = 8
innodb_lock_wait_timeout= 50
innodb_thread_concurrency = 16
innodb_file_per_table
log_slave_updates
expire_logs_days=7
auto_increment_increment=2
auto_increment_offset=1
binlog_format=mixed
log-bin=mysql-bin
server-id = 9
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
导入主库数据
#mysql -uroot -p < all.sql
设置同步
mysql> CHANGE MASTER TO MASTER_HOST='192.168.45.238',MASTER_PORT='3306',MASTER_USER='repl',MASTER_PASSWORD='repl_123',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=106;
mysql> start slave;
在192.168.45.238上设置同步
mysql>CHANGE MASTER TOMASTER_HOST='192.168.45.239',MASTER_PORT='3306',MASTER_USER='repl',MASTER_PASSWORD='repl_123',MASTER_LOG_FILE='mysql-bin.000008',MASTER_LOG_POS=105020214;
mysql>start slave;
3、配置keepalived
192.168.45.238
192.168.45.239
安装keepalived
wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
tar zxvf keepalived-1.2.2.tar.gz
cd keepalived-1.2.2
./configure --prefix=/
make
make install
192.168.45.238 keepalived 配置
6># vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id yuangnag.com
}
vrrp_script check_run {
script "/root/keepalived_check_mysql.sh"
interval 5
}
vrrp_sync_group VG1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 88
priority 100
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass yuangang.net
}
track_script {
check_run
}
virtual_ipaddress {
192.168.45.244
}
}
检测mysql脚本配置(两台mysql一样的配置)
#vim #!/bin/bash
MYSQL=/usr/local/mysql/bin/mysql
MYSQL_HOST=localhost
MYSQL_USER=root
MYSQL_PASSWORD=
CHECK_TIME=3
#mysql is working MYSQL_OK is 1 , mysql down MYSQL_OK is 0
MYSQL_OK=1
function check_mysql_helth (){
$MYSQL -h $MYSQL_HOST -u $MYSQL_USER -e "show status;" >/dev/null 2>&1
if [ $? = 0 ] ;then
MYSQL_OK=1
else
MYSQL_OK=0
fi
return $MYSQL_OK
}
while [ $CHECK_TIME -ne 0 ]
do
let "CHECK_TIME -= 1"
check_mysql_helth
if [ $MYSQL_OK = 1 ] ; then
CHECK_TIME=0
exit 0
fi
if [ $MYSQL_OK -eq 0 ] && [ $CHECK_TIME -eq 0 ]
then
/etc/init.d/keepalived stop
exit 1
fi
sleep 1
done
#!/bin/bash
MYSQL=/usr/local/mysql/bin/mysql
MYSQL_HOST=localhost
MYSQL_USER=root
MYSQL_PASSWORD=
CHECK_TIME=3
#mysql is working MYSQL_OK is 1 , mysql down MYSQL_OK is 0
MYSQL_OK=1
function check_mysql_helth (){
$MYSQL -h $MYSQL_HOST -u $MYSQL_USER -e "show status;" >/dev/null 2>&1
if [ $? = 0 ] ;then
MYSQL_OK=1
else
MYSQL_OK=0
fi
return $MYSQL_OK
}
while [ $CHECK_TIME -ne 0 ]
do
let "CHECK_TIME -= 1"
check_mysql_helth
if [ $MYSQL_OK = 1 ] ; then
CHECK_TIME=0
exit 0
fi
if [ $MYSQL_OK -eq 0 ] && [ $CHECK_TIME -eq 0 ]
then
/etc/init.d/keepalived stop
exit 1
fi
sleep 1
done
chmod 755 /root/keepalived_check_mysql.sh
192.168.45.239 keepalived配置
# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id yuangang.com
}
vrrp_script check_run {
script "/root/keepalived_check_mysql.sh"
interval 5
}
vrrp_sync_group VG1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 88
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass yuangang.com
}
track_script {
check_run
}
virtual_ipaddress {
192.168.45.244
}
}
启动 238上的keepalived mysql
/etc/init.d/keepalived start
/etc/init.d/mysqld start
启动239上的keepalived mysql
/etc/init.d/keepalived start
/etc/init.d/mysqld start
测试,关闭238上的mysql在另外一台机器上用vip连接mysql
关闭239上的mysql在另外一台机器上用vip连接mysql
作者“linux运维”
双A复制mysql_mysql双主复制并利用keepalived做高可用相关推荐
- mysql主主keepalived_MySQL主主复制以及使用keepalived保证高可用
1:准备工作 MySQL的安装步骤在此处省略:安装完成一定要做以下准备工作,初始化MySQL,/usr/bin/mysql_secure_installation,设置root密码,删除无效账户以及t ...
- 单主复制与多主复制入门
单主复制 单主复制,也称主从复制.写入主节点的数据都需要复制到从节点,即存储数据库副本的节点.当客户要写入数据库时,他们必须将请求发送给主节点,而后主节点将这些数据转换为复制日志或修改数据流发送给其所 ...
- mysql主主keepalived_MySQL主主+Keepalived实现高可用
在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主主方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入 ...
- OpenResty+Keepalived组建高可用集群+双主模式
* 环境: system version:CentOS Linux release 7.5.1804 (Core) 3.10.0-862.9.1.el7.x86_64 nginx version:op ...
- keepalived mysql集群_mysql双主+keepalived实现高可用集群
master-a端: 1)安装keepalived [[email protected] ~]# [[email protected] ~]# yum install keepalived 安装kee ...
- 双机热备(双主模式)——实现数据库的高可用
1.搭建双主机 <总说明:实现此功能需要用到mycat> 问题:如果根据如下的配置实现数据库的代理,如果数据库主库宕机,则直接影响整个程序的执行.所以需要实现高可用机制. 高可用实现的问题 ...
- mysql主备在同一台_MySQL高可用(一)主备同步:MySQL是如何保证主备一致的
主备同步,也叫主从复制,是MySQL提供的一种高可用的解决方案,保证主备数据一致性的解决方案. 在生产环境中,会有很多不可控因素,例如数据库服务挂了.为了保证应用的高可用,数据库也必须要是高可用的. ...
- c mysql 双主复制_mysql双主复制及使用keepalived作高可用的配置详解
1.系统环境架构 vip 192.168..45.244 mysql-1:192.168.45.238 mysql-2:192.168.45.239 2.mysql双主设置 192.168.45.23 ...
- mysql双主故障自动切换_MySQL主库高可用 -- 双主单活故障自动切换方案
前言:(PS:前言是后来修改本文时加的)对于这篇文章,有博友提出了一些疑问和见解, 有了博友的关注,也促使我想把这套东西做的更实用.更安全.后来又经过思考,对脚本中一些条件和行为做了些改变.经过几次修 ...
- mysql主主复制+keepalived 打造高可用mysql集群
为了响应公司需求,打造出更安全的mysql集群,能够实现mysql故障后切换,研究了几天终于有了成果,一起分享一下. 首先介绍一下这套集群方案实现的功能 1.mysql服务器故障后自动转移,修好后自动 ...
最新文章
- vue+elementUI项目的踩坑~~持续更新
- matlab和C如何混编
- mysql获取时间_时间类型_时间格式化
- mysql容器操作_如何使用运行MySQL构建Docker容器?
- 三种CSS样式的引用方式
- iOS-数据持久化-偏好设置
- 关于Dapper.NET的相关论述
- 带有Prometheus的Spring Boot和测微表第6部分:保护指标
- 电工接线模拟仿真软件_VERICUT数控加工仿真软件,最强的数控加工模拟软件,你知道么?...
- php+flash实现转盘抽奖(加源代码)
- Typescript有什么冷门但是很好用的特性?
- Python 函数(参数组合)
- 在DevStack中使用Systemd
- linux 内核 介绍,Linux内核详细介绍
- 中文版的XP转换为英文版的XP和XP多国语言包
- Matpower安装流程
- 万娟 白话大数据和机械学习_白话大数据与机器学习 (高扬著) 带书签目录 完整pdf扫描版[71MB]...
- unity android 不锁屏,Unity 实现Android不锁屏
- 定时器 java qua_spring项目中使用定时任务
- Pathon 连接数据库