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

如何進行mysql的galera

145次閱讀
沒有評論

共計 5367 個字符,預計需要花費 14 分鐘才能閱讀完成。

本篇文章為大家展示了如何進行 mysql 的 galera_cluster 安裝配置,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

本次試驗都是用 rsync 同步的,xtrabackup 第三個節點起不來,而且在做將數據文件全部刪除恢復時 xtrabackup 不能恢復
SST:全量恢復
IST : 增量恢復

注意事項:
1、使用 Galera 必須要給 MySQL-Server 打 wsrep 補丁??梢灾苯邮褂霉俜教峁┑囊呀洿蚝醚a丁的 MySQL 安裝包,如果服務器上已經安裝了標準版 MYSQL,需要先卸載再重新安裝。卸載前注意備份數據。
2、MySQL/Galera 集群只支持 InnoDB 存儲引擎。如果你的數據表使用的 MyISAM,需要轉換為 InnoDB,否則記錄不會在多臺復制??梢栽趥浞堇蠑祿r,為 mysqldump 命令添加–skip-create-options 參數,這樣會去掉表結構的聲明信息,再導入集群時自動使用 InnoDB 引擎。不過這樣會將 AUTO_INCREMENT 一并去掉,已有 AUTO_INCREMENT 列的表,必須在導入后重新定義。
3、MySQL 5.5 及以下的 InnoDB 引擎不支持全文索引(FULLTEXT indexes),如果之前使用 MyISAM 并建了全文索引字段的話,只能安裝 MySQL 5.6 with wsrep patch。
4、所有數據表必須要有主鍵(PRIMARY), 如果沒有主鍵可以建一條 AUTO_INCREMENT 列。
5、MySQL/Galera 集群不支持下面的查詢:LOCK/UNLOCK TABLES,不支持下面的系統變量:character_set_server、utf16、utf32 及 ucs2。
6、數據庫日志不支持保存到表,只能輸出到文件(log_output = FILE),不能設置 binlog-do-db、binlog-ignore-db。
7、跟其他集群一樣,為了避免節點出現腦裂而破壞數據,建議 Galera 集群最低添加 3 個節點。
8、在高并發的情況下,多主同時寫入時可能會發生事務沖突,此時只有一個事務請求會成功,其他的全部失敗??梢栽趯懭?/ 更新失敗時,自動重試一次,再返回結果。
9、節點中每個節點的地位是平等的,沒有主次,向任何一個節點讀寫效果都是一樣的。實際可以配合 VIP/LVS 或 HA 使用,實現高可用性。
10、如果集群中的機器全部重啟,如機房斷電,第一臺啟動的服務器必須以空地址啟動:mysqld_safe –wsrep_cluster_address=gcomm:// /dev/null

yum install libaio gcc gcc-c++ boost-devel scons check-devel openssl-devel

1、# cat /etc/hosts
172.16.100.131   node1
172.16.100.224   node2
172.16.99.161 node3

2、修改文件描述符 65535
# vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

3、# vim /etc/sysctl.conf 
fs.file-max=655350
net.ipv4.ip_local_port_range = 1025 65000
net.ipv4.tcp_tw_reuse = 1

# sysctl -p

4、安裝 percona xtrabackup 備份工具

如二進制安裝的
# tar zxvf percona-xtrabackup-2.3.2-Linux-x86_64.tar.gz
# cd percona-xtrabackup-2.3.2-Linux-x86_64/bin/
# cp -a * /usr/bin/
rpm 則略

5、下載地址
Codership 下載地址:
http://releases.galeracluster.com/binary/mysql-wsrep-5.6.31-25.16-linux-x86_64.tar.gz
# tar xvfz mysql-wsrep-5.6.31-25.16-linux-x86_64.tar.gz 
# mv mysql-wsrep-5.6.31-25.16-linux-x86_64 /usr/local/mysql

6、安裝 Galera 復制插件
https://launchpad.net/galera/3.x/25.3.5/+download/galera-25.3.5-src.tar.gz
tar zxvf galera-*
cd galera-*
scons
cp garb/garbd /usr/local/mysql/bin/
cp libgalera_smm.so /usr/local/mysql/lib/plugin/
注:scons yum 源中沒有找到,下載的 tar 包
# python setup.py install  

7、
# vim /etc/my.cnf
[mysqld]
server_id=129
datadir=/data/galera
socket=/tmp/mysql.sock
user=mysql
skip-external-locking
skip-name-resolve
character-set-server = utf8
###########################################################
##Galera Cluster
wsrep_provider =/usr/local/mysql/lib/plugin/libgalera_smm.so      —- 設置 galera 類庫
#wsrep_cluster_address= gcomm://172.16.100.131,172.16.100.224,172.16.99.161     每個節點的 ip 地址
#wsrep_provider_options= gcache.size=4G     —- 類似于緩存的大小,增量恢復都靠這個,默認 128M
wsrep_cluster_name=MariaDB Galera Cluster     —— 集群名字,隨便起
wsrep_sst_auth=admin:123456                   —— 同步的用戶名密碼,必須是 all 權限
#wsrep_sst_method=xtrabackup-v2           ——- 同步方式,還有 mysqldump 和 rsync
wsrep_sst_method=rsync
#wsrep_sst_method=mysqldump
wsrep_node_name=172.16.100.224            —— 節點名稱,可以是 ip 或者服務器名字(每個節點的名稱不一樣)
wsrep_slave_threads=2          ——- 開啟并行復制線程,根據 CPU 核數設置
wsrep_on=ON           ——– 開啟全同步復制模式
binlog_format   =  ROW     必須為 row 模式
innodb_flush_log_at_trx_commit = 0    —- 因為 Galera Cluster 的節點恢復是通過遠端節點,這里為了性能考慮,設置為 0,即事務提交每隔 1 秒刷盤
innodb_autoinc_lock_mode=2      —— 將主鍵自增模式修改為交叉模式
query_cache_size = 0   —— 關閉查詢緩存

