久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何進(jìn)行sandbox和MHA的測(cè)試

共計(jì) 5785 個(gè)字符,預(yù)計(jì)需要花費(fèi) 15 分鐘才能閱讀完成。

本篇文章為大家展示了如何進(jìn)行 sandbox 和 MHA 的測(cè)試,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

昨天寫了一篇使用腳本搭建一主多從的腳本之后,奇龍兄建議我看看 sandbox 的功能,可以秒級(jí)搭建主從環(huán)境,簡(jiǎn)單試了下,確實(shí)很好很強(qiáng)大。

  環(huán)境部署其實(shí)很簡(jiǎn)單,如果有網(wǎng)絡(luò)環(huán)境,直接 cpan 一個(gè)命令即可。或者使用 wget 的方式來安裝也可以。

安裝 sandbox

使用 cpan 來安裝,非常簡(jiǎn)單,就是下面的命令:

cpan MySQL::Sandbox

一些日志的輸出之后就提示你安裝成功,在 /usr/local/bin 下面就會(huì)多幾個(gè) make_sandbox 相關(guān)的命令。

[root@grtest bin]# ll make*
-r-xr-xr-x 1 root root  8681 Apr 12 16:16 make_multiple_custom_sandbox
-r-xr-xr-x 1 root root 13862 Apr 12 16:16 make_multiple_sandbox
-r-xr-xr-x 1 root root 22260 Apr 12 16:16 make_replication_sandbox
-r-xr-xr-x 1 root root 11454 Apr 12 16:16 make_sandbox
-r-xr-xr-x 1 root root  4970 Apr 12 16:16 make_sandbox_from_installed
-r-xr-xr-x 1 root root  7643 Apr 12 16:16 make_sandbox_from_source
-r-xr-xr-x 1 root root  5772 Apr 12 16:16 make_sandbox_from_url

另外一種方式是通過安裝包的方式,可以通過編譯安裝完成。

可以使用 wget 下載安裝包:

# wget https://launchpad.net/mysql-sandbox/mysql-sandbox-3/mysql-sandbox-3/+download/MySQL-Sandbox-3.0.25.tar.gz 然后使用 make,make install 的方式即可安裝。

比如我要部署一個(gè) MySQL 數(shù)據(jù)庫環(huán)境,我們給定一個(gè)二進(jìn)制安裝包,直接 make_sandbox 即可。

# make_sandbox mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 這個(gè)命令有一點(diǎn)需要說明,就是考慮到安全,默認(rèn)使用 root 是敏感的, 會(huì)拋出下面的警告。主要就是向你確認(rèn)是否確實(shí)要這兒做,如果是一個(gè)線上環(huán)境,操作的風(fēng)險(xiǎn)很高,所以就特別提示,需要你設(shè)定一個(gè)變量值,確認(rèn)之后才可以。

# make_sandbox percona-server-5.6.25-73.1.tar.gz
MySQL Sandbox should not run as root

If you know what you are doing and want to
 run as root nonetheless, please set the environment
variable SANDBOX_AS_ROOT to a nonzero value 我們就給這個(gè)變量給一個(gè)值,比如 go

export SANDBOX_AS_ROOT=go 一套數(shù)據(jù)庫環(huán)境就自動(dòng)部署出來了,難得的是會(huì)自動(dòng)生成對(duì)應(yīng)的快捷腳本,如果下個(gè)做一些批量管理類的任務(wù),就非常快捷方便,這里的數(shù)據(jù)庫安裝目錄是 msb_5_7_17, 數(shù)據(jù)文件都在這個(gè)目錄下面。

