Thứ năm, 18/09/2014 | 00:00 GMT+7

Cách cài đặt server Percona mới hoặc thay thế MySQL

Server Percona là một nhánh thay thế thả vào của dự án MySQL. Percona nhằm mục đích cung cấp hiệu suất, tính nhất quán và khả năng mở rộng tốt hơn trên tất cả phần cứng. Hướng dẫn này sẽ hướng dẫn bạn thay thế cài đặt MySQL hoặc MariaDB hiện tại bằng version Server Percona mới nhất hoặc cài đặt Server Percona từ đầu trên một Server mới.

Những lợi ích

Server Percona có một số lợi ích so với cài đặt MySQL cơ bản:

  • XtraDB : Một trong những lợi ích chính của việc chuyển sang Server Percona là XtraDB , một nhánh rẽ tương thích ngược của công cụ InnoDB với những cải tiến lớn về hiệu suất và hiệu quả, cho phép bạn nhận được thông lượng truy vấn tốt hơn từ phần cứng hiện tại của bạn . Vì nó được xây dựng trên nền InnoDB, các bảng InnoDB hiện tại của bạn sẽ được tải một cách minh bạch thông qua XtraDB mà không cần bất kỳ quá trình di chuyển nào.

  • Tính ổn định và nhất quán : Server Percona hoạt động đồng nhất hơn khi tải, nghĩa là các ứng dụng của bạn sẽ ít phải chịu trách nhiệm về thời gian chết hoặc chậm liên tục.

  • Chỉ số : Server Percona đi kèm với một số chỉ số hiệu suất bổ sung được tích hợp sẵn, cho phép bạn khám phá chính xác user , bảng, index hoặc truy vấn nào đang làm chậm bạn. Việc nhận được hiệu suất tuyệt vời từ server của bạn trở nên khoa học hơn và ít phụ thuộc vào phỏng đoán hơn.

  • Xác thực PAM : Thường là một tính năng dành riêng cho MySQL Enterprise Edition, với Server Percona, bạn có thể liên kết sơ đồ xác thực với quyền truy cập database của bạn .

  • Khả năng tương thích : Vì server Percona là bản thay thế cho MySQL, bạn cũng nhận được tất cả các lợi ích thông thường của sự phổ biến rộng rãi của MySQL và cộng đồng lớn user . Điều này nghĩa là bất kỳ ứng dụng nào được thiết kế cho MySQL đều có thể sử dụng Percona Server một cách an toàn mà không có bất kỳ thay đổi nào.

Yêu cầu

  • Server cloud Debian, Ubuntu hoặc CentOS : Các bản phân phối khác hiện không được hỗ trợ. Chỉ hỗ trợ CentOS version 5 & 6; CentOS 7 không được hỗ trợ tại thời điểm viết bài.

  • Một Server mới hoặc cài đặt MySQL / MariaDB cập nhật : Server Percona có thể được cài đặt từ đầu trên Server mới hoặc thay thế cho cài đặt MySQL / MariaDB hiện tại. Tùy thuộc vào tình huống bạn gặp phải, một số bước trong bài viết này có thể chỉ liên quan đến một trường hợp và sẽ được đánh dấu bằng (Chỉ mới) hoặc (Chỉ thay thế) . Mọi phần hoặc đoạn văn không được đánh dấu nên được sử dụng cho cả hai trường hợp.

  • Quyền truy cập root : Tất cả các lệnh trong bài viết này phải được thực thi dưới dạng root.

  • Bộ nhớ : Đối với cài đặt mặc định, bạn cần ít nhất 1 GB Server , nếu không bạn có thể gặp lỗi cài đặt do không đủ bộ nhớ để phân bổ vùng đệm. Nếu bạn có một server 512MB với không gian swap được phân bổ, bạn cũng có thể cài đặt thành công, mặc dù với hiệu suất phụ.

  • Backup dữ liệu (Chỉ thay thế) : Trước khi thực hiện bất kỳ thay đổi nào đối với cài đặt server database của bạn, hãy đảm bảo bạn có bản backup của tất cả dữ liệu hiện tại của bạn . Hướng dẫn này sẽ giữ nguyên tất cả các file dữ liệu, chỉ loại bỏ binary MySQL và các công cụ liên quan - nhưng lý tưởng nhất là có một bản backup trong trường hợp có sự cố. Ta có một số bài viết ở đây trên DigitalOcean đề cập đến việc backup các file database của bạn.

  • Backup cấu hình (Chỉ thay thế) : Tương tự như vậy, bạn nên tạo một bản sao cấu hình MySQL / MariaDB hiện tại của bạn nếu bạn đang thay thế cài đặt hiện tại; file này có thể được tìm thấy tại /etc/mysql/my.cnf trên hệ thống Debian / Ubuntu và /etc/my.cnf trên hệ thống CentOS. Trên CentOS, gói MariaDB sẽ loại bỏ file cấu hình khi gỡ cài đặt, vì vậy bước này đặc biệt quan trọng trên các hệ thống này.

