Chào mừng đến với một blog khác. Lần này tôi ở đây để hướng dẫn các bạn cách thiết lập percona XtraDB cluster. Ok, vậy percona XtraDB là gì? XtraDB là một giải pháp phân cụm MySQL, Nó đảm bảo tính sẵn sàng cao, ngăn chặn thời gian chết và mất dữ liệu và cung cấp khả năng mở rộng tuyến tính cho một môi trường đang phát triển. Khi bạn thực hiện một truy vấn, nó sẽ được thực thi cục bộ trên nút. Tất cả dữ liệu có sẵn cục bộ, không cần truy cập từ xa. Một giải pháp tốt để mở rộng khối lượng công việc đã đọc. Bạn có thể đặt các truy vấn đã đọc cho bất kỳ nút nào. Sau khi cài đặt percona XtraDB, bạn không cần phải cài đặt riêng MySQL, XtraDB sẽ lấy nó từ kho lưu trữ percona và bạn sẽ có thể chuẩn bị sẵn cụm sau khi xem qua bài viết này.
điều kiện tiên quyết:
Để định cấu hình một cụm percona XtraDB trên Máy chủ Linux, chúng ta cần ba máy chủ, thông tin như sau:
máy chủ percona1:192.168.56.110
máy chủ percona2:192.168.56.113
Máy chủ percona3:192.168.56.114
Hệ điều hành:CentOS 7
bạn cũng có thể sử dụng hai máy chủ nhưng tài liệu chính thức đề xuất một số máy chủ lẻ. ví dụ:3,5,7, v.v. chỉ không đi cho bất kỳ số lượng nút chẵn nào, họ gọi nó là bộ não phân chia. Bộ não phân chia là trạng thái trong đó các nút mất liên lạc với nhau và sau đó cả hai cố gắng kiểm soát các tài nguyên được chia sẻ hoặc cung cấp đồng thời dịch vụ cụm
LƯU Ý:Chúng tôi cần quyền truy cập root trên nút nơi chúng tôi sẽ cài đặt Percona XtraDB Cluster
(đăng nhập với tư cách người dùng có đặc quyền root hoặc có thể chạy lệnh với Sudo
Kiểm tra trước:
Thêm các mục bên dưới vào tệp / etc / hosts ——> trên tất cả máy chủ (percona1, percona2, percona3)
192.168.56.110 percona1.localdomain percona1
192.168.56.113 percona2.localdomain percona2
192.168.56.114 percona3.localdomain percona3
Mở cổng tường lửa:
Chúng tôi cần mở các cổng bên dưới trên tất cả máy chủ (percona1, percona2, percona3)
3306
4444
4567
4568
firewall-cmd --zone =public --add-service =mysql --permosystem
firewall-cmd --zone =public --add-port =3306 / tcp --permermanentfirewall-cmd --zone =public --add-port =4567 / tcp --permermanentfirewall-cmd --zone =public - -add-port =4568 / tcp --permermanentfirewall-cmd --zone =public --add-port =4444 / tcp --permermanentfirewall-cmd --zone =public --add-port =4567 / udp --permermanentfirewall- cmd --reloadfirewall-cmd --list-all
[[email protected] ~] # firewall-cmd --list-allpublic (active) target:defaulticmp-block-inversion:nointerfaces:enp0s3 enp0s8sources:services:ssh dhcpv6-client mysqlports:3306 / tcp 4567 / tcp 4568 / tcp 4444 / tcp 4567 / udpprotocols:masquerade:nontic-port:source-port:icmp-blocks:rich rules
Tắt SELinux:——-> trên tất cả máy chủ (percona1, percona2, percona3)
[[email protected] ~] # setenforce 0
Điều này sẽ đặt SELinux ở chế độ cho phép cho phiên hiện tại nhưng chúng tôi cần phải tắt nó vĩnh viễn.
chỉnh sửa / etc / sysconfig / selinux tệp đặt biến selinux là bị vô hiệu hóa trên tất cả các máy chủ (percona1, percona2, percona3):
vi / etc / sysconfig / selinux
SELINUX =bị vô hiệu hóa
Tất cả các máy chủ phải có thể truy cập lẫn nhau, Để kiểm tra khả năng truy cập ping từng máy chủ.
Ngay bên dưới RPM yêu cầu trước:——-> trên tất cả máy chủ (percona1, percona2, percona3)
epel-release
libev
socat
[[email protected] ~] # yum -y install epel-release Đã cài đặt:epel-release.noarch 0:7-11 [[email protected] yum.repos.d] # yum -y install libev Đã cài đặt :libev.x86_64 0:4.15-7.el7 [[email protected] Desktop] # yum -y install socat Đã cài đặt:socat.x86_64 0:1.7.3.2-2.el7
Thêm Percona Repository:——-> trên tất cả máy chủ (percona1, percona2, percona3)
Bây giờ chúng ta sẽ thêm kho lưu trữ percona trong cả ba máy chủ (percona1, percona2, percona3):
[[email protected] ~] # sudo yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpmInstalled:percona-release.noarch 0:1.0-13 Hoàn thành !
Cài đặt Percona-XtraDB-Cluster:——-> trên tất cả máy chủ (percona1, percona2, percona3)
[[email protected] ~] # yum install -y Percona-XtraDB-Cluster-57 Plugin đã tải:nhanh nhất, langpacks Tốc độ nhân bản tải từ tệp máy chủ lưu trữ ... Đã cài đặt:Percona-XtraDB-Cluster-57.x86_64 0:5.7 .27-31.39.1.el7 Percona-XtraDB-Cluster-shared-57.x86_64 0:5.7.27-31.39.1.el7 Percona-XtraDB-Cluster-shared-compat-57.x86_64 0:5.7.27-31.39 .1.el7Dependency đã cài đặt:Percona-XtraDB-Cluster-client-57.x86_64 0:5.7.27-31.39.1.el7 Percona-XtraDB-Cluster-server-57.x86_64 0:5.7.27-31.39.1.el7 percona-xtrabackup-24.x86_64 0:2.4.17-1.el7 perl-DBD-MySQL.x86_64 0:4.023-6.el7 perl-Digest.noarch 0:1.17-245.el7 perl-Digest-MD5.x86_64 0 :2.52-3.el7 qpress.x86_64 0:11-1.el7Replaced:mariadb-libs.x86_64 1:5.5.60-1.el7_5Complete!
Hãy kiểm tra Percona XtraDB đã được cài đặt hay chưa.
[[email protected] ~] # yum search Percona-XtraDB LƯU Ý: Đến đây, tất cả các bước trên phải được thực hiện trên tất cả các máy chủ (percona1, percona2, percona3)
Định cấu hình các nút để sao chép bộ ghi
TRÊN Percona1:
Hãy khởi động máy chủ MySQL và chỉ thay đổi mật khẩu gốc trên máy chủ percona1
[[email protected] ~] # systemctl start mysql [[email protected] ~] # grep password /var/log/mysqld.log2019-12-11T10:35:12.135133Z 1 [Lưu ý] Mật khẩu tạm thời được tạo cho [email protected]:hJ (l8ySe> f> VILưu ý:sao chép mật khẩu "hJ (l8ySe> f> E", chúng tôi sẽ thay đổi mật khẩu này:[[email protected] ~] # mysql_secure_installation --- ----> trên tất cả máy chủ (percona1, percona2, percona3) Bảo mật việc triển khai máy chủ MySQL. Nhập mật khẩu cho người dùng root:Mật khẩu hiện có cho gốc tài khoản người dùng đã hết hạn. Vui lòng đặt mật khẩu mới. Mật khẩu mới:Nhập lại mật khẩu mới:CỔNG MẬT KHẨU HỢP LỆ có thể được sử dụng để kiểm tra mật khẩu và cải thiện bảo mật. Nó kiểm tra độ mạnh của mật khẩu và cho phép người dùng chỉ đặt những mật khẩu đủ an toàn. Bạn có muốn thiết lập plugin VALIDATE PASSWORD không? Nhấn y | Y cho Có, bất kỳ phím khác cho Không:Sử dụng mật khẩu hiện có cho thư mục gốc. Thay đổi mật khẩu cho thư mục gốc? ((Nhấn y | Y cho Có, bất kỳ phím nào khác cho Không):... bỏ qua. Theo mặc định, cài đặt MySQL ation có một người dùng ẩn danh, cho phép bất kỳ ai đăng nhập vào MySQL mà không cần phải tạo tài khoản người dùng cho họ. Điều này chỉ nhằm mục đích xóa bỏ và để giúp quá trình cài đặt diễn ra suôn sẻ hơn. Bạn nên xóa chúng trước khi chuyển sang môi trường sản xuất. Xóa người dùng ẩn danh? (Nhấn y | Y cho Có, bất kỳ phím nào khác cho Không):yesSuccess Thông thường, root chỉ được phép kết nối từ'localhost '. Điều này đảm bảo rằng ai đó không thể đoán được mật khẩu root từ mạng. Cho phép root đăng nhập từ xa? (Nhấn y | Y cho Có, bất kỳ phím nào khác cho Không):yesSuccess Theo mặc định, MySQL đi kèm với một cơ sở dữ liệu có tên 'test' mà bất kỳ ai cũng có thể truy cập. Điều này cũng chỉ nhằm mục đích thử nghiệm và cần được gỡ bỏ trước khi chuyển sang môi trường sản xuất. Xóa cơ sở dữ liệu thử nghiệm và truy cập vào nó? (Nhấn y | Y cho Có, bất kỳ phím nào khác cho Không):... bỏ qua.Tải lại bảng đặc quyền sẽ đảm bảo rằng tất cả các thay đổi được thực hiện cho đến nay sẽ có hiệu lực ngay lập tức. Tải lại bảng đặc quyền ngay bây giờ? (Nhấn y | Y cho Có, bất kỳ phím nào khác cho Không):yesSuccess.All done!
Bây giờ hãy dừng máy chủ MySQL trên percona1.
[[email protected] ~] # systemctl dừng mysql
Bây giờ chúng ta sẽ định cấu hình bản sao của mình, chúng ta sẽ thêm thông tin bản sao vào tệp my.cnf.
Định cấu hình cài đặt sao chép trên percona1:
cat>> /etc/my.cnf <
Bây giờ khởi tạo cụm bằng cách khởi động nút đầu tiên. Đây phải là nút với cơ sở dữ liệu chính của bạn, sẽ được sử dụng làm nguồn dữ liệu cho cụm trong trường hợp của chúng tôi, đó là máy chủ percona1
[[email protected] ~] # systemctl start [email protected] Trước khi định cấu hình sao chép, chúng ta cần tạo một người dùng riêng để sao chép, người dùng này sẽ được sử dụng cho quá trình sao chép. tại sao chúng ta cần người dùng nhân rộng? khi bạn thêm một nút mới vào cụm, nó kết xuất cấu hình nút hiện tại và chuyển nó sang nút thứ hai vì lý do đó chúng tôi cần một người dùng riêng.LƯU Ý: Đảm bảo rằng người dùng phải được đề cập giống nhau so với biến “wsrep_sst_auth” trong cấu hình sao chép được sử dụng trong tệp my.cnf.
[[email protected] ~] #mysql -u root -p mysql> tạo người dùng [email protected]'% 'được xác định bởi' perconapasswd '; mysql> cấp tất cả trên *. * cho [email protected] '%'; mysql> xóa đặc quyền;TRÊN Percona2:
Định cấu hình cài đặt sao chép trên percona2:
cat>> /etc/my.cnf <Bây giờ hãy khởi động mysql và điều này sẽ thêm nút này vào cụm.
[[email protected] ~] # systemctl start mysqlTRÊN Percona3:
Định cấu hình cài đặt sao chép trên percona3:
cat>> /etc/my.cnf <Bây giờ hãy khởi động mysql và điều này sẽ thêm nút này vào cụm.
[[email protected] ~] # systemctl start mysqlbạn sẽ quan sát các thông báo như vậy trong nhật ký mysql (var / log / mysqld.log)
(percona2):Hoàn tất chuyển trạng thái từ 0.0 (percona1)
1.0 (percona3):Hoàn tất chuyển trạng thái từ 0.0 (percona1)
Để đảm bảo rằng cụm đã được khởi tạo, hãy chạy như sau:
mysql> hiển thị trạng thái như 'wsrep%'; + ---------------------------------- + - -------------------------------------------------- ---------- + | Tên_biến | Giá trị | + ---------------------------------- + ------------ ------------------------------------------------- + | wsrep_local_state_uuid | 6d95cd36-1c1a-11ea-999a-83631204f6e3 || wsrep_protocol_version | 9 || wsrep_last_applied | 6 | ... | wsrep_flow_control_recv | 0 || wsrep_flow_control_interval | [173, 173] || wsrep_flow_control_interval_low | 173 || wsrep_flow_control_interval_high | 173 || wsrep_flow_control_status | TẮT | .. | wsrep_local_state | 4 || wsrep_local_state_comment | Đã đồng bộ hóa || wsrep_cert_index_size | 1 || wsrep_cert_bucket_count | 22 || wsrep_gcache_pool_size | 2384 | .. | wsrep_incoming_addresses | 192.168.56.110:3306,192.168.56.114:3306,192.168.56.113:3306 || wsrep_cluster_weight | 3 || wsrep_desync_count | 0 || wsrep_evs_delayed | || wsrep_evs_evict_list | || wsrep_evs_repl_latency | 0/0/0/0/0 || wsrep_evs_state | VẬN HÀNH || wsrep_gcomm_uuid | 1d16f574-1c1b-11ea-b5dd-574c9a653584 || wsrep_cluster_conf_id | 3 || wsrep_cluster_size | 3 || wsrep_cluster_state_uuid | 6d95cd36-1c1a-11ea-999a-83631204f6e3 || wsrep_cluster_status | Chính || wsrep_connected | VÀO || wsrep_local_bf_aborts | 0 || wsrep_local_index | 0 || wsrep_provider_name | Galera || wsrep_provider_vendor | Codership Oy|| wsrep_provider_version | 3,39 (rb3295e6) || wsrep_ready | BẬT | + ---------------------------------- + ------------ ------------------------------------------------- + 71 hàng trong bộ (0,00 giây) Như bạn có thể thấy rằng kích thước cụm là 3 “wsrep_cluster_size | 3 ” và bạn cũng có thể thấy IP của ba nút của chúng tôi
wsrep_incoming_addresses | 192.168.56.110:3306,192.168.56.114:3306,192.168.56.113:3306Kiểm tra cụm của chúng tôi:
Tôi đang tạo cơ sở dữ liệu trên percona 1 và sau đó chúng tôi sẽ kiểm tra trên percoan 3 xem nó đã được sao chép chưa.
mysql> hiển thị cơ sở dữ liệu; + -------------------- + | Cơ sở dữ liệu | + -------------------- + | information_schema || mysql || performance_schema || sys | + -------------------- + 4 hàng trong bộ (0,03 giây) mysql> TẠO CƠ SỞ DỮ LIỆU perconatest; Truy vấn OK, 1 hàng bị ảnh hưởng (0,03 giây)Bây giờ, hãy kiểm tra percona3, chúng ta sẽ thấy rằng DB ‘perconatest’ sẽ được tạo
[[email protected] ~] # mysql -uroot -p -e "hiển thị cơ sở dữ liệu" Nhập mật khẩu:+ -------------------- + | Cơ sở dữ liệu | + -------------------- + | information_schema || mysql || perconatest || performance_schema || sys | + -------------------- +