[root@grtest sandboxes]# ll
total 48
-rwxr-xr-x 1 root root  54 Apr 12 16:35 clear_all
drwxr-xr-x 4 root root 4096 Apr 12 16:35 msb_5_7_17
-rw-r–r– 1 root root 3621 Apr 12 16:35 plugin.conf
-rwxr-xr-x 1 root root  56 Apr 12 16:35 restart_all
-rwxr-xr-x 1 root root 2145 Apr 12 16:35 sandbox_action
-rwxr-xr-x 1 root root  58 Apr 12 16:35 send_kill_all
-rwxr-xr-x 1 root root  54 Apr 12 16:35 start_all
-rwxr-xr-x 1 root root  55 Apr 12 16:35 status_all
-rwxr-xr-x 1 root root  53 Apr 12 16:35 stop_all
-rwxr-xr-x 1 root root 4514 Apr 12 16:35 test_replication
-rwxr-xr-x 1 root root  52 Apr 12 16:35 use_all 連接數(shù)據(jù)庫,只需要一個(gè) use 命令即可。

 ./use
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.17 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
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 [localhost] {msandbox} ((none)) 其它的啟停命令也是如此, 非常快捷方便。

而要搭建主從環(huán)境,操作步驟簡(jiǎn)單, 輸出日志也很簡(jiǎn)單, 比如我指定一個(gè)已經(jīng)解壓的二進(jìn)制目錄 5.7.17, 就會(huì)默認(rèn)創(chuàng)建一主兩從的環(huán)境。

# export SANDBOX_AS_ROOT=go
# make_replication_sandbox 5.7.17
installing and starting master
installing slave 1
installing slave 2
starting slave 1
.. sandbox server started
starting slave 2
. sandbox server started
initializing slave 1
initializing slave 2
replication directory installed in $HOME/sandboxes/rsandbox_5_7_17 查看主從的狀態(tài),使用 status_all 即可。

# ./status_all
REPLICATION rsandbox_5_7_17
master on
port: 20192
node1 on
port: 20193
node2 on
port: 20194

MHA 快速測(cè)試

  當(dāng)然上面的工作可以使用 sandbox 來做,也可以使用自定義腳本來做,各有好處,相對(duì)來說,手工腳本的方式最起碼自己更清楚一些。

  動(dòng)態(tài)搭建一主多從,我的一個(gè)設(shè)想就是快速模擬 MHA 的環(huán)境。

我們先創(chuàng)建一個(gè)數(shù)據(jù)庫用戶 mha_test,作為配置中的連接用戶

GRANT ALL PRIVILEGES ON *.* TO mha_test @ % identified by mha_test 然后指定一個(gè)配置文件,內(nèi)容如下:

# cat /home/mha/conf/app1.cnf
[server default]
manager_workdir=/home/mha/manager
manager_log=/home/mha/manager/app1/manager.log
port=24801
user=mha_test
password=mha_test
repl_user=rpl_user
repl_password=rpl_pass

[server1]
hostname=127.0.0.1
port=24801
candidate_master=1

[server2]
hostname=127.0.0.1
candidate_master=1
port=24802

[server3]
hostname=127.0.0.1
candidate_master=1
port=24803 因?yàn)槭峭慌_(tái)服務(wù)器,所以能夠快速模擬 MHA 的容災(zāi)切換和快速恢復(fù)。

使用如下的腳本來檢測(cè) SSH 的情況。

#  masterha_check_ssh –conf=/home/mha/conf/app1.cnf 基本就是如下的 ssh 連接請(qǐng)檢查。

Wed Apr 12 18:35:52 2017 – [debug]  Connecting via SSH from root@127.0.0.1(127.0.0.1:22) to root@127.0.0.1(127.0.0.1:22)..
Wed Apr 12 18:35:52 2017 – [debug]  ok.
Wed Apr 12 18:35:52 2017 – [debug]  Connecting via SSH from root@127.0.0.1(127.0.0.1:22) to root@127.0.0.1(127.0.0.1:22)..
Wed Apr 12 18:35:52 2017 – [debug]  ok.
Wed Apr 12 18:35:52 2017 – [info] All SSH connection tests passed successfully. 檢查主從的復(fù)制情況,可以使用如下的命令

masterha_check_repl –conf=/home/mha/conf/app1.cnf

輸出日志部分如下,可以看到主從關(guān)系和復(fù)制檢測(cè)都可以清晰看到。