Bước một - Kiểm tra version (Chỉ thay thế)

Các version Server Percona chỉ tương thích với các version MySQL tương đương của chúng. tức là MySQL 5.6 chỉ nên được thay thế bằng Percona Server 5.6. Cố gắng sử dụng các version không khớp có thể dẫn đến hỏng bảng hoặc ngăn server khởi động.

Để kiểm tra version bạn đang chạy, trước tiên hãy kết nối với MySQL bằng password root hiện tại của bạn:

mysql -u root -p 

Sau đó tìm version đã cài đặt hiện tại:

SHOW VARIABLES LIKE "version"; 

Điều này sẽ xác định xem bạn cần cài đặt Percona Server 5.5 hay 5.6. Trường hợp duy nhất là nếu bạn đang chạy MariaDB 10.0, cần được thay thế bằng Percona Server 5.6. Nếu bạn đang chạy version MySQL cũ hơn 5.5, trước tiên bạn nên nâng cấp MySQL lên 5.5 hoặc cao hơn trước khi tiếp tục.

Bước hai - Xóa MySQL (Chỉ thay thế)

Trước khi cài đặt server Percona, ta cần xóa bất kỳ gói MySQL hoặc MariaDB nào hiện đang được cài đặt, vì bạn không nên cố gắng chạy đồng thời cả hai trên cùng một dữ liệu.

Bạn nên có một bản backup dữ liệu và các file cấu hình của bạn trước khi tiếp tục.

Trước khi gỡ cài đặt MySQL, bạn nên dừng server database để ngăn chặn dữ liệu bị hỏng trong trường hợp quá trình không dừng một cách an toàn trong quá trình gỡ bỏ gói:

service mysql stop 

Đối với các server dựa trên Debian và Ubuntu, server MySQL và các gói client cần được gỡ bỏ:

apt-get remove mysql-server mysql-client mysql-common apt-get autoremove 

Đối với hệ thống CentOS, database mặc định bây giờ là MariaDB, có thể được gỡ cài đặt như sau:

yum remove MariaDB-server MariaDB-client MariaDB-shared 

Đối với các biến thể khác, vui lòng tham khảo tài liệu của bạn để biết quy trình gỡ cài đặt.

Bước 3 - Cài đặt Server Percona

Server Percona có thể không nằm trong repository lưu trữ mặc định của bản phân phối Linux của bạn, vì Percona quản lý repository của riêng họ đảm bảo các bản cập nhật được đẩy đến user nhanh nhất có thể. Do đó, ta cần thêm các repository Percona APT hoặc yum theo cách thủ công trước khi cài đặt. Làm theo hướng dẫn bên dưới cho hệ điều hành server của bạn.

Debian và Ubuntu (Apt)

Các gói Debian và Ubuntu do Percona phát hành đã được ký, nghĩa là APT cần được thông báo về khóa ký mới:

apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A 

Trước khi ta thực hiện bước tiếp theo, hãy đảm bảo bạn biết bản phân phối mà bạn hiện đang sử dụng. Đối với Debian, đây sẽ là một trong số:

  • vắt kiệt
  • khò khè

Tương tự như vậy, đối với Ubuntu, các bản phân phối được hỗ trợ là:

  • minh mẫn
  • tóm lược
  • xấc xược
  • tin cậy

Nếu bạn không chắc mình đang sử dụng version phân phối nào, bạn có thể thực hiện lệnh sau:

lsb_release -c 

Khi bạn chắc chắn mình đang chạy bản phân phối nào, ta có thể thêm repository Percona mới bằng cách nối các dòng sau vào file /etc/apt/sources.list :

nano /etc/apt/sources.list 

Thêm các dòng này ở cuối file , đảm bảo thay thế DIST bằng tên phân phối của bạn (nghĩa là bạn sẽ thay thế DIST bằng wheezy hoặc trusty , v.v.):

deb http://repo.percona.com/apt DIST main deb-src http://repo.percona.com/apt DIST main 

