欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql+Keepalived實現(xiàn)雙主熱備方式

 更新時間:2022年10月31日 09:49:52   作者:z.haoui  
這篇文章主要介紹了Mysql+Keepalived實現(xiàn)雙主熱備方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

我們通常說的雙機熱備是指兩臺機器都在運行,但并不是兩臺機器都同時在提供服務。當提供服務的一臺出現(xiàn)故障的時候,另外一臺會馬上自動接管并且提供服務,而且切換的時間非常短

MySQL雙主復制,即互為Master-Slave(默認只使用一臺MasterA負責數(shù)據(jù)寫入,另一臺MasterB備用),可以實現(xiàn)數(shù)據(jù)庫服務器的熱備,但是一臺Master宕機后不能實現(xiàn)動態(tài)切換。

使用Keepalived,可以通過虛擬IP,實現(xiàn)雙主對外的統(tǒng)一接口以及自動檢查、失敗切換機制,從而實現(xiàn)MySQL數(shù)據(jù)庫的高可用方案。

一、Mysql安裝、配置和安全啟動

把mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz上傳到/usr/local/src/

1、mysql安裝

cd /usr/local/src/
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
mkdir -p /usr/local/mysql/
mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql/mysql-5.7.28

2、創(chuàng)建mysql用戶組和用戶

cd /usr/local
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql mysql

3、初始化數(shù)據(jù)

cd /usr/local/mysql/mysql-5.7.28
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-5.7.28/ --datadir=/data1/mysql/data --lc_messages_dir=/usr/local/mysql/mysql-5.7.28/share --lc_messages=en_US
bin/mysql_ssl_rsa_setup --datadir=/data1/mysql/data

4、修改配置

vi /etc/my.cnf
basedir=/usr/local/mysql/mysql-5.7.28
datadir=/data1/mysql/data

5、配置環(huán)境變量

#編輯環(huán)境變量 .bash_profile表示當前用戶個人配置 只對當前用戶生效
vi ~/.bash_profile
 
#將mysql的bin目錄配置到環(huán)境變量中
PATH=$PATH:$HOME/bin:/usr/local/mysql/mysql-5.7.28/bin
export PATH
 
#使配置修改后立即生效
source ~/.bash_profile

6、修改密碼、配置遠程訪問和安全啟動

#啟動前先設置免密登錄
vi /etc/my.cnf
#添加如下配置并保存 跳過權(quán)限驗證
skip-grant-tables=1
 
#安全啟動
cd /usr/local/mysql/mysql-5.7.28/bin
./mysqld_safe --user=mysql &
 
#修改密碼
#進入mysql
mysql
use mysql
update user set authentication_string=password("123456") where user="root";
#刷新權(quán)限表
flush privileges;
 
#配置遠程訪問
use mysql
#允許所有機器訪問root用戶 %代表所有機器
update user set host='%' where user='root';
#授權(quán)所有機器的root用戶擁有所有數(shù)據(jù)庫的所有權(quán)限 遠程訪問密碼root %代表所有機器
grant all privileges on *.* to root@'%' identified by 'root';
#刷新權(quán)限表
flush privileges;
 
#退出mysql
exit
 
#安全關閉
./mysqladmin -uroot -p shutdown
 
#刪除免密登錄配置
vi /etc/my.cnf
#刪除skip-grant-tables=1并保存
 
#安全啟動
./mysqld_safe --user=mysql &

二、 兩臺Mysql配置雙主

1、創(chuàng)建主從同步replication用戶

2、授權(quán)

192.168.0.101

#授權(quán)IP192.168.0.102的從數(shù)據(jù)庫replication用戶擁有所有數(shù)據(jù)庫的同步權(quán)限 遠程訪問密碼replication
grant replication slave on *.* to 'replication'@'192.168.0.102' identified by 'replication';
#刷新權(quán)限表
flush privileges;

192.168.0.102

#授權(quán)IP192.168.0.101的從數(shù)據(jù)庫replication用戶擁有所有數(shù)據(jù)庫的同步權(quán)限 遠程訪問密碼replication
grant replication slave on *.* to 'replication'@'192.168.0.101' identified by 'replication';
#刷新權(quán)限表
flush privileges;

3、添加配置文件

[mysqld]
basedir=/usr/local/mysql/mysql-5.7.28
datadir=/data1/mysql/data
 
server-id = 101
 
skip-external-locking
 
