免费在线a视频-免费在线观看a视频-免费在线观看大片影视大全-免费在线观看的视频-色播丁香-色播基地

Mysql雙主+keepalived實現(xiàn)故障自動切換

:2024年08月05日 DBA小強
分享到:

本文主要講述了MySQL雙主+keepalived實現(xiàn)故障自動切換的項目基本情況、基礎(chǔ)環(huán)境配置和安裝過程。兩臺服務(wù)器需要修改主機名并關(guān)閉SELinux設(shè)置,將下載好的安裝包解壓到/usr/local目錄,然后使用ln -s命令...

Mysql雙主+keepalived實現(xiàn)故障自動切換

一. 項目基本情況

* 項目概述

項目要求: MySQL業(yè)務(wù)搭建雙主模式服務(wù)+keepalived 實現(xiàn)故障自動切換

* 基礎(chǔ)環(huán)境信息

主機名VIPIPOS系統(tǒng)CPU內(nèi)存磁盤系統(tǒng)角色端口安裝軟件mysql-0110.28.3.19410.28.3.195CentOS Linux 7.9416200master-013306MySQL Servermysql-0210.28.3.19410.28.3.196CentOS Linux 7.9416200master-023306MySQL Server

* 軟件安裝清單

所需要安裝軟件版本下載地址MySQL Server8.0.33downloads.mysqlkeepalived1.3.5yum 安裝

* 架構(gòu)情況

djEvTnpCS05FWnRvblZCc1JrZzRZYlJMUHNXWl9hZ2xSZF9YUlVRZjMwS3M5Q21mRDdCakdlVFNQRjFrNHBmSXcyTV81aDJxaXVIZTk3MlA1SnctZ3N0SWxfNl9ya2oxaXk1bVZqR01XNzhoSjQ9.jpg


二. 基礎(chǔ)環(huán)境配置

需要在兩臺服務(wù)器上都執(zhí)行。

1. 修改主機名

#2臺服務(wù)器分別執(zhí)行:

cat << EOF >> /etc/hosts

10.28.3.195  mysql-01

10.28.3.196  mysql-02

EOF

2. 關(guān)閉SELinux

setenforce 0

3. 將下載好的安裝包放在服務(wù)器的/usr/local

cd /data/

#  查看安裝包情況

ls -lsrth

-- 解壓到 /usr/local

tar -vxf /data/mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz -C /usr/local/

三. 安裝mysql(二進制安裝)

1. 創(chuàng)建操作系統(tǒng)用戶

groupadd mysql

useradd -g mysql mysql

注意:這里可以是其它用戶名

2. 解壓包建立軟連接

cd /usr/local/

ln -s mysql-8.0.33-linux-glibc2.17-x86_64-minimal/ mysql

chown -R mysql.mysql /usr/local/mysql

chown -R mysql.mysql /usr/local/mysql-8.0.33-linux-glibc2.17-x86_64-minimal/

3. 編輯配置文件

vim /etc/my.cnf

增加配置文件

[client]

socket=/data/mysql/data/mysql.sock

port=3306

[mysqld]

#dir

basedir=/usr/local/mysql

datadir=/data/mysql/data

socket=/data/mysql/data/mysql.sock

log_error=/data/mysql/data/mysql.err

pid-file =/data/mysql/data/mysql.pid

#server_info

server-id=1

user=mysql

log_timestamps=system

#connection_info

#最大連接數(shù)

max_connections = 3000

#最大錯誤連接數(shù)

max_connect_errors = 10000

#MySQL默認的wait_timeout  值為8個小時, interactive_timeout參數(shù)需要同時配置才能生效

interactive_timeout = 3600

wait_timeout = 3600

#字符集

character-set-server = utf8mb4

#只能用IP地址檢查客戶端的登錄,不用主機名

skip_name_resolve = 1

#binlog

binlog_format = ROW

#如果設(shè)置為MINIMAL,則會減少記錄日志的內(nèi)容,只記錄受影響的列,但對于部分update無法flashBack

