Các tổ chức lớn đang sử dụng nền tảng cơ sở dữ liệu MySQL hoặc MariaDB thường gặp phải nhu cầu thực hiện di chuyển cơ sở dữ liệu từ nơi này sang nơi khác. Bất kể nền tảng, loại phần mềm cơ sở dữ liệu (chẳng hạn như từ RDBMS sang NoSQL hoặc NoSQL quay trở lại RDBMS) hoặc nếu đó chỉ là di chuyển dữ liệu, việc thực hiện di chuyển là một khối lượng công việc và chi phí rất lớn.
Quá trình di chuyển cơ sở dữ liệu sẽ luôn bao gồm quá trình di chuyển dữ liệu từ một hoặc nhiều cơ sở dữ liệu nguồn sang một hoặc nhiều cơ sở dữ liệu đích. Điều này có thể liên quan đến một dịch vụ di chuyển cơ sở dữ liệu hoặc một bộ công cụ kết hợp mà các kỹ sư đã xây dựng để tạo ra một dịch vụ và điều chỉnh cho loại vấn đề này.
Dự kiến rằng việc di chuyển cơ sở dữ liệu không có nghĩa là nền tảng cơ sở dữ liệu nguồn sẽ kết thúc nền tảng mục tiêu của nó chính xác như nguồn gốc. Khi quá trình di chuyển kết thúc, tập dữ liệu từ các cơ sở dữ liệu đích có thể được cấu trúc lại. Điều quan trọng nhất, một khi quá trình di chuyển được thực hiện đầy đủ, là các máy khách truy cập cơ sở dữ liệu sẽ được chuyển hướng đến cơ sở dữ liệu nguồn mới. Cơ sở dữ liệu nguồn mới phải cung cấp bản sao chính xác của dữ liệu từ nguồn và không có tác động đến hiệu suất có thể ảnh hưởng đến trải nghiệm người dùng tổng thể.
Di chuyển dữ liệu của bạn từ một nền tảng sang nền tảng đích mục tiêu là một nhiệm vụ rất lớn phải làm. Đây là điều mà quá trình di chuyển cơ sở dữ liệu bao gồm khi một tổ chức hoặc công ty quyết định chuyển sang nền tảng hiện tại vì nhiều lý do. Các lý do phổ biến cho việc di chuyển dữ liệu là vì tính hiệu quả về chi phí đối với nền tảng đích mục tiêu hoặc vì tính linh hoạt khi triển khai và khả năng mở rộng. Mặc dù nền tảng hiện tại lưu trữ dữ liệu sản xuất hiện tại gây ra nhiều chi phí hơn cho việc nâng cấp và khả năng mở rộng của nó, nhưng nó chỉ là gánh nặng khi triển khai các thay đổi nhỏ thực sự có thể được triển khai trong nền tảng microservice.
Trong blog này, chúng tôi sẽ tập trung vào các công cụ mã nguồn mở hàng đầu mà bạn có thể sử dụng để di chuyển MySQL và MariaDB trên một quá trình di chuyển cơ sở dữ liệu đồng nhất hơn.
Công cụ sao lưu để di chuyển dữ liệu
Cách dễ sử dụng nhất khi thực hiện di chuyển là sử dụng các công cụ sao lưu cơ sở dữ liệu. Chúng tôi sẽ xem xét những công cụ này là gì và cách bạn có thể sử dụng chúng trong quá trình di chuyển.
mysqldump / mysqlpump
Công cụ này là một trong những tiện ích nổi tiếng nhất dành cho MySQL hoặc MariaDB mà quản trị viên cơ sở dữ liệu hoặc quản trị viên hệ thống sẽ kết nối công cụ này để di chuyển cơ sở dữ liệu đầy đủ hoặc bản sao một phần của cơ sở dữ liệu. Đối với những quản trị viên cơ sở dữ liệu không quen thuộc với MySQL / MariaDB, công cụ này sẽ cho phép bạn tạo một bản sao lưu, bản sao này sẽ tạo ra một bản sao dữ liệu hợp lý mà bạn có thể kết xuất trên cơ sở dữ liệu đích.
Cách thiết lập phổ biến khi sử dụng công cụ này là bất cứ khi nào cơ sở dữ liệu đích được đặt ở một nơi khác và được lưu trữ trên nền tảng khác với nguồn, đích sẽ hoạt động như một nô lệ hoặc bản sao. Sử dụng mysqldump thường được gọi với --single-transaction trên một hệ thống bận và với --master-data sẽ cung cấp cho bạn các tọa độ để thiết lập một nô lệ trên cơ sở dữ liệu đích sẽ được sử dụng làm máy chủ lưu trữ để di chuyển dữ liệu. Một giải pháp thay thế cho mysqldump cũng là mysqlpump nhưng với một tính năng thấp hơn nhưng có thể xử lý song song cơ sở dữ liệu và các đối tượng trong cơ sở dữ liệu, để tăng tốc quá trình kết xuất. Nhược điểm là, với mysqlpump, không có tùy chọn nào bạn có thể sử dụng, chẳng hạn như --master-data, rất hữu ích nếu bạn muốn tạo một bản sao sẽ được sử dụng làm đích đích cho việc di chuyển cơ sở dữ liệu.
mysqlpump sẽ có lợi nếu dữ liệu của bạn không hoạt động nhiều hơn hoặc được đưa vào chế độ bảo trì để không có quá trình ghi hoặc thay đổi được xử lý nào đang diễn ra đối với cơ sở dữ liệu nguồn. Nó nhanh hơn và nhanh hơn so với mysqldump.
mydumper / myloader
mydumper / myloader là một công cụ rất tiện lợi và hiệu quả mà bạn có thể sử dụng để sao lưu hợp lý, đặc biệt là để nhập dữ liệu số lượng lớn với tốc độ xử lý nhanh hơn vì nó cung cấp tính song song, khả năng gửi dữ liệu theo khối, hỗ trợ ngưỡng và kiểm soát đánh giá thông qua số luồng, hàng, kích thước câu lệnh và nén kết quả. Nó tạo hoặc bao gồm các vị trí nhật ký và tệp nhật ký nhị phân, điều này rất hữu ích nếu bạn thiết lập nền tảng đích mục tiêu để hoạt động như một bản sao của nguồn và môi trường sản xuất hiện tại.
Về cơ bản, mydumper là mã nhị phân và lệnh bạn phải gọi thông qua dòng lệnh để tạo bản sao lưu logic. Trong khi, myloader là mã nhị phân và lệnh bạn phải sử dụng khi tải dữ liệu đến đích mục tiêu mong muốn. Tính linh hoạt của nó cho phép bạn quản lý tốc độ mong muốn của mình khi xử lý các hành động cho dù nó tạo bản sao lưu hay tải dữ liệu. Sử dụng mydumper, bạn cũng có thể tạo một bản sao lưu đầy đủ hoặc chỉ một bản sao lưu một phần cơ sở dữ liệu nguồn của mình. Điều này rất hữu ích trong trường hợp bạn cần một dữ liệu hoặc lược đồ lớn mà bạn muốn di chuyển khỏi máy chủ cơ sở dữ liệu hiện tại và di chuyển nhẹ nó đến một đích đích khác trong khi bắt đầu thiết lập một phân đoạn cơ sở dữ liệu mới. Đây cũng có thể là một cách để di chuyển dữ liệu lớn bằng cách kéo một phân đoạn lớn của tập dữ liệu, sau đó di chuyển nó nhưng dưới dạng một nút phân đoạn mới.
mydumper / myloader cũng có những hạn chế của nó. Nó đã bị dừng cập nhật từ các tác giả gốc nhưng được Max Bube lưu lại nhưng công cụ này vẫn đang được sử dụng rộng rãi ngay cả trong môi trường sản xuất.
Percona XtraBackup / MariaDB Backup
Percona's XtraBackup là một món quà dành cho các quản trị viên cơ sở dữ liệu không muốn sử dụng và chi tiền cho bản sao lưu Oracle MySQL Enterprise của doanh nghiệp. Trong khi MariaDB Backup được phân nhánh và bắt nguồn từ Percona XtraBackup, chúng cũng có MariaDB Enterprise Backup.
Cả hai công cụ này đều có chung các khái niệm khi thực hiện hoặc sao lưu. Đó là một bản sao lưu nhị phân cung cấp một bản sao lưu trực tuyến nóng, PITR, sao lưu gia tăng và toàn bộ, sao lưu một phần, cũng hữu ích cho việc khôi phục dữ liệu vì nó hiểu khôi phục như tạo ra tệp nhật ký nhị phân và vị trí, hỗ trợ GTID, và nhiều hơn nữa. Mặc dù MariaDB Backup và Percona XtraBackup là hai loại phần mềm khác nhau hiện nay khi chúng được cấu trúc trở đi để hỗ trợ cơ sở dữ liệu tập trung để cung cấp một bản sao lưu. MariaDB Backup chắc chắn có thể áp dụng nếu bạn đang có ý định sử dụng hoặc sao lưu từ nguồn cơ sở dữ liệu MariaDB. Trong khi đó, Percona XtraBackup có thể áp dụng trên Oracle MySQL và cũng trên Máy chủ Percona hoặc một số máy chủ MySQL dẫn xuất như Máy chủ Percona XtraDB hoặc phiên bản Codership của Galera Cluster cho MySQL.
Cả hai bản sao lưu đều rất có lợi cho việc di chuyển cơ sở dữ liệu. Thực hiện sao lưu trực tuyến nóng ngày càng nhanh hơn và tạo ra một bản sao lưu mà bạn có thể trực tiếp sử dụng để tải nó vào cơ sở dữ liệu mục tiêu của mình. Thông thường, sao lưu trực tuyến rất tiện lợi cũng như bạn có thể thực hiện sao lưu trực tuyến và truyền dữ liệu nhị phân đến cơ sở dữ liệu đích bằng cách sử dụng socat hoặc netcat. Điều này cho phép bạn rút ngắn thời gian di chuyển vì dữ liệu di chuyển đến đích đích đang được truyền trực tiếp.
Cách tiếp cận phổ biến nhất của việc di chuyển dữ liệu khi sử dụng công cụ này là sao chép dữ liệu từ nguồn sau đó truyền dữ liệu đến đích đích. Khi ở trong đích cơ sở dữ liệu đích, bạn chỉ có thể chuẩn bị sao lưu nhị phân với tùy chọn --prepare, nơi nó áp dụng các bản ghi đã được ghi lại trong thời gian tạo bản sao lưu để nó sẽ sao chép dữ liệu đầy đủ và chính xác tại thời điểm nơi sao lưu đã được thực hiện. Sau đó, đặt đích cơ sở dữ liệu đích làm bản sao để hoạt động như một bản sao hoặc nô lệ của cụm nguồn hiện có và sao chép tất cả những thay đổi và giao dịch đã xảy ra từ cụm chính.
Tất nhiên việc sử dụng công cụ này cũng có một giới hạn nhưng quản trị viên cơ sở dữ liệu phải biết cách sử dụng công cụ này và cũng như cách điều chỉnh và tùy chỉnh việc sử dụng sao cho phù hợp với mục đích sử dụng của nó. Bạn có thể không muốn làm hỏng cơ sở dữ liệu nguồn của mình nếu nguồn của bạn đang chiếm quá nhiều lưu lượng truy cập hoặc quá trình xử lý lớn từ thời điểm đó. Hạn chế của nó cũng đảm bảo rằng nó có một thiết lập đồng nhất trong đó nguồn đích là của hệ thống tương thích Linux chứ không phải trên môi trường loại Windows vì Percona XtraBackup và MariaDB Backup chỉ hoạt động trong môi trường Linux.
Công cụ Di chuyển Lược đồ Cơ sở dữ liệu
Việc di chuyển cơ sở dữ liệu không chỉ dựa trên một công cụ cụ thể và một tác vụ cụ thể, khi đó quá trình di chuyển có thể xảy ra. Có rất nhiều cân nhắc và các nhiệm vụ cơ bản tiếp theo phải được thực hiện để hoàn thành quá trình di chuyển cơ sở dữ liệu hoàn chỉnh. Một trong số đó là di chuyển lược đồ hoặc di chuyển cơ sở dữ liệu. Một lược đồ trong MySQL / MariaDB là một tập hợp dữ liệu bao gồm một nhóm các bảng với các cột và hàng, sự kiện, trình kích hoạt, các thủ tục hoặc quy trình được lưu trữ và các hàm. Có những trường hợp bạn có thể chỉ muốn di chuyển một lược đồ hoặc chỉ một bảng. Giả sử một bảng cụ thể trên một lược đồ yêu cầu thay đổi cấu trúc bảng của nó và điều đó yêu cầu một câu lệnh DDL. Vấn đề là, chạy một câu lệnh DDL trực tiếp như ALTER TABLE ... ENGINE =InnoDB chặn mọi giao dịch hoặc kết nối đến cũng sẽ tham chiếu hoặc sử dụng đến bảng đích. Đối với một số bảng khổng lồ bao gồm định nghĩa dữ liệu dài và cấu trúc của bảng, nó thêm thách thức thực tế hơn và cũng phức tạp hơn, đặc biệt nếu bảng là một bảng nóng. Trong khi đó trong quá trình di chuyển cơ sở dữ liệu, có thể khó sao chép bản sao đầy đủ chính xác của bảng đầy đủ mà không mất thời gian ngừng hoạt động từ nguồn. Vì vậy, hãy xem đây là những gì.
pt-online-schema-change
Đây là một phần của Bộ công cụ Percona nổi tiếng ban đầu có nguồn gốc từ Maatkit và Aspersa. Công cụ này rất hữu ích khi thực hiện thay đổi định nghĩa bảng, đặc biệt là đối với một bảng nóng chứa một lượng lớn dữ liệu. Đối với một số cách tiếp cận phổ biến nhưng ngây thơ để thực hiện thay đổi định nghĩa bảng, chạy ALTER TABLE có thể thực hiện công việc. Mặc dù vậy là đủ trường hợp, ALTER TABLE mà không sử dụng ALGORITHM =INPLACE gây ra một bản sao toàn bộ bảng có khóa siêu dữ liệu đầy đủ và điều đó có nghĩa là cơ sở dữ liệu của bạn có thể được xếp chồng lên nhau và khóa trong một khoảng thời gian dài, đặc biệt nếu bảng khổng lồ. Trong trường hợp đó, công cụ này được xây dựng để giải quyết vấn đề đó. Công cụ này rất có lợi cho việc di chuyển cơ sở dữ liệu theo cách mà một bản sao không nhất quán được phát hiện của một bảng nóng với dữ liệu rất lớn từ đích cơ sở dữ liệu mục tiêu đã được thiết lập của bạn. Thay vì thực hiện sao lưu bằng cách sử dụng bản sao logic hoặc nhị phân / vật lý, pt-online-schema-change có thể được sử dụng để sao chép các hàng từ bảng nguồn sang bảng đích của nó theo từng đoạn. Bạn thậm chí có thể tùy chỉnh lệnh bằng các lệnh gọi thích hợp đến các tham số của nó tùy thuộc vào yêu cầu của bạn.
Ngoài việc sử dụng, pt-online-schema-change cũng sử dụng trình kích hoạt. Bằng cách sử dụng trình kích hoạt, bất kỳ lưu lượng tiếp theo hoặc đang diễn ra cố gắng áp dụng các thay đổi vào bảng tham chiếu đó cũng sẽ được sao chép vào cơ sở dữ liệu đích hoạt động như một bản sao của cụm cơ sở dữ liệu nguồn hiện tại. Điều này sao chép tất cả dữ liệu chính xác dữ liệu mà cơ sở dữ liệu nguồn có xuống cơ sở dữ liệu mục tiêu của bạn nằm trên một nền tảng khác, chẳng hạn. Việc sử dụng trình kích hoạt có thể áp dụng để sử dụng cho MySQL và MariaDB miễn là công cụ của nó là InnoDB và có sự hiện diện của khóa chính trên bảng đó, đây là một yêu cầu. Bạn có thể biết rằng InnoDB sử dụng cơ chế khóa hàng cho phép đối với một số phần (một nhóm các bản ghi được chọn), pt-online-schema-change sẽ cố gắng sao chép điều đó và sau đó áp dụng câu lệnh INSERT cho bảng đích. . Bảng đích là một bảng giả hoạt động như một bản sao đích của bảng sắp thay thế bảng nguồn hiện có. pt-online-schema-change mặc dù cho phép người dùng xóa bảng giả hoặc chỉ để bảng giả được đặt sẵn cho đến khi quản trị viên sẵn sàng xóa bảng đó. Hãy lưu ý rằng, thả hoặc xóa một bảng sẽ nhận được một meta-datalock. Vì nó có được các trình kích hoạt, mọi thay đổi tiếp theo sẽ được sao chép chính xác vào bảng mục tiêu để lại không có sự khác biệt trên bảng mục tiêu hoặc bảng giả.
gh-ost
Chia sẻ khái niệm tương tự như pt-online-schema-change. Công cụ này tiếp cận khác với pt-online-schema-change. Tôi phải nói rằng, việc di chuyển công cụ lược đồ này tiếp cận những trở ngại dựa trên sản xuất có thể khiến cơ sở dữ liệu của bạn chậm lại và có thể bị kẹt khiến cụm cơ sở dữ liệu của bạn rơi xuống chế độ bảo trì hoặc ngừng hoạt động trong một khoảng thời gian không xác định, cho đến khi sự cố đã giải quyết. Sự cố này thường xảy ra với các trình kích hoạt. Nếu bạn có một bảng bận hoặc nóng đang trải qua thay đổi lược đồ hoặc thay đổi định nghĩa bảng, trình kích hoạt có thể khiến cơ sở dữ liệu của bạn chất đống do tranh chấp khóa. Trình kích hoạt MySQL / MariaDB cho phép cơ sở dữ liệu của bạn xác định trình kích hoạt cho CHÈN, CẬP NHẬT và XÓA. Nếu bảng mục tiêu nằm trên một điểm phát sóng, thì nó có thể trở nên khó chịu. Cơ sở dữ liệu của bạn bắt đầu chậm hơn cho đến khi nó bị kẹt trừ khi bạn có thể loại bỏ các truy vấn đến đó hoặc tốt nhất là loại bỏ các trình kích hoạt, nhưng đó không phải là cách tiếp cận lý tưởng.
Vì những vấn đề đó, gh-ost giải quyết vấn đề đó. Nó hoạt động như thể có một máy chủ nhật ký nhị phân nơi các sự kiện hoặc giao dịch đến được ghi lại ở định dạng nhật ký nhị phân, cụ thể là sử dụng RBR (Nhân rộng Dựa trên Hàng). Trên thực tế, nó rất an toàn và ít lo lắng về tác động mà bạn cần phải đối mặt. Trên thực tế, bạn cũng có tùy chọn để thực hiện kiểm tra hoặc chạy khô (giống như với pt-online-schema-change) nhưng kiểm tra trực tiếp vào bản sao hoặc nút phụ. Điều này hoàn hảo nếu bạn muốn tìm hiểu và kiểm tra bản sao chính xác vào cơ sở dữ liệu mục tiêu của mình trong quá trình di chuyển.
Công cụ này rất linh hoạt phù hợp với nhu cầu của bạn và ngụ ý đảm bảo rằng cụm của bạn sẽ không bị kẹt hoặc có thể kết thúc thực hiện chuyển đổi dự phòng hoặc khôi phục dữ liệu nếu nó trở nên tồi tệ hơn. Để biết thêm thông tin và muốn tìm hiểu công cụ này, tôi khuyên bạn nên đọc bài đăng này từ Github của Shlomi Noach.
Các công cụ OSC khác
Tôi có thể nói, hai công cụ đó là một cách tiếp cận được đề xuất nhiều hơn nhưng các lựa chọn thay thế khác mà bạn cũng có thể thử. Hầu hết, các công cụ này áp dụng trình kích hoạt MySQL / MariaDB nên bằng cách nào đó, nó có chung khái niệm là pt-online-schema-change. Đây là danh sách sau:
- LHM - Di chuyển cơ sở dữ liệu kiểu Rails là một cách hữu ích để phát triển lược đồ dữ liệu của bạn theo cách nhanh nhẹn. Hầu hết các dự án Rails đều bắt đầu như vậy và lúc đầu, việc thực hiện các thay đổi rất nhanh chóng và dễ dàng.
- OnlineSchemaChange - Do Facebook tạo và khởi xướng. Công cụ này được sử dụng để thực hiện các thay đổi giản đồ cho các bảng MySQL theo cách không chặn
- TableMigrator - Được khởi xướng bởi Serious Business và các cựu nhân viên của Twitter. Công cụ này chia sẻ cùng một nguyên tắc với việc di chuyển thời gian chết của các bảng lớn trong MySQL. Nó được triển khai bằng Rails nên có thể hữu ích nếu bạn có môi trường ứng dụng Ruby-on-Rails.
- oak-online-alter-table - đây là một công cụ cũ được tạo bởi Shlomi Noach mặc dù bằng cách nào đó, nó tiếp cận theo cùng một cách tiếp cận pt-online-schema-change và thực hiện thao tác ALTER TABLE không chặn
Công cụ hướng dẫn di chuyển cơ sở dữ liệu
Có một số công cụ di chuyển cung cấp việc sử dụng miễn phí, điều này rất có lợi ở một mức độ nào đó. Điều thuận lợi hơn khi sử dụng các công cụ hướng dẫn di chuyển là chúng có GUI mà bạn có thể thuận tiện để xem cấu trúc hiện tại hoặc chỉ cần làm theo các bước mà giao diện người dùng cung cấp trong quá trình di chuyển. Có thể có nhiều dịch vụ hoặc công cụ thuật sĩ nhưng nó không phải là mã nguồn mở và không có sẵn miễn phí. Tất nhiên, việc di chuyển cơ sở dữ liệu là một quá trình rất phức tạp nhưng có hệ thống nhưng đối với một số trường hợp, nó đòi hỏi nhiều công sức và nỗ lực. Hãy cùng xem những công cụ miễn phí này.
MySQL Workbench
Như tên cho thấy, nó dành cho MySQL và các cơ sở dữ liệu phái sinh như Percona Server chẳng hạn, có thể hữu ích khi nói đến việc di chuyển cơ sở dữ liệu. Vì MariaDB đã hoàn toàn chuyển sang một lộ trình khác, đặc biệt là kể từ phiên bản 10.2, có một số vấn đề không tương thích mà bạn có thể gặp phải nếu bạn cố gắng sử dụng nó từ nguồn hoặc đích MariaDB. Workbench có thể được sử dụng cho các loại cơ sở dữ liệu không đồng nhất, chẳng hạn như những cơ sở dữ liệu đến từ các cơ sở dữ liệu nguồn khác nhau và muốn kết xuất dữ liệu sang MySQL.
MySQL Workbench bao gồm các phiên bản cộng đồng và doanh nghiệp. Tuy nhiên, phiên bản cộng đồng được cung cấp miễn phí dưới dạng GPL mà bạn có thể tìm thấy tại đây https://github.com/mysql/mysql-workbench. Như tài liệu đã nêu, MySQL Workbench Cho phép bạn di chuyển từ Microsoft SQL Server, Microsoft Access, Sybase ASE, SQLite, SQL Anywhere, PostreSQL và các bảng, đối tượng và dữ liệu RDBMS khác sang MySQL. Migration cũng hỗ trợ di chuyển từ các phiên bản MySQL trước đó sang các phiên bản mới nhất.
phpMyAdmin
Đối với những người làm việc với tư cách là nhà phát triển web sử dụng LAMP stack, công cụ này không có gì ngạc nhiên khi trở thành một trong những con dao quân đội Thụy Sĩ của họ khi xử lý các tác vụ cơ sở dữ liệu. phpMyAdmin là một công cụ phần mềm miễn phí được viết bằng PHP, nhằm xử lý việc quản trị MySQL qua Web. phpMyAdmin hỗ trợ một loạt các hoạt động trên MySQL và MariaDB. Các hoạt động thường được sử dụng (quản lý cơ sở dữ liệu, bảng, cột, quan hệ, chỉ mục, người dùng, quyền, v.v.) có thể được thực hiện thông qua giao diện người dùng, trong khi bạn vẫn có khả năng thực thi trực tiếp bất kỳ câu lệnh SQL nào.
Mặc dù nó khá đơn giản khi nhập và xuất, nhưng điều quan trọng là nó làm cho công việc được hoàn thành. Mặc dù đối với quá trình di chuyển lớn hơn và phức tạp hơn, điều này có thể không đủ để xử lý các nhu cầu mong muốn của bạn.
HeidiSQL
HeidiSQL là phần mềm miễn phí và có mục đích là dễ học. "Heidi" cho phép bạn xem và chỉnh sửa dữ liệu và cấu trúc từ máy tính chạy một trong các hệ thống cơ sở dữ liệu MariaDB, MySQL, Microsoft SQL, PostgreSQL và SQLite. Được phát minh vào năm 2002 bởi Ansgar, HeidiSQL thuộc về các công cụ phổ biến nhất cho MariaDB và MySQL trên toàn thế giới.
Với mục đích di chuyển, nó cho phép bạn xuất trực tiếp từ một máy chủ / cơ sở dữ liệu sang một máy chủ / cơ sở dữ liệu khác. Nó cũng có các tính năng nhập để cho phép các trường văn bản như CSV và cũng xuất các hàng của bảng thành nhiều loại tệp được hỗ trợ như CSV, HTML, XML, SQL, LaTeX, Wiki Markup và PHP Array. Mặc dù nó được xây dựng để quản lý cơ sở dữ liệu cho mục đích quản trị máy chủ db, nhưng bạn có thể sử dụng nó cho những công việc di chuyển đơn giản.
Bộ công cụ Percona Như con dao quân đội Thụy Sĩ của bạn
Percona Toolkit là phần mềm đáng chú ý đang được phân phối dưới dạng phần mềm mã nguồn mở theo bảo hành của GPL. Percona Toolkit là một tập hợp các công cụ dòng lệnh nâng cao thường được Percona sử dụng nội bộ nhưng nó cũng có thể áp dụng cho mọi công việc liên quan đến cơ sở dữ liệu, đặc biệt là đối với các máy chủ MySQL / MariaDB.
Vậy làm thế nào và tại sao nó cũng hữu ích cho việc di chuyển dữ liệu, đặc biệt là trong việc di chuyển MySQL / MariaDB? Họ có một số công cụ ở đây có lợi để sử dụng khi di chuyển và sau khi di chuyển.
Như đã đề cập trước đó, cách tiếp cận phổ biến của việc di chuyển dữ liệu là có máy chủ đích đích là bản sao của cụm cơ sở dữ liệu nguồn chính nhưng trong một thiết lập đồng nhất. Điều này có nghĩa là, nếu tình hình chuyển từ tại chỗ sang nhà cung cấp đám mây công cộng, bạn có thể thiết lập một nút được bầu chọn từ nền tảng đó và nút này sẽ sao chép tất cả các giao dịch từ cụm chính. Bằng cách sử dụng các công cụ sao lưu, bạn có thể đạt được kiểu thiết lập di chuyển này. Nhưng nó không kết thúc ở đó. Percona Toolkit có các công cụ đồng bộ hóa pt-table-checksum / pt-table-table chẳng hạn để giúp bạn xác định sự mâu thuẫn dữ liệu giữa máy chủ cơ sở dữ liệu tại chỗ so với máy chủ cơ sở dữ liệu đích đích. Với pt-table-checksum, bạn có thể thực hiện các phép tính tổng kiểm dựa trên một loạt các phần cho tất cả cơ sở dữ liệu hoặc chỉ tổng kiểm tra có chọn lọc trên các cơ sở dữ liệu cụ thể, hoặc các bảng cụ thể, hoặc thậm chí một loạt các bản ghi của bảng. pt-table-sync sẽ được sử dụng để thực hiện đồng bộ hóa dữ liệu, do đó, cơ sở dữ liệu mục tiêu của bạn sẽ được làm mới lại với bản sao mới của dữ liệu chính xác từ cụm nguồn chính.
Mặt khác, nâng cấp pt rất hữu ích sau khi quá trình di chuyển từ các công cụ sao lưu được thực hiện. Với nâng cấp pt, bạn có thể sử dụng công cụ này để thực hiện phân tích bằng cách chạy một tập hợp các truy vấn, ví dụ:từ tệp nhật ký truy vấn chậm. Những kết quả này có thể được sử dụng để so sánh từ cơ sở dữ liệu nguồn và với máy chủ cơ sở dữ liệu đích.
Tóm tắt
Việc di chuyển cơ sở dữ liệu, đặc biệt là từ một thiết lập không đồng nhất, có thể rất phức tạp. Tuy nhiên, trên một thiết lập đồng nhất, nó có thể khá đơn giản; bất kể dữ liệu lớn hay nhỏ miễn là bạn được trang bị các công cụ thích hợp và tất nhiên, cách tiếp cận có hệ thống chính xác để xác định rằng quá trình di chuyển hoàn tất với dữ liệu nhất quán. Đôi khi việc di chuyển đòi hỏi phải tham khảo ý kiến của các chuyên gia, nhưng luôn là một khởi đầu tuyệt vời để tìm ra và thử với các công cụ nguồn mở này để đạt được nhiệm vụ di chuyển cơ sở dữ liệu mong muốn của bạn.