log_bin = mysql-binlog
binlog_do_db = sample
binlog-ignore-db = mysql
binlog-ignore-db = performance_schema
binlog-ignore-db = information_schema
 
binlog_group_commit_sync_delay = 100000 # 單位微妙
binlog_group_commit_sync_no_delay_count = 20 # 單位每組事物數(shù)量
 
#設置復制類型
slave-parallel-type=LOGICAL_CLOCK
#設置并行數(shù)量
slave-parallel-workers=4
 
#主主需要加的部分
replicate-do-db = sample
 
log-slave-updates=true
#sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
 
innodb_buffer_pool_size = 12G
innodb_buffer_pool_instances = 8
innodb_buffer_pool_chunk_size = 128M
innodb_log_file_size = 256M
innodb_log_buffer_size = 32M
innodb_flush_method = O_DIRECT
innodb_lock_wait_timeout = 120
 
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/log/slow.log
long_query_time = 5
 
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
secure_file_priv=/usr/local/mysqlcsvfiles/
 
expire_logs_days=7
max_binlog_size=1024M
 
!includedir /etc/my.cnf.d

4、添加之后

mkdir -p /usr/local/mysql/log
mkdir -p /usr/local/mysqlcsvfiles

5、安全關閉

./mysqladmin -uroot -p shutdown

6、安全啟動

./mysqld_safe --user=mysql &

7、進入mysql執(zhí)行

#進入mysql執(zhí)行
show master status\G;
 
#分別記錄主的binlog位置,在101的角度上102為主,在102的角度上,101為主
File:mysql-bin.000001
Position: 154
 
#設置同步關系(兩個主都要設置)
#其中master_log_file和master_log_pos要登錄到對方機器執(zhí)行show master status\G;去查看
stop slave;
(在192.168.0.101)
change master to master_host='192.168.0.102',master_user='replication',master_password='replication',master_log_file='mysql-bin.000001',master_log_pos=154;
(在192.168.0.102)
change master to master_host='192.168.0.101',master_user='replication',master_password='replication',master_log_file='mysql-bin.000001',master_log_pos=154;
 
#分別啟動slave
start slave;

三、安裝Keepalived

1、安裝編譯依賴包

yum install -y gcc openssl-devel libnl libnl-devel libnfnetlink-devel

2、安裝Keepalived

#解壓keepalived壓縮包放到/usr/local/并重命名為keepalived
cd /usr/local/src
tar -zxvf keepalived-2.0.7.tar.gz
mv keepalived-2.0.7 /usr/local/keepalived
 
#配置keepalived 得到一個Makefile的文件夾
#--prefix:keepalived安裝目錄
#--sysconf:keepalived的核心配置文件,必須要在/etc目錄下面,改為其他位置會導致啟動不了,不配置在該目錄下的話,啟動keepalived時日志文件里面會報錯,顯示找不到/etc這個文件夾
cd /usr/local/keepalived
./configure --prefix=/usr/local/keepalived/ --sysconf /etc
 
#編譯和安裝keepalived
make && make install
 
#創(chuàng)建keepalived軟鏈接 /usr/sbin/如果存在keepalived就先刪除
ln -s  /usr/local/keepalived/sbin/keepalived /usr/sbin/
 
#復制keepalived腳本文件到/etc/init.d/目錄下
cd keepalived
cp /usr/local/keepalived/etc/init.d/keepalived /etc/init.d/
 
#設置Keepalived開機自啟動
chkconfig --add keepalived
chkconfig keepalived on
 
#啟動keepalived
service keepalived start

四、配置Keepalived

1、編輯keepalived配置文件

vi /etc/keepalived/keepalived.conf

2、主服務器添加對應配置文件

global_defs {
	router_id LVS_LEVEL1	#主服務器名稱
}
 
vrrp_script check_run {
   script "/etc/keepalived/mysql_check.sh"
   interval 5				#5秒執(zhí)行一次腳本
}
 
vrrp_instance VI_1 {
    state MASTER			#主服務器
    interface eth0			#承載VIP地址到物理接口
    virtual_router_id 51	#虛擬路由器ID號,每個熱播組保持一致
    priority 100			#優(yōu)先級,數(shù)值越大優(yōu)先級越高
    advert_int 1			#檢查間隔,默認為1s
    authentication {		#認證信息,每個熱播組保持一致
        auth_type PASS      #認證類型
        auth_pass 1111		#密碼字串
    }
    virtual_ipaddress {
        192.168.0.144		#VIP地址(內(nèi)網(wǎng)地址)
    }
    track_script {
        check_run
    }
}