binlog_row_image = FULL

#一般數(shù)據(jù)庫中沒什么大的事務(wù),設(shè)成1~2M,默認32kb

binlog_cache_size = 4M

#binlog 能夠使用的最大cache 內(nèi)存大小

max_binlog_cache_size = 2G

#單個binlog 文件大小 默認值是1GB

max_binlog_size = 1G

#binlog 過期天數(shù)7

#expire_logs_days = 7

binlog_expire_logs_seconds = 604800

#GTID

gtid_mode = on

enforce_gtid_consistency = 1

#innodb_buffer

#一般設(shè)置物理存儲的 50% ~ 70%

innodb_buffer_pool_size = 8G

#當(dāng)緩沖池大小大于1GB時,將innodb_buffer_pool_instances設(shè)置為大于1的值,可以提高繁忙服務(wù)器的可伸縮性

innodb_buffer_pool_instances = 8

#雙一刷盤設(shè)置

#控制 innodb_flush_log_at_trx_commit redolog 寫磁盤頻率  sync_binlog 默認為1 #控制 binlog 寫磁盤頻率

innodb_flush_log_at_trx_commit = 1

sync_binlog = 1

#從庫binlog控制

log_replica_updates = ON

#自增ID設(shè)置(1,2) 另一臺設(shè)置為 (2,2)

auto_increment_offset = 1

auto_increment_increment = 2

# 表名SQL大小寫(是否對sql語句大小寫敏感,1表示不敏感 0 )

lower_case_table_names = 1

#Replication

master_info_repository =TABLE

relay_log_info_repository =TABLE

#super_read_ony =ON

binlog_transaction_dependency_tracking =WRITESET

transaction_write_set_extraction =XXHASH64

#Multi-threaded Replication

replica_parallel_type =LOGICAL_CLOCK

replica_preserve_commit_order =ON

replica_parallel_workers = 4

#是否啟用慢查詢?nèi)罩荆?為啟用,0為禁用

slow_query_log = 1

#指定慢查詢?nèi)罩疚募穆窂胶兔?/p>

slow_query_log_file =/data/mysql/data/slow.log

#慢查詢執(zhí)行的秒數(shù),必須達到此值可被記錄

long_query_time = 1

#將沒有使用索引的語句記錄到慢查詢?nèi)罩?/p>

log_queries_not_using_indexes = 0

#設(shè)定每分鐘記錄到日志的未使用索引的語句數(shù)目,超過這個數(shù)目后只記錄語句數(shù)量和花費的總時間

log_throttle_queries_not_using_indexes = 60

#對于查詢掃描行數(shù)小于此參數(shù)的SQL,將不會記錄到慢查詢?nèi)罩局?/p>

min_examined_row_limit = 5000

#記錄執(zhí)行緩慢的管理SQL,如alter table,analyze table, check table, create index, drop index, optimize table, repair table等。

log_slow_admin_statements = 0

[mysqldump]

quick

max_allowed_packet = 512M

4. 創(chuàng)建數(shù)據(jù)目錄 并修改其屬主和組

mkdir -p /data/mysql/data

chown -R mysql.mysql /data/mysql

chown -R mysql.mysql /data/mysql/data

5. 初始化數(shù)據(jù)庫實例

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize

6. 啟動實例

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

ps -ef |grep mysql

7. 登錄實例

* 找初始實例日志的臨時密碼

grep password /data/mysql/data/mysql.err

* 登錄數(shù)據(jù)庫

/usr/local/mysql/bin/mysql -uroot -p

* 登陸后必須修改密碼

mysql> alter user user() identified by 'xxxxxxxx';

* 安裝密碼策略控件

-- mysql 8.0

select * from mysql.component ;

install component 'file://component_validate_password';

8. 以服務(wù)方式啟動

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

vim /etc/init.d/mysqld

-- modify basedir  and datadir

basedir=/usr/local/mysql

datadir=/data/mysql/data

# 重新載入