Khi bạn đã lưu file nguồn, các gói Percona tiếp theo sẽ được ghim đảm bảo rằng các gói từ Percona sẽ luôn được ưu tiên hơn bất kỳ gói nào từ repository mặc định của phân phối của bạn. Để thực hiện việc này, trước tiên ta tạo một file tùy chọn mới cho APT:

touch /etc/apt/preferences.d/00percona.pref 

Bây giờ, hãy mở file này tại /etc/apt/preferences.d/00percona.pref bằng editor đã chọn của bạn (Vim, nano, v.v.), thêm các dòng sau và lưu:

Package: * Pin: release o=Percona Development Team Pin-Priority: 1001 

Cuối cùng, khi các nguồn được thêm và ghim, danh sách gói có thể được cập nhật và ta có thể cài đặt gói Server Percona.

(Chỉ mới) Đối với một Server mới, bạn nên cài đặt gói server ảo percona-server , gói này sẽ cài đặt version Server Percona do group Percona đề xuất:

apt-get update apt-get install percona-server-server 

(Chỉ thay thế) Tham khảo version MySQL hoặc MariaDB bạn đã đặt trước đó. Để thay thế version 5.5, hãy sử dụng gói percona-server-server-5.5percona-server-server-5.6 cho 5.6. MariaDB 10.0 nên được thay thế bằng Percona Server 5.6.

apt-get update apt-get install percona-server-server-5.6 

Nếu lệnh này hoàn thành mà không có lỗi, Server Percona sẽ được cài đặt và chạy thành công. Tuy nhiên, nếu bạn gặp lỗi trong khi cài đặt, hãy đảm bảo bạn có đủ bộ nhớ trống, theo phần yêu cầu ở trên. Bạn có thể tìm thấy thêm thông tin về bất kỳ lỗi khởi động nào trong file log của Server Percona tại /var/log/mysqld.log .

(Chỉ mới) Khi cài đặt trên một hệ thống mới, bạn có thể được yêu cầu trong quá trình cài đặt đặt password user database root . Trong trường hợp này, bạn cũng nên chạy cài đặt bảo mật mysql đảm bảo không còn vấn đề bảo mật rõ ràng nào:

/usr/bin/mysql_secure_installation 

CentOS (Yum)

Percona hiện chỉ hỗ trợ version CentOS 5 và 6. Tại thời điểm viết bài, CentOS 7 không được hỗ trợ.

Bước đầu tiên đối với hệ thống CentOS là cài đặt các gói repository Percona vào yum.

Đối với hệ thống CentOS 64-bit:

yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm 

Đối với hệ thống CentOS 32-bit:

yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.i386.rpm 

Sau khi hoàn tất, ta có thể cài đặt version chính xác của gói Server Percona.

(Chỉ mới) Khi cài đặt từ đầu, bạn nên sử dụng gói Percona Server 5.6:

yum install Percona-Server-client-56 Percona-Server-server-56 

(Chỉ thay thế) Khi thay thế cài đặt trước đó, hãy sử dụng số version có trong phần kiểm tra version ở trên để chọn đúng gói tương ứng của Percona-Server-server-55 hoặc Percona-Server-server-56 . MariaDB 10.0 nên được thay thế bằng Percona Server 5.6.

yum install Percona-Server-client-56 Percona-Server-server-56 

Bạn cần chấp nhận các gói và sau đó chấp nhận khóa ký gói –đồng ý cho cả hai. Sau một thời gian ngắn, quá trình cài đặt sẽ hoàn tất mà không có bất kỳ lỗi nào. Nếu bạn nhận được lỗi giao dịch trong khi cài đặt, hãy đảm bảo bạn đã gỡ bỏ hoàn toàn bất kỳ gói MySQL / MariaDB nào trước khi thử lại.

Với gói hiện đã được cài đặt, bước cài đặt cuối cùng là khởi động server :

service mysql start 

Nếu bạn nhận được lỗi liên quan đến file PID, server không khởi động được. Như đã đề cập trong phần yêu cầu , điều này thường xảy ra trên các server RAM thấp, nơi giới hạn bộ nhớ ngăn việc phân bổ vùng đệm XtraDB. Nếu không đúng như vậy, hãy kiểm tra /var/log/mysqld.log để biết thêm bất kỳ thông báo lỗi nào, đảm bảo bạn đã khớp đúng các version giữa MariaDB và Percona Server.

Lưu ý: Nếu bạn nâng cấp từ MariaDB và nhận được lỗi như sau:

