私のMySQLDBAコース:
DBA MySQLデータベースエンジニア(2021最新版)コース:https://edu.51cto.com/course/27002.html 作成者:Zhang Yanfeng、ソースを示してください
この章では、主にMySQL + Keepalived高可用性アーキテクチャの実際の戦闘を紹介し、詳細な操作プロセスをリストします。MySQLデータベースは間違いなく日常の運用と保守で公開されるため、⑥MySQLアーキテクチャと日常の運用と保守を実行することが給与増加の鍵となります。
DBA MySQLデータベースエンジニア(2021年の最新バージョン)コースでは、データベース関連の知識、原則、実際の戦闘を、単純なものから深いものまで紹介します。リレーショナルデータベース+非リレーショナルデータベース(MySQL、MongoDB、ES、Redis)の詳細な説明。これは、MySQLデータベースのすべてのコア知識ポイント、原則と実際の戦闘、および実際の実稼働環境のケースの説明をカバーしています。24時間のアフターセールスQ&Aが提供されます。張先生は皆を離陸させます。皆が来て相談することを歓迎します。
MySQL +キープアライブ構成:
環境の説明
4台のサーバーを準備する
周囲 |
IP |
ソフトウェア |
説明 |
db01メインライブラリ |
192.168.43.101 |
mysql、keepalived |
101と102はマスターとスレーブです 103と104はマスターとスレーブです |
db02スレーブライブラリ |
192.168.43.102 |
mysql |
|
db03メインライブラリ |
192.168.43.103 |
mysql、keepalived |
|
db04スレーブライブラリ |
192.168.43.104 |
mysql |
VIP:192.168.43.200
インストールされている4つのmysqlサーバーを準備します。操作は次のとおりです。
1.ソフトウェアをダウンロードして/ server / toolsにアップロードします
mkdir -p / server / tools
cd / server / tools /
パッケージをアップロード
2.解凍ソフトウェア
tar zxvf mysql-5.7.31-el7-x86_64.tar.gz
mkdir / application
mv mysql-5.7.31-el7-x86_64 / application / mysql
yum remove mariadb-libs -y
useradd -s / sbin / nologin mysql
echo "export PATH = / application / mysql / bin:$ PATH" >> / etc / profile
ソース/ etc / profile
mysql -V
3.データパスを作成して承認します
mkfs.xfs / dev / sdb
[root @ localhost〜] #blkid
/ dev / sdb:UUID = "4f4bed6c-4d81-434d-918d-8148a6591d84" TYPE = "xfs"
[root @ localhost〜] #vi / etc / fstab
UUID = "4f4bed6c-4d81-434d-918d-8148a6591d84" / dataxfsデフォルト00
mkdir / data
マウント-a
4.承認
chown -R mysql.mysql / application / *
chown -R mysql.mysql / data
5.データの初期化(システムデータの作成)
mkdir / data / mysql / data -p
chown -R mysql.mysql / data
mysqld --initialize-insecure --user = mysql --basedir = / application / mysql --datadir = / data / mysql / data
6.構成ファイルの準備
cat> /etc/my.cnf << EOF
[mysqld]
user = mysql
basedir = / application / mysql
datadir = / data / mysql / data
ソケット= / tmp / mysql.sock
server_id = 6
ポート= 3306
[mysql]
ソケット= / tmp / mysql.sock
EOF
7、データベースを起動します
cat> /etc/systemd/system/mysqld.service << EOF
[単位]
Description = MySQL Server
Documentation = man:mysqld(8)
Documentation = http://dev.mysql.com/doc/refman/en/using-systemd.html
After = network.target
After = syslog.target
[インストール]
WantedBy = multi-user.target
[サービス]
User = mysql
Group = mysql
ExecStart = / application / mysql / bin / mysqld --defaults-file = / etc / my.cnf
LimitNOFILE = 5000
EOF
systemctl restart mysqld.service
ヒント:終了後、vmを使用している場合は、スナップショット操作を実行できます
1.環境(すべてのノード)をクリーンアップします
mkdir / data / binlog
chown mysql.mysql / data / *
pkill mysqld
\ rm -rf / data / mysql / data / *
\ rm -rf / data / binlog / *
2.構成ファイルを準備します
#db01:
cat> /etc/my.cnf << EOF
[mysqld]
basedir = / application / mysql /
datadir = / data / mysql / data
ソケット= / tmp / mysql.sock
server_id = 1
ポート= 3306
secure-file-priv = / tmp
autocommit = 0
log_bin = / data / binlog / mysql-bin
binlog_format = row
gtid-mode = on
強制-gtid-consistency = true
log-slave-updates = 1
[mysql]
プロンプト= db01 [\\ d]>
EOF
#db02:
cat> /etc/my.cnf << EOF
[mysqld]
basedir = / application / mysql
datadir = / data / mysql / data
ソケット= / tmp / mysql.sock
server_id = 2
ポート= 3306
secure-file-priv = / tmp
autocommit = 0
log_bin = / data / binlog / mysql-bin
binlog_format = row
gtid-mode = on
強制-gtid-consistency = true
log-slave-updates = 1
[mysql]
プロンプト= db02 [\\ d]>
EOF
#db03:
cat> /etc/my.cnf << EOF
[mysqld]
basedir = / application / mysql
datadir = / data / mysql / data
ソケット= / tmp / mysql.sock
server_id = 3
ポート= 3306
secure-file-priv = / tmp
autocommit = 0
log_bin = / data / binlog / mysql-bin
binlog_format = row
gtid-mode = on
強制-gtid-consistency = true
log-slave-updates = 1
[mysql]
プロンプト= db03 [\\ d]>
EOF
#db04:
cat> /etc/my.cnf << EOF
[mysqld]
basedir = / application / mysql
datadir = / data / mysql / data
ソケット= / tmp / mysql.sock
server_id = 4
ポート= 3306
secure-file-priv = / tmp
autocommit = 0
log_bin = / data / binlog / mysql-bin
binlog_format = row
gtid-mode = on
強制-gtid-consistency = true
log-slave-updates = 1
[mysql]
プロンプト= db04 [\\ d]>
EOF
3.データを初期化します(4ユニットすべてが実行されます)
mysqld --initialize-insecure --user = mysql --basedir = / application / mysql --datadir = / data / mysql / data
4.データベースを起動します(3つすべてが実行されます)
systemctl restart mysqld
5.マスタースレーブを構築します
db01 <==> db03
db01 <== db02
db03 <== db04
#db01およびdb03:
*。*のレプリケーションスレーブを '123'で識別されるrepl @ '192.168.43。%'に付与します。
#db01:
マスターを
master_host = '192.168.43.103'、
master_user = 'repl'、
master_password = '123'、
MASTER_AUTO_POSITION = 1;
スレーブを開始します。
#db02:
マスターを
master_host = '192.168.43.101'、
master_user = 'repl'、
master_password = '123'、
MASTER_AUTO_POSITION = 1;
スレーブを開始します。
#db03:
マスターを
master_host = '192.168.43.101'、
master_user = 'repl'、
master_password = '123'、
MASTER_AUTO_POSITION = 1;
スレーブを開始します。
#db04:
マスターを
master_host = '192.168.43.103'、
master_user = 'repl'、
master_password = '123'、
MASTER_AUTO_POSITION = 1;
スレーブを開始します。
6.マスター/スケジュールされたKeepalived(101および103マシン)を構成します(マスターライブラリで構成します)
101台のマシン:
[root @ master〜] #yum -y install keepalived
[root @ master〜] #vi /etc/keepalived/keepalived.conf
!キープアライブの構成ファイル
global_defs {
router_id mysql1
}
vrrp_script check_run {
スクリプト "/etc/keepalived/check_mysql.sh"
間隔5
}
vrrp_instance VI_1 {
状態マスター
インターフェイスens33
virtual_router_id 88
優先度100
advert_int 1
認証{
auth_type PASS
auth_pass 1111
}
track_script {
check_run
}
virtual_ipaddress {
192.168.43.200
}
}
[root @ master〜] #systemctl restart keepalived
103台のマシン:
[root @ backup〜] #yum -y install keepalived
[root @ backup〜] #vi /etc/keepalived/keepalived.conf
!キープアライブの構成ファイル
global_defs {
router_id mysql2
}
vrrp_script check_run {
スクリプト "/etc/keepalived/check_mysql.sh"
間隔5
}
vrrp_instance VI_1 {
状態マスター
インターフェイスens33
virtual_router_id 88
優先度50
advert_int 1
認証{
auth_type PASS
auth_pass 1111
}
track_script {
check_run
}
virtual_ipaddress {
192.168.43.200
}
}
[root @ backup〜] #systemctl restart keepalived
7. mysqlステータス検出スクリプト(2つのMySQLで同じスクリプト)を構成します
[root @ master〜] #vi /etc/keepalived/check_mysql.sh
#!/ bin / bash
/ usr / bin / mysql -uroot -e "ステータスの表示"&> / dev / null
if [$?!= 0];次に
systemctl stopkeepalived
あります
[root @ master〜] #chmod a + x /etc/keepalived/check_mysql.sh
[root @ master〜] #systemctl restart keepalived
8.テスト
C:\ Users \岩峰> mysql -urepl -p123 -h 192.168.43.200
mysql>データベースdb1を作成します。
クエリOK、影響を受ける1行(0.00秒)
mysql>データベースを表示します。
+ -------------------- +
| データベース|
+ -------------------- +
| information_schema |
| db1 |
| mysql |
| performance_schema |
| テスト|
+ -------------------- +
セットで5行(0.00秒)
[root @ master〜] #systemctl stop mariadb
mysql>データベースを表示します。
+ -------------------- +
| データベース|
+ -------------------- +
| information_schema |
| mysql |
| performance_schema |
| テスト|
+ -------------------- +
セットで4行(0.00秒)