systemctl daemon-reload

# 設(shè)置開機自啟動

systemctl enable mysqld

# 重啟mysql 服務(wù)

systemctl status mysqld

systemctl restart mysqld

systemctl stop   mysqld

systemctl start  mysqld

9. 配置環(huán)境變量

vim /etc/profile     -- 編輯 所有用戶的變量  對所有用戶登錄的環(huán)境變量可用

export PATH=$PATH:/usr/local/mysql/bin

source /etc/profile

10. 登錄數(shù)據(jù)

[root@centos7-2 bin]# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 8

Server version: 8.0.33 MySQL Community Server - GPL

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

四.基于GTID 搭建MySQL復(fù)制

注意事項:server-id 兩臺服務(wù)器一定要設(shè)置成不同ID

1. 在主庫建立 數(shù)據(jù)同步的賬號

CREATE USER 'repl_user'@'10.28.3.19%' IDENTIFIED BY 'XXXXXXXX';

GRANT replication slave ON *.* TO 'repl_user'@'10.28.3.19%';

FLUSH PRIVILEGES;

2. 在從庫執(zhí)行 設(shè)置主庫命令

change master to

master_host='10.28.3.195',

master_port=3306,

master_user='repl_user',

master_password='XXXXXXXX',

master_auto_position=1,

master_connect_retry=30,

get_master_public_key=1;

3. 開啟 復(fù)制 并查看復(fù)制狀態(tài)

start slave;

show slave status\G;

640.jpeg

五.安裝Keepalived

1. yum安裝

yum  install -y  Keepalived

2. 配置服務(wù)

systemctl enable keepalived

systemctl daemon-reload

3. 配置文件修改

mv /etc/keepalived/keepalived.conf  /etc/keepalived/keepalived.conf.old

vim /etc/keepalived/keepalived.conf

修改配置文件

# 全局配置

global_defs {

# 身份識別(全局唯一)

router_id lb01

}

vrrp_script check_mysql {

#這里通過腳本監(jiān)測

script "/data/keepalived/check_mysql.sh"

interval 5                #腳本執(zhí)行間隔,每5s檢測一次

weight -5                 #腳本結(jié)果導(dǎo)致的優(yōu)先級變更,檢測失敗(腳本返回非0)則優(yōu)先級 -5

fall 1                    #檢測連續(xù)2次失敗才算確定是真失敗。會用weight減少優(yōu)先級(1-255之間)

rise 1                    #檢測1次成功就算成功。但不修改優(yōu)先級

}

# 配置vrrp協(xié)議(相互探測 假設(shè)有一Keepalived宕機 它會立馬把VIP切換到另一臺機器)

vrrp_instance VI_MYSQL {

# 綁定網(wǎng)卡(所用vip必須是當(dāng)前機器的網(wǎng)卡所在的網(wǎng)段里的 eth0/eth1里面)

interface eth0

# 狀態(tài)master主節(jié)點(這里僅僅是一個標記,真正確認VIP的是權(quán)重) 主服務(wù)器配置為MASTER,從服務(wù)器配置為BACKUP

state MASTER

virtual_router_id 50

# 優(yōu)先級(數(shù)字越大 權(quán)重越大) 主服務(wù)器優(yōu)先級高于從服務(wù)器

priority 100

# 檢測心跳間隔時間

advert_int 1

authentication {

auth_type PASS

auth_pass 123456  # 驗證密碼

}

virtual_ipaddress {

10.28.3.194  # 虛擬IP地址,用于連接數(shù)據(jù)庫

}

track_script {

check_mysql

}

}

配置監(jiān)測MYSQL運行腳本/data/keepalived/check_mysql.sh

mkdir -p /data/keepalived/

vim /data/keepalived/check_mysql.sh

#!/bin/bash

# 檢查MySQL服務(wù)是否在運行  給一次機會看2后是MYSQL又開始運行

counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)

if [ "${counter}" -eq 0 ]; then

sleep 2;

counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)