Can't read dir of '/etc/my.cnf.d' (Errcode: 2 - No such file or directory) Fatal error in defaults handling. Program aborted Starting MySQL (Percona Server). ERROR! The server quit without updating PID file (/var/lib/mysql/percona-centos.pid). 

Bạn có thể tạo folder thích hợp bằng lệnh mkdir /etc/my.cnf.d . Sau đó, hãy thử khởi động server .

(Chỉ mới) Khi cài đặt trên một hệ thống mới, user root Server Percona của bạn sẽ không được gán password và do đó database của bạn sẽ không được bảo mật. Do đó, bạn nên sử dụng cài đặt bảo mật mysql để cài đặt password mới và các tùy chọn bảo mật khác. Khi được yêu cầu nhập password root hiện tại, chỉ cần nhấn Enter.

/usr/bin/mysql_secure_installation 

Bước Bốn - Cấu hình

Nếu bạn đã thay thế một bản cài đặt MySQL hiện có, bạn nên tạo một bản sao của file cấu hình của bạn để bây giờ có thể sao chép lại. Bạn có thể bỏ qua phần này, mặc dù bạn có thể thấy cài đặt ví dụ hữu ích.

Tuy nhiên, nếu bạn đang cài đặt Server Percona trên Server mới, bạn cần thêm file cấu hình, vì Server Percona hiện đang chạy trên các giá trị mặc định có thể không tối ưu cho Server. Trước khi ta cập nhật cấu hình lần đầu tiên, ta nên dừng Server Percona, vì vị trí file PID có thể thay đổi. Đối với các thay đổi cấu hình trong tương lai, chỉ cần khởi động lại đơn giản sau khi thay đổi được thực hiện.

service mysql stop 

Dưới đây là file cấu hình mẫu cho server 1GB, với vùng đệm tương đối nhỏ để tương thích. Trên Debian / Ubuntu file này phải được ghi vào /etc/mysql/my.cnf . Trên CentOS, file này phải được ghi vào /etc/my.cnf . Tệp chứa các comment nội dòng để giải thích những gì các phần khác nhau đang làm.

# Generated by Percona Configuration Wizard (http://tools.percona.com/) version REL5-20120208 [mysql]  # CLIENT # # Configure default options for clients port                           = 3306  [mysqld]  # GENERAL # # Choose user for execution, default storage engine and location of the PID file user                           = mysql default-storage-engine         = InnoDB pid-file                       = /var/lib/mysql/mysql.pid  # MyISAM # # Setup MyISAM options with a minimal config, as InnoDB is our default engine key-buffer-size                = 32M myisam-recover                 = FORCE,BACKUP  # SAFETY # # Enforce limits and safety checks max-allowed-packet             = 16M max-connect-errors             = 1000000 innodb                         = FORCE  # DATA STORAGE # # Select location for database files datadir                        = /var/lib/mysql/  # BINARY LOGGING # # Enable and setup the binary log log-bin                        = /var/lib/mysql/mysql-bin expire-logs-days               = 14 sync-binlog                    = 1  # CACHES AND LIMITS # # Configure reasonable default limits throughout Percona Server tmp-table-size                 = 32M max-heap-table-size            = 32M query-cache-type               = 0 query-cache-size               = 0 max-connections                = 500 thread-cache-size              = 50 open-files-limit               = 65535 table-definition-cache         = 1024 table-open-cache               = 2048  # INNODB # # Setup InnoDB/XtraDB engine a 300MB buffer pool and 32MB log file size innodb-flush-method            = O_DIRECT innodb-log-files-in-group      = 2 innodb-log-file-size           = 32M innodb-flush-log-at-trx-commit = 1 innodb-file-per-table          = 1 innodb-buffer-pool-size        = 300M  # LOGGING # # Setup log file locations for error log and slow log # Slow log may be disabled on production setups to prevent extra IO log-error                      = /var/lib/mysql/mysql-error.log log-queries-not-using-indexes  = 1 slow-query-log                 = 1 slow-query-log-file            = /var/lib/mysql/mysql-slow.log 

Đối với các server lớn hơn hoặc là điểm khởi đầu cho file cấu hình tùy chỉnh của bạn, bạn có thể sử dụng Trình hướng dẫn cấu hình Percona để tạo cơ sở phù hợp cho file cấu hình của bạn .

Khi bạn đã lưu file , bạn có thể khởi động lại Server Percona:

service mysql restart 

