Hãy xem một số trường hợp sử dụng khác nhau cho công cụ lưu trữ Spider của MariaDB bằng cách sử dụng một liên kết bảng duy nhất và trên nhiều máy chủ
qua
Anders Karlsson
·tháng ba. 12, 20 · Hướng dẫnThích
Bình luận
Tiết kiệm
tiếng riu ríu
13. 20 nghìn Lượt xem
Spider là một công cụ lưu trữ cho Nền tảng MariaDB cho phép bạn xây dựng cơ sở dữ liệu phân tán từ thiết lập MariaDB tiêu chuẩn. Công nghệ không phức tạp, mặc dù việc thực hiện là. Blog này sẽ giải thích cách hoạt động của công cụ lưu trữ Spider, những gì nó làm và cũng sẽ hiển thị một số trường hợp sử dụng
Công cụ lưu trữ MariaDB
Trước khi xem xét công cụ lưu trữ Spider, chúng ta hãy xem nhanh khái niệm công cụ lưu trữ. Công cụ lưu trữ là việc triển khai mã quản lý mức độ truy cập dữ liệu thấp trong MariaDB. Công cụ lưu trữ xử lý những thứ như đọc và ghi dữ liệu, khóa cấp hàng, nếu được hỗ trợ, đa phiên bản và quản lý giao dịch, trong số những thứ khác
Công cụ lưu trữ được xác định trên cơ sở từng bảng và sau khi bảng được tạo và xác định để sử dụng một công cụ lưu trữ cụ thể [sử dụng
Welcome to the MariaDB monitor. Commands end with ; or \g.
65 Table attribute] it will generally be treated just like any other tables. Tables using different engines, once created, are handled as equal and can be joined, have data selected from one into another, etc. Tables may also have the storage engine changed after the table has been created.Bạn cũng có thể thưởng thức. Trạng thái của động cơ lưu trữ
Nhện từ tầng cao
Những gì Spider cung cấp, trước hết, là một cách để truy cập một bảng trên một Máy chủ MariaDB từ một Máy chủ MariaDB khác. Máy chủ MariaDB chứa dữ liệu bảng thực tế hoàn toàn không có bất kỳ mã Spider cụ thể nào; . Máy chủ MariaDB được định cấu hình để truy cập dữ liệu đó, sau đó sử dụng công cụ lưu trữ Spider để truy cập dữ liệu trên máy chủ khác bằng giao thức MariaDB thông thường
Có thể thấy, Spider chỉ hoạt động trên nút tham chiếu; . Tạo một "bảng nhện" có nghĩa là chúng ta xác định một bảng chứa cùng hoặc một tập hợp con các cột trong bảng đích và tham chiếu đến máy chủ đích
Ngoài ra, lưu ý rằng không có dữ liệu cho các bảng này trên "nút nhện" và không có dữ liệu trùng lặp, tất cả dữ liệu nằm trên nút đích
Cài đặt Công cụ lưu trữ Spider
Spider được bao gồm trong Máy chủ MariaDB và cũng có một tập lệnh cài đặt cài đặt công cụ Spider và một số tiện ích đang hỗ trợ các đối tượng và nên cài đặt spider bằng tập lệnh này. Nếu bạn đã cài đặt MariaDB dưới dạng RPM, tập lệnh cài đặt nhện này nằm trong /usr/share/mysql và được gọi là install_spider. sql. Để chạy nó, hãy sử dụng công cụ dòng lệnh MariaDB MySQL và sử dụng lệnh nguồn, như thế này
Vỏ bọc
x
10
1
$ mysql -u root
2
Welcome to the MariaDB monitor. Commands end with ; or \g.
3
Your MariaDB connection id is 2835
4
Server version: 10.4.6-MariaDB-log MariaDB Server
5
6
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
7
8
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
9
10
MariaDB> source /usr/share/mysql/install_spider.sql
Sau khi chạy tập lệnh, hãy kiểm tra xem Spider đã được cài đặt chưa bằng cách sử dụng lệnh
Welcome to the MariaDB monitor. Commands end with ; or \g.
66 . Vỏ bọc
xxxxxxxxxx
1
15
1
$ mysql -u root
02
$ mysql -u root
13
Welcome to the MariaDB monitor. Commands end with ; or \g.
04
$ mysql -u root
15
Welcome to the MariaDB monitor. Commands end with ; or \g.
26
Welcome to the MariaDB monitor. Commands end with ; or \g.
37
Welcome to the MariaDB monitor. Commands end with ; or \g.
48
Welcome to the MariaDB monitor. Commands end with ; or \g.
59
Welcome to the MariaDB monitor. Commands end with ; or \g.
610
Welcome to the MariaDB monitor. Commands end with ; or \g.
711
Welcome to the MariaDB monitor. Commands end with ; or \g.
812
Welcome to the MariaDB monitor. Commands end with ; or \g.
913
Your MariaDB connection id is 2835
014
$ mysql -u root
115
Your MariaDB connection id is 2835
2Bây giờ chúng tôi đã sẵn sàng để bắt đầu sử dụng công cụ Spider
Liên kết bảng đơn với Spider
Hãy xem một ví dụ, một ví dụ rất cơ bản. Trên máy chủ "mục tiêu", chúng tôi tạo một bảng. Lưu ý rằng trên máy chủ này, Spider không cần thiết; . Vì vậy, bây giờ chúng tôi tạo một bảng trên máy chủ "mục tiêu", hãy gọi đó là "Máy chủ 2. "
Vỏ bọc
xxxxxxxxxx
1
19
1
Your MariaDB connection id is 2835
42
Welcome to the MariaDB monitor. Commands end with ; or \g.
3
Your MariaDB connection id is 2835
64
Your MariaDB connection id is 2835
75
6
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
7
8
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
9
10
Server version: 10.4.6-MariaDB-log MariaDB Server
011
Server version: 10.4.6-MariaDB-log MariaDB Server
112
13
Server version: 10.4.6-MariaDB-log MariaDB Server
214
Server version: 10.4.6-MariaDB-log MariaDB Server
315
Server version: 10.4.6-MariaDB-log MariaDB Server
416
Server version: 10.4.6-MariaDB-log MariaDB Server
517
Server version: 10.4.6-MariaDB-log MariaDB Server
618
Server version: 10.4.6-MariaDB-log MariaDB Server
719
Server version: 10.4.6-MariaDB-log MariaDB Server
8Sau đây, hãy chèn một số dữ liệu vào bảng này
mysql
xxxxxxxxxx
1
1
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
02
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
13
4
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
25
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
36
7
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
48
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
59
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
6Tôi thừa nhận rằng đây không phải là thí nghiệm thú vị nhất kể từ khi Marie Curie phát minh ra radium, nhưng chúng ta vẫn chưa hoàn thành. Những gì chúng ta sẽ làm bây giờ là truy cập bảng này từ một phiên bản khác của Máy chủ MariaDB. Vì Spider kết nối với máy chủ từ xa với tư cách là một người dùng bình thường, chúng ta cần tạo một người dùng và cấp cho nó một số quyền truy cập vào bảng mà chúng ta đã tạo ở trên, trên cùng một phiên bản Máy chủ MariaDB như trên
mysql
xxxxxxxxxx
1
1
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
82
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
93
4
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
05
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
16
7
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
28
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
1Bước tiếp theo là tạo
Welcome to the MariaDB monitor. Commands end with ; or \g.
67 . Nếu bạn chưa sử dụng Spider thì có thể bạn chưa từng sử dụng lệnh này trước đây, nhưng chức năng của nó là xác định các tham số được sử dụng để kết nối với một phiên bản Máy chủ MariaDB khác, vì vậy máy chủ được xác định trên phiên bản Máy chủ MariaDB để . Vỏ bọc
xxxxxxxxxx
1
13
1
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
52
Welcome to the MariaDB monitor. Commands end with ; or \g.
3
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
74
Your MariaDB connection id is 2835
75
6
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
7
8
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
9
10
MariaDB> source /usr/share/mysql/install_spider.sql
111
MariaDB> source /usr/share/mysql/install_spider.sql
212
MariaDB> source /usr/share/mysql/install_spider.sql
313
MariaDB> source /usr/share/mysql/install_spider.sql
4Với điều này, hãy tạo một liên kết bằng Spider từ Server1 đến Server2. Lưu ý rằng chúng tôi không phải sử dụng tất cả các trường trong bảng mục tiêu
Vỏ bọc
xxxxxxxxxx
1
22
1
MariaDB> source /usr/share/mysql/install_spider.sql
62
Welcome to the MariaDB monitor. Commands end with ; or \g.
3
MariaDB> source /usr/share/mysql/install_spider.sql
84
Your MariaDB connection id is 2835
75
6
Copyright [c] 2000, 2018, Oracle, MariaDB Corporation Ab and others.
7
8
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
9
10
xxxxxxxxxx
211
xxxxxxxxxx
312
13
Server version: 10.4.6-MariaDB-log MariaDB Server
014
Server version: 10.4.6-MariaDB-log MariaDB Server
115
16
Server version: 10.4.6-MariaDB-log MariaDB Server
217
Server version: 10.4.6-MariaDB-log MariaDB Server
318
Server version: 10.4.6-MariaDB-log MariaDB Server
419
Server version: 10.4.6-MariaDB-log MariaDB Server
520
$ mysql -u root
0021
$ mysql -u root
0122
$ mysql -u root
02OK, không có lỗi, hãy thử bằng cách
Welcome to the MariaDB monitor. Commands end with ; or \g.
68ing một số dữ liệumysql
xxxxxxxxxx
1
1
$ mysql -u root
042
$ mysql -u root
053
$ mysql -u root
064
$ mysql -u root
055
$ mysql -u root
086
$ mysql -u root
097
$ mysql -u root
108
$ mysql -u root
059
$ mysql -u root
12Vâng, điều này dường như làm việc. Marie Curie vẫn đánh bại chúng tôi trong lĩnh vực phấn khích, nhưng chúng tôi đang đạt được điều đó
Sử dụng cho một liên kết bảng đơn
Có khá nhiều cách sử dụng cho ngay cả một liên kết bảng đơn lẻ, chẳng hạn như liên kết được mô tả ở trên. Trong một số trường hợp, nó có thể được sử dụng để thay thế bản sao khi chỉ có một bảng duy nhất được sao chép. Có thể bạn có một bảng duy nhất được duy trì trong một phiên bản cơ sở dữ liệu chẳng hạn như bảng khách hàng hoặc thứ gì đó và sau đó bạn muốn tham chiếu đến ID khách hàng từ một ứng dụng hoàn toàn khác đang chạy trong một số phiên bản Máy chủ MariaDB khác
Người ta cần hiểu rằng có những hạn chế đối với kiểu thiết lập này; . Việc nối giữa bảng cục bộ và bảng Spider cũng có thể chậm, nhưng điều đó phụ thuộc vào một số thứ. Nói chung, Spider hoạt động khá tốt và không phải là nút thắt cổ chai và có thể điều chỉnh khá nhiều
Tùy chọn thứ ba là khi chúng tôi có một bảng duy nhất, chẳng hạn như bảng nhật ký, mà tôi không muốn trộn lẫn với bất kỳ bảng nào khác. Sau đó, một bảng Spider có thể là một cách để đạt được điều đó
Sử dụng Spider cho trạng thái trên nhiều máy chủ
Nếu bạn có một Cụm MariaDB đang chạy, chẳng hạn với một cụm chính và một số cụm phụ, thì có thể cần phải xem trạng thái của tất cả các máy chủ trong cụm dưới dạng một đơn vị. Nhện có ích. Ở đây chúng ta đang xem xét làm thế nào điều đó có thể được thực hiện. Chúng tôi có hai máy chủ, moe và homer, mà chúng tôi muốn theo dõi. Chúng ta hãy giả sử rằng moe là máy chủ "chính" và chúng ta từ hộp đó muốn xem trạng thái chung trên cả hai máy chủ
Trên homer, chúng tôi tạo chế độ xem cho
Welcome to the MariaDB monitor. Commands end with ; or \g.
69 dựa trên bảng TÌNH TRẠNG TOÀN CẦU trong Welcome to the MariaDB monitor. Commands end with ; or \g.
70 . , but adds a column with the name of the server and put that in the MySQL database.mysql
xxxxxxxxxx
1
1
$ mysql -u root
142
$ mysql -u root
153
$ mysql -u root
16Và sau đó chúng tôi làm một điều tương tự trên moe
mysql
xxxxxxxxxx
1
1
2
$ mysql -u root
183
$ mysql -u root
194
$ mysql -u root
16Bước tiếp theo là tạo một liên kết từ cái mà chúng ta coi là máy chủ [moe] đến máy chủ khác [homer]. Vì vậy, trên moe, chúng tôi thực hiện lệnh này
mysql
xxxxxxxxxx
1
1
Welcome to the MariaDB monitor. Commands end with ; or \g.
022
Welcome to the MariaDB monitor. Commands end with ; or \g.
033
Welcome to the MariaDB monitor. Commands end with ; or \g.
04Với điều này, chúng tôi đã sẵn sàng tạo chế độ xem trên moe để xem trạng thái trên homer
mysql
xxxxxxxxxx
1
1
Welcome to the MariaDB monitor. Commands end with ; or \g.
062
Welcome to the MariaDB monitor. Commands end with ; or \g.
07Trên homer, giờ đây chúng tôi có một bảng và một chế độ xem, một bảng cho mỗi máy chủ và với lược đồ tương tự, biểu thị trạng thái trên toàn cụm. Hãy kết hợp cả hai thành một VIEW duy nhất
mysql
xxxxxxxxxx
1
1
Welcome to the MariaDB monitor. Commands end with ; or \g.
092
Welcome to the MariaDB monitor. Commands end with ; or \g.
103
Welcome to the MariaDB monitor. Commands end with ; or \g.
114
Welcome to the MariaDB monitor. Commands end with ; or \g.
125
Welcome to the MariaDB monitor. Commands end with ; or \g.
106
Welcome to the MariaDB monitor. Commands end with ; or \g.
14Và sau đó là
Welcome to the MariaDB monitor. Commands end with ; or \g.
71 hiển thị trạng thái tóm tắt trên toàn cụm. mysql
xxxxxxxxxx
1
1
Welcome to the MariaDB monitor. Commands end with ; or \g.
162
Welcome to the MariaDB monitor. Commands end with ; or \g.
173
Welcome to the MariaDB monitor. Commands end with ; or \g.
184
Welcome to the MariaDB monitor. Commands end with ; or \g.
195
Welcome to the MariaDB monitor. Commands end with ; or \g.
20Hãy thử ngay bây giờ và xem nó hoạt động như thế nào
mysql
xxxxxxxxxx
1
15
1
Welcome to the MariaDB monitor. Commands end with ; or \g.
222
Welcome to the MariaDB monitor. Commands end with ; or \g.
233
Welcome to the MariaDB monitor. Commands end with ; or \g.
244
Welcome to the MariaDB monitor. Commands end with ; or \g.
235
Welcome to the MariaDB monitor. Commands end with ; or \g.
266
Welcome to the MariaDB monitor. Commands end with ; or \g.
277
Welcome to the MariaDB monitor. Commands end with ; or \g.
288
Welcome to the MariaDB monitor. Commands end with ; or \g.
299
Welcome to the MariaDB monitor. Commands end with ; or \g.
3010
Welcome to the MariaDB monitor. Commands end with ; or \g.
3111
Welcome to the MariaDB monitor. Commands end with ; or \g.
3212
Welcome to the MariaDB monitor. Commands end with ; or \g.
3313
Welcome to the MariaDB monitor. Commands end with ; or \g.
3414
Welcome to the MariaDB monitor. Commands end with ; or \g.
2315
Welcome to the MariaDB monitor. Commands end with ; or \g.
36Tôi nghĩ rằng điều này là hữu ích, mặc dù đây là một ví dụ đơn giản. Với nhiều máy chủ hơn hai máy chủ này, nó hữu ích hơn rất nhiều
Kết hợp nhiều bảng máy chủ trong trường hợp chung
Trong ví dụ trên, chúng ta xem cách các bảng có cùng cấu trúc với nội dung tương tự có thể được kết hợp thành một dạng xem duy nhất, sử dụng Spider. Chúng tôi xem xét một ví dụ cụ thể ở đó, nhưng nói chung, có những cách sử dụng cho điều này. Giả sử bạn có một ứng dụng chạy trong nhiều phiên bản, chẳng hạn như một số ứng dụng ERP được sử dụng bởi nhiều phòng ban. Sau đó, nếu bạn muốn thực hiện báo cáo giữa các phòng ban từ một máy chủ báo cáo, thì bạn có thể sử dụng mô hình này để truy cập tất cả các phiên bản của ứng dụng này
Thay thế cho việc sử dụng Spider là sử dụng sao chép đa nguồn, nhưng điều đó đòi hỏi phải lưu trữ nhiều dữ liệu hơn trong máy chủ báo cáo, vì vậy Spider có một số lợi thế
Sharding với Spider
Sharding là trường hợp sử dụng phổ biến nhất cho Spider. Các ví dụ tôi mô tả ở trên ít phổ biến hơn, nhưng vẫn hữu ích. Trong các trường hợp trên, tôi đã ánh xạ một bảng trên một máy chủ sang một bảng trên máy khác. Với Spider sử dụng cho một bảng được phân vùng trên một máy chủ, mỗi phân vùng tồn tại trên một máy chủ riêng biệt. Ngoại trừ điều này, không có nhiều khác biệt trong thực tế, mặc dù trường hợp sử dụng phân vùng cho phép Spider thực hiện một số điều thú vị và Spider có một số thủ thuật nâng cao hiệu suất bổ sung cho trường hợp sử dụng cụ thể này
Để hiển thị cách hoạt động của sharding với Spider, hãy hiển thị một ví dụ rất đơn giản. Chúng tôi sẽ trình bày cách thiết lập phân đoạn chỉ với hai phân đoạn, chỉ để trình bày nguyên tắc. Hãy để chúng tôi sử dụng bảng khách hàng nơi chúng tôi có tổng cộng ba máy chủ, hai máy chủ "dữ liệu" có dữ liệu cho hai phân đoạn và một máy chủ hơn là máy chủ "Spider" không chứa dữ liệu thực tế cho bảng mà chúng tôi đang làm việc, nhưng
Hãy bắt đầu từ phần dưới cùng, đó là tạo các bảng mà chúng ta sẽ sử dụng trong Máy chủ MariaDB Server2 và Server3 [bảng này trông tương tự như bảng khách hàng ở trên, nhưng không chính xác như vậy]. Điều này được thực hiện trên cả hai Máy chủ này với tư cách là người dùng root
mysql
xxxxxxxxxx
1
1
Welcome to the MariaDB monitor. Commands end with ; or \g.
382
Welcome to the MariaDB monitor. Commands end with ; or \g.
393
Welcome to the MariaDB monitor. Commands end with ; or \g.
404
Welcome to the MariaDB monitor. Commands end with ; or \g.
415
Welcome to the MariaDB monitor. Commands end with ; or \g.
426
Bây giờ chúng tôi đã tạo hai phân đoạn, vì vậy, hãy tạo liên kết để chúng tôi có thể truy cập chúng từ MariaDB Server1, vì vậy trên Server1 thực thi câu lệnh SQL này, thay thế cổng, máy chủ, tên người dùng và mật khẩu của tôi bằng thứ gì đó có liên quan trong trường hợp của bạn
mysql
xxxxxxxxxx
1
1
Welcome to the MariaDB monitor. Commands end with ; or \g.
442
Welcome to the MariaDB monitor. Commands end with ; or \g.
453
Welcome to the MariaDB monitor. Commands end with ; or \g.
464
5
Welcome to the MariaDB monitor. Commands end with ; or \g.
476
Welcome to the MariaDB monitor. Commands end with ; or \g.
487
Welcome to the MariaDB monitor. Commands end with ; or \g.
46Sau đó, chúng ta hãy kết hợp nó với một bảng được phân vùng và lưu ý rằng bạn có thể sử dụng bất kỳ lược đồ phân vùng hợp lý nào ở đây, tôi chỉ chọn một sơ đồ đơn giản để tạo điểm nhấn
mysql
xxxxxxxxxx
1
1
Welcome to the MariaDB monitor. Commands end with ; or \g.
512
Welcome to the MariaDB monitor. Commands end with ; or \g.
413
Welcome to the MariaDB monitor. Commands end with ; or \g.
534
Welcome to the MariaDB monitor. Commands end with ; or \g.
545
Welcome to the MariaDB monitor. Commands end with ; or \g.
556
Welcome to the MariaDB monitor. Commands end with ; or \g.
567
Welcome to the MariaDB monitor. Commands end with ; or \g.
57Bây giờ chúng tôi có thể trên Server1 chèn một số dữ liệu và xem nó xuất hiện khi thích hợp trên Server2 và Server3
mysql
xxxxxxxxxx
1
1
Welcome to the MariaDB monitor. Commands end with ; or \g.
592
Welcome to the MariaDB monitor. Commands end with ; or \g.
603
Welcome to the MariaDB monitor. Commands end with ; or \g.
614
Welcome to the MariaDB monitor. Commands end with ; or \g.
625
Welcome to the MariaDB monitor. Commands end with ; or \g.
636
Welcome to the MariaDB monitor. Commands end with ; or \g.
64Dựa trên phân vùng của chúng tôi được thiết lập, ba hàng đầu tiên chuyển sang Server2 và ba hàng cuối cùng đến Server3. Tôi muốn chỉ ra trước khi kết thúc phần này rằng các phân đoạn riêng lẻ, vì chúng là các phiên bản MariaDB phổ biến, không có công cụ Spider, vì vậy chúng có thể được truy cập từng phân đoạn bằng cách kết nối với, trong trường hợp này là Server2 hoặc Server3
Sử dụng cho Sharding với Spider
Ưu điểm rõ ràng nhất của sharding là tăng hiệu suất khi làm việc với bộ dữ liệu lớn. Nhưng với Spider, có những lợi thế khác, hầu hết đến từ thực tế là các phân đoạn riêng lẻ là Máy chủ MariaDB đơn giản có thể được truy cập riêng lẻ, do đó, tập dữ liệu có thể được xem xét theo từng phân đoạn mà không có bất kỳ tắc nghẽn hiệu suất nào hoặc bạn có thể xem nó như
Phần kết luận
Blog này đã trình bày một số cách sử dụng cho Công cụ lưu trữ Spider, tất cả đều hữu ích theo cách riêng của chúng. Hầu hết các tài liệu xung quanh Spider đều tập trung vào trường hợp sử dụng sharding, vì vậy hai cách sử dụng đầu tiên có thể gây ngạc nhiên cho một số người.