Wed Apr 12 18:35:29 2017 – [info]
127.0.0.1(127.0.0.1:24801) (current master)
 +–127.0.0.1(127.0.0.1:24802)
 +–127.0.0.1(127.0.0.1:24803)

Wed Apr 12 18:35:29 2017 – [info] Checking replication health on 127.0.0.1..
Wed Apr 12 18:35:29 2017 – [info]  ok.
Wed Apr 12 18:35:29 2017 – [info] Checking replication health on 127.0.0.1..
Wed Apr 12 18:35:29 2017 – [info]  ok.
Wed Apr 12 18:35:29 2017 – [warning] master_ip_failover_script is not defined.
Wed Apr 12 18:35:29 2017 – [warning] shutdown_script is not defined.
Wed Apr 12 18:35:29 2017 – [info] Got exit code 0 (Not master dead).

MySQL Replication Health is OK. 接著我們啟動(dòng) MHA-manager

 nohup masterha_manager –conf=/home/mha/conf/app1.cnf  /tmp/mha_manager.log 2 1 如果檢查目前 MHA 的狀態(tài),可以使用如下的命令:

# masterha_check_status –conf=/home/mha/conf/app1.cnf
app1 (pid:11701) is running(0:PING_OK), master:127.0.0.1 這個(gè)時(shí)候我們來破壞一下,可以手工 Kill 掉 24081 端口的 mysqld_safe 和 mysqld 服務(wù)。

這個(gè)就會(huì)從日志中發(fā)現(xiàn) MHA 開始工作了。

tail -f /home/mha/manager/app1/manager.log
Wed Apr 12 22:54:53 2017 – [info] Resetting slave info on the new master..
Wed Apr 12 22:54:53 2017 – [info]  127.0.0.1: Resetting slave info succeeded.
Wed Apr 12 22:54:53 2017 – [info] Master failover to 127.0.0.1(127.0.0.1:24802) completed successfully.
Wed Apr 12 22:54:53 2017 – [info]
—– Failover Report —–
app1: MySQL Master failover 127.0.0.1(127.0.0.1:24801) to 127.0.0.1(127.0.0.1:24802) succeeded
Master 127.0.0.1(127.0.0.1:24801) is down!
Check MHA Manager logs at grtest:/home/mha/manager/app1/manager.log for details.
Started automated(non-interactive) failover.
Selected 127.0.0.1(127.0.0.1:24802) as a new master.
127.0.0.1(127.0.0.1:24802): OK: Applying all logs succeeded
127.0.0.1(127.0.0.1:24803): OK: Slave started, replicating from 127.0.0.1(127.0.0.1:24802)
127.0.0.1(127.0.0.1:24802): Resetting slave info succeeded.
Master failover to 127.0.0.1(127.0.0.1:24802) completed successfully. 這樣一來 24802 端口的 mysql 服務(wù)會(huì)自動(dòng)接管,由從庫變?yōu)橹鲙臁6?24803 端口的從庫會(huì)自動(dòng)從 24802 端口的服務(wù)接受數(shù)據(jù)變更。

整個(gè)過程有條不紊,會(huì)分為 5 個(gè)階段來做。

上述內(nèi)容就是如何進(jìn)行 sandbox 和 MHA 的測(cè)試,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-19發(fā)表,共計(jì)5785字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 建瓯市| 涞水县| 铁岭县| 昆山市| 大余县| 深水埗区| 广昌县| 仁寿县| 大竹县| 会泽县| 利津县| 安庆市| 山阳县| 和林格尔县| 桃园县| 喀喇沁旗| 吐鲁番市| 青田县| 华亭县| 滨海县| 岳阳市| 子洲县| 宁化县| 确山县| 比如县| 台中市| 鹤庆县| 新闻| 稷山县| 东阿县| 济阳县| 四会市| 汝城县| 德安县| 宿州市| 台北县| 固始县| 东至县| 威信县| 夏津县| 陇川县|