3、備份服務器添加對應配置文件

global_defs {
	router_id LVS_LEVEL2	#備份服務器名稱
}
vrrp_script check_run {
	script "/etc/keepalived/mysql_check.sh"
	interval 5				#5秒執(zhí)行一次腳本
}
vrrp_instance VI_1 {
    state BACKUP			#備份服務器
    interface eth0			#承載VIP地址到物理接口
    virtual_router_id 51	#虛擬路由器ID號,每個熱播組保持一致
    priority 50				#優(yōu)先級,數(shù)值越大優(yōu)先級越高
    advert_int 1			#檢查間隔,默認為1s
    authentication {		#認證信息,每個熱播組保持一致
        auth_type PASS      #認證類型
        auth_pass 1111		#密碼字串
    }
    virtual_ipaddress {
        192.168.0.144       #VIP地址(和主服務器設置一樣)
    }
    track_script {
        check_run
    }
}

附mysql_check.sh

#!/bin/bash
/usr/bin/mysql -uroot -p'你自己的數(shù)據(jù)庫密碼' -e "show status" &>/dev/null 
if [ $? -ne 0 ] ;then
    systemctl stop keepalived
fi
chmod +x /etc/keepalived/mysql_check.sh

4、重啟keepalived 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 詳解標準mysql(x64) Windows版安裝過程

    詳解標準mysql(x64) Windows版安裝過程

    這篇文章主要介紹了標準mysql(x64) Windows版安裝過程,需要的朋友可以參考下
    2017-08-08
  • MySQL數(shù)據(jù)庫學習之去重與連接查詢詳解

    MySQL數(shù)據(jù)庫學習之去重與連接查詢詳解

    這篇文章主要為大家詳細介紹一下MySQL數(shù)據(jù)庫中去重與連接查詢的使用,文中的示例代碼講解詳細,對我們學習MySQL有一定幫助,需要的可以參考一下
    2022-07-07
  • 本地windows安裝兩個mysql服務器,配置主從同步

    本地windows安裝兩個mysql服務器,配置主從同步

    大型網(wǎng)站為了緩解大量的并發(fā)訪問,除了在網(wǎng)站實現(xiàn)分布式負載均衡,還會搭建服務器mysql集群技術(shù),來分擔主數(shù)據(jù)庫的壓力。在本地電腦能實現(xiàn)這樣的技術(shù)嗎,本地windows安裝兩個mysql服務器,配置主從同步也是可以實現(xiàn)的,快來跟著教程測試一下吧。
    2022-12-12
  • mysql使用物理備份安裝xtrabackup的詳細過程

    mysql使用物理備份安裝xtrabackup的詳細過程

    這篇文章主要介紹了mysql使用物理備份安裝xtrabackup的詳細過程,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • mysql下修改engine引擎的方法

    mysql下修改engine引擎的方法

    修改mysql的引擎為INNODB,可以使用外鍵,事務等功能,性能高。
    2011-08-08
  • 為什么代碼規(guī)范要求SQL語句不要過多的join

    為什么代碼規(guī)范要求SQL語句不要過多的join

    SQL中的join可以根據(jù)某些條件把指定的表給結(jié)合起來并將數(shù)據(jù)返回給客戶端,那么在項目開發(fā)中如果需要使用join語句,如何優(yōu)化提升性能?本文就來詳細的介紹一下
    2021-06-06
  • 設置MySQL自動增長從某個指定的數(shù)開始方法

    設置MySQL自動增長從某個指定的數(shù)開始方法

    下面小編就為大家?guī)硪黄O置MySQL自動增長從某個指定的數(shù)開始方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • MySQL中case?when對NULL值判斷的踩坑記錄

    MySQL中case?when對NULL值判斷的踩坑記錄

    最近在學習Hive基礎知識時,遇到了遇到了Case?When?Else?End語法,這篇文章主要給大家介紹了關于MySQL中case?when對NULL值判斷的踩坑記錄,需要的朋友可以參考下
    2021-12-12
  • mysql 8.0.15 壓縮版安裝圖文教程

    mysql 8.0.15 壓縮版安裝圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.15 壓縮版安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Mysql?optimize?table?時報錯:Temporary?file?write?fail的解決

    Mysql?optimize?table?時報錯:Temporary?file?write?fail的解決

    這篇文章主要介紹了Mysql?optimize?table?時報錯:Temporary?file?write?fail的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論