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

Mysql雙主+keepalived實現故障自動切換

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

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

Mysql雙主+keepalived實現故障自動切換

一. 項目基本情況

* 項目概述

項目要求: MySQL業務搭建雙主模式服務+keepalived 實現故障自動切換

* 基礎環境信息

主機名VIPIPOS系統CPU內存磁盤系統角色端口安裝軟件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 安裝

* 架構情況

djEvTnpCS05FWnRvblZCc1JrZzRZYlJMUHNXWl9hZ2xSZF9YUlVRZjMwS3M5Q21mRDdCakdlVFNQRjFrNHBmSXcyTV81aDJxaXVIZTk3MlA1SnctZ3N0SWxfNl9ya2oxaXk1bVZqR01XNzhoSjQ9.jpg


二. 基礎環境配置

需要在兩臺服務器上都執行。

1. 修改主機名

#2臺服務器分別執行:

cat << EOF >> /etc/hosts

10.28.3.195  mysql-01

10.28.3.196  mysql-02

EOF

2. 關閉SELinux

setenforce 0

3. 將下載好的安裝包放在服務器的/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. 創建操作系統用戶

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

#最大連接數

max_connections = 3000

#最大錯誤連接數

max_connect_errors = 10000

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

interactive_timeout = 3600

wait_timeout = 3600

#字符集

character-set-server = utf8mb4

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

skip_name_resolve = 1

#binlog

binlog_format = ROW

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

binlog_row_image = FULL

#一般數據庫中沒什么大的事務,設成1~2M,默認32kb

binlog_cache_size = 4M

#binlog 能夠使用的最大cache 內存大小

max_binlog_cache_size = 2G

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

max_binlog_size = 1G

#binlog 過期天數7

#expire_logs_days = 7

binlog_expire_logs_seconds = 604800

#GTID

gtid_mode = on

enforce_gtid_consistency = 1

#innodb_buffer

#一般設置物理存儲的 50% ~ 70%

innodb_buffer_pool_size = 8G

#當緩沖池大小大于1GB時,將innodb_buffer_pool_instances設置為大于1的值,可以提高繁忙服務器的可伸縮性

innodb_buffer_pool_instances = 8

#雙一刷盤設置

#控制 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設置(1,2) 另一臺設置為 (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

#是否啟用慢查詢日志,1為啟用,0為禁用

slow_query_log = 1

#指定慢查詢日志文件的路徑和名字

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

#慢查詢執行的秒數,必須達到此值可被記錄

long_query_time = 1

#將沒有使用索引的語句記錄到慢查詢日志

log_queries_not_using_indexes = 0

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

log_throttle_queries_not_using_indexes = 60

#對于查詢掃描行數小于此參數的SQL,將不會記錄到慢查詢日志中

min_examined_row_limit = 5000

#記錄執行緩慢的管理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. 創建數據目錄 并修改其屬主和組

mkdir -p /data/mysql/data

chown -R mysql.mysql /data/mysql

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

5. 初始化數據庫實例

/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

* 登錄數據庫

/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. 以服務方式啟動

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

# 設置開機自啟動

systemctl enable mysqld

# 重啟mysql 服務

systemctl status mysqld

systemctl restart mysqld

systemctl stop   mysqld

systemctl start  mysqld

9. 配置環境變量

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

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

source /etc/profile

10. 登錄數據

[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復制

注意事項:server-id 兩臺服務器一定要設置成不同ID

1. 在主庫建立 數據同步的賬號

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. 在從庫執行 設置主庫命令

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. 開啟 復制 并查看復制狀態

start slave;

show slave status\G;

640.jpeg

五.安裝Keepalived

1. yum安裝

yum  install -y  Keepalived

2. 配置服務

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 {

#這里通過腳本監測

script "/data/keepalived/check_mysql.sh"

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

weight -5                 #腳本結果導致的優先級變更,檢測失?。_本返回非0)則優先級 -5

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

rise 1                    #檢測1次成功就算成功。但不修改優先級

}

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

vrrp_instance VI_MYSQL {

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

interface eth0

# 狀態master主節點(這里僅僅是一個標記,真正確認VIP的是權重) 主服務器配置為MASTER,從服務器配置為BACKUP

state MASTER

virtual_router_id 50

# 優先級(數字越大 權重越大) 主服務器優先級高于從服務器

priority 100

# 檢測心跳間隔時間

advert_int 1

authentication {

auth_type PASS

auth_pass 123456  # 驗證密碼

}

virtual_ipaddress {

10.28.3.194  # 虛擬IP地址,用于連接數據庫

}

track_script {

check_mysql

}

}

配置監測MYSQL運行腳本/data/keepalived/check_mysql.sh

mkdir -p /data/keepalived/

vim /data/keepalived/check_mysql.sh

#!/bin/bash

# 檢查MySQL服務是否在運行  給一次機會看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 腳本為授權。

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

4. 啟動keepAlived

systemctl start keepalived

5. 驗證keepAlived

# 驗證前提 需要 兩臺服務器 的mysql 和 keepalived 服務 在正常可用的狀態下。

# 在master1上執行。

systemctl stop mysqld

# 在其另一臺執行ip a  看看虛擬ip 是否切換到另外節點

ip a

六.建立管理員賬號

**建立dbadmin賬號 **

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

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

FLUSH PRIVILEGES;

七.賬號密碼信息

密碼信息

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

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

點個贊
0
踩一腳
0

您在閱讀:Mysql雙主+keepalived實現故障自動切換

Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利

蘇公網安備32010402000125 蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司

南京思必達教育科技有限公司版權所有   百度統計

主站蜘蛛池模板: 亚洲va中文va欧美va爽爽 | 国产麻豆精品入口在线观看 | 91精品国产高清久久久久久91 | 色噜噜狠狠狠狠色综合久一 | 欧美性猛交ⅹxxx乱大交免费 | 亚洲一区 中文字幕 久久 | 一级毛片一 | 国产99免费视频 | 欧美母乳| 大黄网站免费 | 成人午夜毛片 | 在线视频免费观看a毛片 | 欧美视频免费在线 | 国产大片黄在线看免费 | 日本r级在线观看播放 | 色老汉首页 | 一级毛片区 | 国产日韩一区二区 | 好男人在线社区www在线视频一 | 午夜宅男宅女的免费网站 | 黄色免费在线视频 | 欧美日韩在线观看视频 | 能看黄的网站 | 亚洲成色999久久网站 | 最近2019中文字幕大全视频1 | 免费福利午夜影视网 | 1级性生活片| 日韩免费大片 | 国产一级毛片夜一级毛片 | 亚洲欧美一区二区三区国产精品 | 亚洲精品亚洲人成在线观看麻豆 | 涩涩涩视频在线观看免费 | 欧美精品videosex另类 | 在线成人播放毛片 | 国产成人一区二区三区影院免费 | 最新精品亚洲成a人在线观看 | 成人午夜视频在线播放 | 免费在线一级片 | 香蕉视频污视频 | 人人搞人人搞 | 一级特黄色毛片免费看 |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產品享最低成本,有需要聯系,
  • 卡爾蔡司鏡片優惠店,鏡片價格低
  • 蘋果原裝手機殼