Nếu server không khởi động được với cấu hình này, hãy thử giảm kích thước innodb-buffer-pool- xuống một giá trị nhỏ hơn và lặp lại lệnh trên.

Bước 5 - Kiểm tra cài đặt của bạn

Bây giờ ta đã cài đặt và chạy Server Percona, ta có thể đảm bảo mọi thứ đã diễn ra như kế hoạch bằng cách chạy một vài lần kiểm tra cuối cùng. Đầu tiên, kết nối với database bằng client mysql , đăng nhập bằng password user root database của bạn:

mysql -u root -p 
Enter password:  Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 45 Server version: 5.5.38-35.2 Percona Server (GPL), Release 35.2, Revision 674  Copyright (c) 2009-2014 Percona LLC and/or its affiliates Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.  Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  mysql>  

Ngay lập tức ta có thể thấy rằng version server trong văn bản kết nối hiện đang chỉ định Server Percona. Bằng cách sử dụng lệnh SHOW VARIABLES, ta có thể tìm hiểu thêm chi tiết về version cụ thể đã được cài đặt:

SHOW VARIABLES LIKE "version%"; 
+-------------------------+--------------------------------------------------+ | Variable_name           | Value                                            | +-------------------------+--------------------------------------------------+ | version                 | 5.5.38-35.2                                      | | version_comment         | Percona Server (GPL), Release 35.2, Revision 674 | | version_compile_machine | x86_64                                           | | version_compile_os      | debian-linux-gnu                                 | +-------------------------+--------------------------------------------------+ 4 rows in set (0.00 sec) 

Các giá trị và version chính xác có thể khác nhau trong cài đặt của bạn, nhưng điểm mấu chốt là ta hiện đang chạy Server Percona chứ không phải MySQL.

Tiếp theo, ta có thể kiểm tra xem ta có đang tận dụng XtraDB cho bất kỳ bảng nào dựa trên InnoDB không:

SHOW STORAGE ENGINES\G 

Kết quả sẽ hiển thị khối này trong số nhiều khối khác:

 ...  *************************** 8. row ***************************       Engine: InnoDB      Support: DEFAULT      Comment: Percona-XtraDB, Supports transactions, row-level locking, and foreign keys Transactions: YES           XA: YES   Savepoints: YES  ...  9 rows in set (0.00 sec)  

Trường comment trong phản hồi cho thấy rằng công cụ XtraDB đã được tải làm công cụ cho các bảng dựa trên InnoDB. Để kiểm tra lần cuối, bạn nên đảm bảo tất cả các database và bảng của bạn đang được đọc đúng cách trong server mới.

Nếu tất cả các lần kiểm tra này đều được thông qua, bạn đã có Server Percona đang chạy thành công. Tuy nhiên, nếu bất kỳ lần kiểm tra nào trong số này không thành công, hãy đảm bảo bạn đã hoàn thành đúng tất cả các bước trước của hướng dẫn này, đặc biệt chú ý đến việc khớp số version MySQL với số version Server Percona.

Bước tiếp theo

Vì Percona tương thích với MySQL nên tất cả các hướng dẫn DigitalOcean về MySQL đều được dùng một cách an toàn với Server Percona. Khi kết nối với database , các ứng dụng của bạn sẽ vẫn hoạt động giống nhau, mặc dù hy vọng bây giờ với sự tăng hiệu suất từ cả Server Percona và XtraDB.

Các lệnh MySQL sẽ hoạt động chính xác như trước đây.


Tags:

Các tin liên quan

Cách cài đặt puppet để quản lý cơ sở hạ tầng server của bạn
2014-08-15
Cách cấu hình BIND làm server DNS Mạng riêng trên Ubuntu 14.04
2014-08-12
Cách cấu hình BIND làm server DNS Mạng riêng trên Ubuntu 14.04
2014-08-12
Thiết lập server ban đầu với CentOS 7
2014-07-21
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên CentOS 7
2014-07-21
Cách sử dụng NSD, một server DNS chỉ ủy quyền, trên Ubuntu 14.04
2014-07-03
Cách cấu hình bind server lưu trữ hoặc chuyển tiếp DNS trên Ubuntu 14.04
2014-07-01
cách cấu hình bind làm server DNS chỉ ủy quyền trên Ubuntu 14.04
2014-07-01
So sánh các loại server DNS: Cách chọn cấu hình DNS phù hợp
2014-07-01
5 Thiết lập server Chung cho Ứng dụng Web của Bạn
2014-05-30