1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        MySQL-Xenon高可用

        共 9586字,需瀏覽 20分鐘

         ·

        2024-05-19 20:30


        在MySQL5.5及以下傳統(tǒng)復(fù)制的時(shí)代,MHA在MySQL高可用應(yīng)用中非常成熟,在MySQL5.6的GTID時(shí)代開啟以后,MHA卻沒有與新的MySQL一起順應(yīng)潮流,MHA最近一次發(fā)版是2018年。于是RadonDB開發(fā)團(tuán)隊(duì)研發(fā)并開源新一代MySQL集群高可用工具?;赗aft協(xié)議進(jìn)行無(wú)中心化選主,實(shí)現(xiàn)主從秒級(jí)切換;基于semi-sync機(jī)制,保障數(shù)據(jù)不丟失,實(shí)現(xiàn)數(shù)據(jù)強(qiáng)一致性。并結(jié)合MySQL5.7及以上版本并行復(fù)制特性,實(shí)現(xiàn)binlog并行回放那個(gè),大大降低從庫(kù)延遲。

        代碼托管:https://github.com/radondb/xenon

        Xenon 實(shí)驗(yàn)環(huán)境

        • master db01 192.168.3.112

        • slave db02 192.168.3.113

        • salve db03 192.168.3.114

        1、配置基于增強(qiáng)半同步的主從復(fù)制,配置過(guò)程詳見《MySQL-主從復(fù)制》中。

        2、三臺(tái)主機(jī)安裝 xtrabackup

        rpm -ivh percona-xtrabackup-80-8.0.13-1.el7.x86_64.rpm

        3、三臺(tái)主機(jī)配置互信,免密ssh登錄

        4、三臺(tái)主機(jī)安裝 go 環(huán)境

        go 下載地址:https://golang.google.cn/dl/

        # tar -zxvf go1.14.8.linux-amd64.tar.gz -C /opt/# vim /etc/profileexport GOPATH=/opt/go/binexport PATH=$PATH:$GOPATH

        5、安裝Xenon

        下載地址:https://github.com/radondb/xenon/

        # unzip xenon-master.zip# make

        6、三臺(tái)主機(jī)配置 Xenon

        # mkdir /opt/xenon# cp -r /root/xenon-master/bin/ /opt/xenon/# mkdir /opt/xenon/etc# cp /root/xenon-master/conf/xenon-sample.conf.json /opt/xenon/etc/xenon.json# echo "/opt/xenon/etc/xenon.json" > /opt/xenon/bin/config.path# chown mysql.mysql /opt/xenon/ -R

        修改 xenon.json 文件

        # more /opt/xenon/etc/xenon.json {  "server":  {    "endpoint":"192.168.3.114:8801"  },
        "raft": { "meta-datadir":"raft.meta", "leader-start-command":"sudo /sbin/ip a a 192.168.3.110/24 dev ens33 && arping -c 3 -A 192.168.3.110 -I ens33", "leader-stop-command":"sudo /sbin/ip a d 192.168.3.110/24 dev ens33" },
        "mysql": { "admin":"root", "version":"mysql80", "passwd":"123", "host":"192.168.3.114", "port":3306, "basedir":"/opt/mysql", "defaults-file":"/opt/mysql/.my.cnf", "ping-timeout":1000, "master-sysvars":"tokudb_fsync_log_period=default;sync_binlog=default;innodb_flush_log_at_trx_commit=default", "slave-sysvars" : "tokudb_fsync_log_period=1000;sync_binlog=1000;innodb_flush_log_at_trx_commit=2" },
        "replication": { "user":"repl", "passwd":"repl" },
        "backup": { "ssh-host":"192.168.3.114", "ssh-user":"root", "ssh-passwd":"root123", "basedir":"/opt/mysql", "backupdir":"/opt/mysql/data", "xtrabackup-bindir":"/bin", "max-allowed-local-trx-count": 1000, "backup-use-memory": "1GB", "backup-parallel": 4
        },
        "rpc": { "request-timeout":500 },
        "log": { "level":"INFO" }}

        三臺(tái)主機(jī)啟動(dòng) xenon ,并添加節(jié)點(diǎn)。官方建議Xenon和MySQL使用同一用戶啟動(dòng)。

        以普通用戶啟動(dòng)要配置sudo

        ## NOPASSWD 免輸入密碼sudo,不加此選項(xiàng),則啟動(dòng)失敗# visudomysql   ALL=(ALL)       NOPASSWD: /usr/sbin/ip

        在 mysql 用戶下啟動(dòng),xenon會(huì)自動(dòng)拉起mysql進(jìn)程服務(wù)

        # su - mysql$ nohup /opt/xenon/bin/xenon -c /opt/xenon/etc/xenon.json > /opt/xenon/xenon.log 2>&1 &$ ./xenoncli cluster add 192.168.3.112:8801,192.168.3.113:8801,192.168.3.114:8801

        查看集群狀態(tài)

        $ ./xenoncli cluster status+--------------------+-------------------------------+---------+---------+--------------------------+---------------------+----------------+--------------------+|         ID         |             Raft              | Mysqld  | Monitor |          Backup          |        Mysql        | IO/SQL_RUNNING |      MyLeader      |+--------------------+-------------------------------+---------+---------+--------------------------+---------------------+----------------+--------------------+| 192.168.3.112:8801 | [ViewID:3 EpochID:0]@LEADER   | RUNNING | ON      | state:[NONE]?            | [ALIVE] [READWRITE] | [true/true]    | 192.168.3.112:8801 ||                    |                               |         |         | LastError:               |                     |                |                    |+--------------------+-------------------------------+---------+---------+--------------------------+---------------------+----------------+--------------------+| 192.168.3.113:8801 | [ViewID:3 EpochID:0]@FOLLOWER | RUNNING | ON      | state:[NONE]?            | [ALIVE] [READONLY]  | [true/true]    | 192.168.3.112:8801 ||                    |                               |         |         | LastError:               |                     |                |                    |+--------------------+-------------------------------+---------+---------+--------------------------+---------------------+----------------+--------------------+| 192.168.3.114:8801 | [ViewID:3 EpochID:0]@FOLLOWER | RUNNING | ON      | state:[NONE]?            | [ALIVE] [READONLY]  | [true/true]    | 192.168.3.112:8801 ||                    |                               |         |         | LastError:               |                     |                |                    |+--------------------+-------------------------------+---------+---------+--------------------------+---------------------+----------------+--------------------+$ ./xenoncli cluster mysql+--------------------+----------+-------+-----------+------------------------+----------------+----------------+------------+|         ID         |   Raft   | Mysql |  Option   |  Master_Log_File/Pos   | IO/SQL_Running | Seconds_Behind | Last_Error |+--------------------+----------+-------+-----------+------------------------+----------------+----------------+------------+| 192.168.3.112:8801 | LEADER   | ALIVE | READWRITE | [mysql-bin.000008/388] | [true/true]    |              0 |            |+--------------------+----------+-------+-----------+------------------------+----------------+----------------+------------+| 192.168.3.113:8801 | FOLLOWER | ALIVE | READONLY  | [mysql-bin.000008/388] | [true/true]    |              0 |            |+--------------------+----------+-------+-----------+------------------------+----------------+----------------+------------+| 192.168.3.114:8801 | FOLLOWER | ALIVE | READONLY  | [mysql-bin.000008/388] | [true/true]    |              0 |            |+--------------------+----------+-------+-----------+------------------------+----------------+----------------+------------+
        關(guān)閉集群``` shell# ./xenoncli mysql stopmonitor# ./xenoncli mysql shutdown# pkill xenon

        Xenon 備份

        $ /opt/xenon/bin/xenoncli mysql backup --to=/opt/mysql/9876 2023/06/18 15:48:41.643361 callx.go:92:       [WARNING]   get.client.error[dial tcp 192.168.3.113:8801: connect: connection refused] 2023/06/18 15:48:41.643473 callx.go:163:       [WARNING]   get.client.error[dial tcp 192.168.3.113:8801: connect: connection refused] 2023/06/18 15:48:41.652513 callx.go:183:       [WARNING]   best.slave.can't.found.set.to.leader[192.168.3.112:8801] 2023/06/18 15:48:41.652531 mysql.go:562:       [WARNING]   S1-->found.the.best.backup.host[192.168.3.112:8801].... 2023/06/18 15:48:41.783611 mysql.go:576:       [WARNING]   S2-->rm.and.mkdir.backupdir[/opt/mysql/9876] 2023/06/18 15:48:41.783637 mysql.go:581:       [WARNING]   S3-->xtrabackup.begin.... 2023/06/18 15:48:41.784505 callx.go:442:       [WARNING]   rebuildme.backup.req[&{From: BackupDir:/opt/mysql/9876 SSHHost:192.168.3.114 SSHUser:mysql SSHPasswd:mysql SSHPort:22 IOPSLimits:100000 XtrabackupBinDir:/usr/bin}].from[192.168.3.112:8801] 2023/06/18 15:48:42.804183 common.go:41:       [PANIC]   rsp[cmd.outs.[completed OK!].found[0]!=expects[1]] != [OK]panic:    [PANIC]   rsp[cmd.outs.[completed OK!].found[0]!=expects[1]] != [OK]
        goroutine 1 [running]:xbase/xlog.(*Log).Panic(0xc0000ec170, 0x8dd965, 0xf, 0xc0000e1d68, 0x1, 0x1) /root/xenon-master/src/xbase/xlog/xlog.go:164 +0x153cli/cmd.RspOK(...) /root/xenon-master/src/cli/cmd/common.go:41cli/cmd.mysqlDoBackupCommandFn(0xc0000fe000, 0xc0000ec200, 0x0, 0x1) /root/xenon-master/src/cli/cmd/mysql.go:584 +0x481vendor/github.com/spf13/cobra.(*Command).execute(0xc0000fe000, 0xc0000ec1e0, 0x1, 0x1, 0xc0000fe000, 0xc0000ec1e0) /root/xenon-master/src/vendor/github.com/spf13/cobra/command.go:603 +0x22evendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc7f800, 0x1, 0xc0000e1f78, 0x40746f) /root/xenon-master/src/vendor/github.com/spf13/cobra/command.go:689 +0x2bcvendor/github.com/spf13/cobra.(*Command).Execute(...) /root/xenon-master/src/vendor/github.com/spf13/cobra/command.go:648main.main() /root/xenon-master/src/cli/cli.go:43 +0x31

        從輸出日志信息看是備份失敗,經(jīng)排查是因?yàn)閤enon.json配置中 mysql 部分的 host 參數(shù)導(dǎo)致。

           
          "mysql":  {    "admin":"root",    "version":"mysql80",    "passwd":"123",    "host":"192.168.3.114",     # 設(shè)置為主機(jī)IP地址,設(shè)置為localhost導(dǎo)致備份失敗    "port":3306,    "basedir":"/opt/mysql",    "defaults-file":"/opt/mysql/.my.cnf",                "ping-timeout":1000,                "master-sysvars":"tokudb_fsync_log_period=default;sync_binlog=default;innodb_flush_log_at_trx_commit=default",                "slave-sysvars" : "tokudb_fsync_log_period=1000;sync_binlog=1000;innodb_flush_log_at_trx_commit=2"  },

        鏈接:https://www.cnblogs.com/zbc230/p/17486690.html

        (版權(quán)歸原作者所有,侵刪)

        瀏覽 105
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            影音先锋你懂得 | 少妇和小鲜肉高潮毛片 | 亚洲日、韩aⅴ | 成人综合在线视频 | 国产黄色视 | 麻花传MD0714苏语棠的歌词 | 日本免费版网站nba | 男人插女人逼动态图 | 桃色激情网| 亚洲中文娱乐久久 |