8. 初始化
# cd /usr/local/mysql/scripts/
./mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/data/galera

9. 第一個節點啟動
 ./mysqld_safe –user=mysql –wsrep-cluster-address= gcomm://
注:–wsrep-new-cluster         第一次啟動要加上 –wsrep-new-cluster 參數,以后再重啟不用加了(不確定加不加,反正都能起來)
進入數據庫
mysql grant all on *.* to admin@ % identified by 123456
必須是 all 權限

第二個節點和第三個節點就正常啟動就好了,有幾個節點就添加就好了
./mysqld_safe –user=mysql –wsrep-cluster-address= gcomm://172.16.100.131:4567,172.16.100.224:4567
./mysqld_safe –user=mysql –wsrep-cluster-address= gcomm://172.16.100.131:4567,172.16.99.161:4567  
進入數據庫查看
mysql show status like %ws%
wsrep_cluster_size           | 3 
wsrep_cluster_status         | Primary
wsrep_ready                  | ON
看到這幾個就沒問題了

在查看一下 admin 用戶是否自動創建了

注:要使用 xtrabackup 做同步需要安裝 lsof socat tar     其中 socat 我的 yum 源中沒有找到
    下載地址:
http://www.dest-unreach.org/socat/download/socat-2.0.0-b9.tar.gz
# tar xvrz socat-2.0.0-b9.tar.gz
# cd socat-2.0.0-b9
#./configure
#make make install
在重啟第二個節點和第三個節點,第二個起來了,第三個起不來了
報錯如下:
2016-07-29 01:09:36 30877 [Note] WSREP: Member 0.0 (172.16.99.161) requested state transfer from *any* . Selected 1.0 (172.16.100.131)(SYNCED) as donor.
2016-07-29 01:09:36 30877 [Note] WSREP: Shifting PRIMARY – JOINER (TO: 4)
2016-07-29 01:09:36 30877 [Note] WSREP: Requesting state transfer: success, donor: 1
2016-07-29 01:09:36 30877 [Warning] WSREP: 1.0 (172.16.100.131): State transfer to 0.0 (172.16.99.161) failed: -2 (No such file or directory)
2016-07-29 01:09:36 30877 [ERROR] WSREP: gcs/src/gcs_group.c:gcs_group_handle_join_msg():723: Will never receive state. Need to abort.
2016-07-29 01:09:36 30877 [Note] WSREP: gcomm: terminating thread
2016-07-29 01:09:36 30877 [Note] WSREP: gcomm: joining thread
2016-07-29 01:09:36 30877 [Note] WSREP: gcomm: closing backend
2016-07-29 01:09:36 30877 [Note] WSREP: view(view_id(NON_PRIM,0ee11156-54e6-11e6-b16e-a303ff8a662b,11) memb {
        0ee11156-54e6-11e6-b16e-a303ff8a662b,0
} joined {
} left {
} partitioned {
        4d838aa2-5633-11e6-ba70-fb0ade4193cd,0
        d1533158-6a9f-11e6-bea7-7fa18ade38f5,0
})
2016-07-29 01:09:36 30877 [Note] WSREP: view((empty))
2016-07-29 01:09:36 30877 [Note] WSREP: gcomm: closed
2016-07-29 01:09:36 30877 [Note] WSREP: /usr/local/mysql/bin/mysqld: Terminated.
160729 01:09:36 mysqld_safe mysqld from pid file /data/galera/zabbixserver.pid ended
具體原因不明,最后用的 rsyc 的同步方式進行同步

10、測試
用 xtrabackup 不行,全都換了 rsync 了
將第三個節點的數據文件刪除掉,在配合文件中指定從哪個節點恢復 在 my.cnf 中添加 wsrep_sst_donor=172.16.100.224(從第二個節點恢復),重啟,沒有問題??慈罩?。

上述內容就是如何進行 mysql 的 galera_cluster 安裝配置,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-27發表,共計5367字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 安岳县| 鄂尔多斯市| 肥城市| 岳阳县| 永定县| 渭南市| 横峰县| 赞皇县| 南溪县| 陇川县| 兰溪市| 通江县| 裕民县| 邛崃市| 简阳市| 临沭县| 浦江县| 宝应县| 杭锦旗| 盐源县| 迁西县| 南陵县| 明水县| 成安县| 宜兰县| 东阳市| 杭锦旗| 南召县| 大关县| 黄龙县| 常山县| 莱阳市| 大丰市| 嘉义市| 潜山县| 莆田市| 建宁县| 徐水县| 新干县| 营口市| 平遥县|