if [ "${counter}" -eq 0 ]; then

killall keepalived

fi

fi

  • 注意 需要給 /data/keepalived/check_mysql.sh 腳本為授權(quán)。

chmod u+x /data/keepalived/check_mysql.sh

4. 啟動keepAlived

systemctl start keepalived

5. 驗證keepAlived

# 驗證前提 需要 兩臺服務(wù)器 的mysql 和 keepalived 服務(wù) 在正常可用的狀態(tài)下。

# 在master1上執(zhí)行。

systemctl stop mysqld

# 在其另一臺執(zhí)行ip a  看看虛擬ip 是否切換到另外節(jié)點

ip a

六.建立管理員賬號

**建立dbadmin賬號 **

CREATE USER 'dbadmin'@'%' IDENTIFIED BY 'xxxxxxxx';

GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'%' with GRANT OPTION;

FLUSH PRIVILEGES;

七.賬號密碼信息

密碼信息

賬號密碼是否可修改密碼權(quán)限備注
rootxxxxxxxx本地管理賬號只能本機登錄
dbadminxxxxxxxx遠程管理員賬號可遠程登錄
repl_userxxxxxxxx主從復(fù)制賬號需要停止復(fù)制才可以修改密碼,修改后需要重新指定主從賬號密碼。
[我要糾錯]
[編輯:宋聰喬 &發(fā)表于江蘇]
關(guān)鍵詞: Mysql 雙主 +keepalived 實現(xiàn) 故障

來源:本文內(nèi)容搜集或轉(zhuǎn)自各大網(wǎng)絡(luò)平臺,并已注明來源、出處,如果轉(zhuǎn)載侵犯您的版權(quán)或非授權(quán)發(fā)布,請聯(lián)系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內(nèi)容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責(zé),僅作分享之用,文章版權(quán)及插圖屬于原作者。

點個贊
0
踩一腳
0

您在閱讀:Mysql雙主+keepalived實現(xiàn)故障自動切換

Copyright©2013-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發(fā)布查詢平臺保留所有權(quán)利

蘇公網(wǎng)安備32010402000125 蘇ICP備14051488號-3技術(shù)支持:南京博盛藍睿網(wǎng)絡(luò)科技有限公司

南京思必達教育科技有限公司版權(quán)所有   百度統(tǒng)計

主站蜘蛛池模板: 亚洲第一网站 | 免费成人在线观看视频 | 日韩色网 | 亚洲黄色在线观看视频 | 国产黄色片视频 | 黑丝套图 | 亚洲国产激情一区二区三区 | 精品亚洲综合久久中文字幕 | 小明成人免费视频 | 精品在线视频免费 | 人人添人人麦人人爽夜欢视频 | 亚洲深夜福利视频 | 国产精品小黄鸭一区二区三区 | 草草视频在线播放 | 在线免费观看黄视频 | 热门国产xvideos中文 | 日韩毛片网站 | 国产欧美日韩精品一区二 | 日本三级特黄三级 | 日韩欧美在线精品 | 国产不卡精品一区二区三区 | 亚洲小视频在线观看 | 成人亚洲欧美综合 | 1204手机在线观看免费高清 | 成人69视频在线观看免费 | 精品国产一区二区三区麻豆小说 | 亚洲国产成人久久 | 日韩中文字幕网 | 高清一级毛片免免费看 | 国产你懂的视频 | 九草视频在线 | 天天影视涩香欲综合网 | 欧美巨大xxxx做受孕妇视频 | 欧美一区二区三区视频在线观看 | 一级a性色生活片毛片 | 日韩成a人片在线观看日本 日韩操操操 | 国产成人激情 | 国产精亚洲视频 | 天天干天天射天天爽 | 污视频免费在线播放 | 日本欧美一区二区三区不卡视频 |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產(chǎn)品享最低成本,有需要聯(lián)系,
  • 卡爾蔡司鏡片優(yōu)惠店,鏡片價格低
  • 蘋果原裝手機殼