如何在 CentOS 7 上安裝 Percona伺服器

8 贊 回覆發表於2015-06-22

在這篇文章中我們將瞭解關於 Percona 伺服器,一個開源的MySQL,MariaDB的替代品。InnoDB的資料庫引擎使得Percona 伺服器非常有吸引力,如果你需要的高效能,高可靠性和高價效比的解決方案,它將是一個很好的選擇。

在下文中將介紹在CentOS 7上 Percona 伺服器的安裝,以及備份當前資料,配置的步驟和如何恢復備份。

如何在 CentOS 7 上安裝 Percona伺服器

1.什麼是Percona,為什麼使用它

Percona是一個MySQL,MariaDB資料庫的開源替代品,它是MySQL的一個分支,相當多的改進和獨特的功能使得它比MYSQL更可靠,效能更強,速度更快,它與MYSQL完全相容,你甚至可以在Oracle的MySQL與Percona之間使用複製。

在Percona中獨具特色的功能

  • 分割槽適應雜湊搜尋
  • 快速校驗演算法
  • 緩衝池預載入
  • 支援FlashCache

MySQL企業版和Percona中的特有功能

  • 從不同的伺服器匯入表
  • PAM認證
  • 審計日誌
  • 執行緒池

現在,你肯定很興奮地看到這些好的東西整合在一起,我們將告訴你如何安裝和對Percona Server做基本配置。

2. 備份你的資料庫

接下來,在命令列下使用SQL命令建立一個mydatabases.sql檔案,來重建或恢復salesdb和employeedb資料庫,根據你的設定替換資料庫名稱,如果沒有安裝MySQL則跳過此步:

mysqldump -u root -p --databases employeedb salesdb > mydatabases.sql

複製當前的配置檔案,如果你沒有安裝MYSQL也可跳過:

cp my.cnf my.cnf.bkp

3.刪除之前的SQL伺服器

停止MYSQL/MariaDB,如果它們還在執行:

systemctl stop mysql.service

解除安裝MariaDB和MYSQL:

yum remove MariaDB-server MariaDB-client MariaDB-shared mysql mysql-server

移動重新命名放在/var/lib/mysql當中的MariaDB檔案。這比僅僅只是移除更為安全快速,這就像2級即時備份。:)

mv /var/lib/mysql /var/lib/mysql_mariadb

4.使用二進位制包安裝Percona

你可以在眾多Percona安裝方法中選擇,在CentOS中使用Yum或者RPM包安裝通常是更好的主意,所以這些是本文介紹的方式,下載原始檔編譯後安裝在本文中並沒有介紹。

從Yum倉庫中安裝:

首先,你需要設定Percona的Yum庫:

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

接下來安裝Percona:

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

上面的命令安裝Percona的伺服器和客戶端、共享庫,可能需要Perl和Perl模組,以及其他依賴的需要,如DBI::MySQL。如果這些尚未安裝,可能需要安裝更多的依賴包。

使用RPM包安裝:

我們可以使用wget命令下載所有的rpm包:

wget -r -l 1 -nd -A rpm -R "*devel*,*debuginfo*" /

http://www.percona.com/downloads/Percona-Server-5.5/Percona-Server-5.5.42-37.1/binary/redhat/7/x86_64/

使用rpm工具,一次性安裝所有的rpm包:

rpm -ivh Percona-Server-server-55-5.5.42-rel37.1.el7.x86_64.rpm /
Percona-Server-client-55-5.5.42-rel37.1.el7.x86_64.rpm /
Percona-Server-shared-55-5.5.42-rel37.1.el7.x86_64.rpm

注意在上面命令語句中最後的反斜槓’/'(只是為了換行方便)。如果您安裝單獨的軟體包,記住要解決依賴關係,在安裝客戶端之前要先安裝共享包,在安裝伺服器之前請先安裝客戶端。

5.配置Percona伺服器

恢復之前的配置

當我們從MariaDB遷移過來時,你可以將之前的my.cnf的備份檔案恢復回來。

cp /etc/my.cnf.bkp /etc/my.cnf

建立一個新的my.cnf檔案

如果你需要一個適合你需求的新的配置檔案或者你並沒有備份配置檔案,你可以使用以下方法,通過簡單的幾步生成新的配置檔案。

下面是Percona-server軟體包自帶的my.cnf檔案

# Percona Server template configuration

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

根據你的需要配置好my.cnf後,就可以啟動該服務了:

systemctl restart mysql.service

如果一切順利的話,它已經準備好執行SQL命令了,你可以用以下命令檢查它是否已經正常啟動:

mysql -u root -p -e 'SHOW VARIABLES LIKE "version_comment"'

如果你不能夠正常啟動它,你可以在/var/log/mysql/mysqld.log中查詢原因,該檔案可在my.cnf的[mysql_safe]的log-error中設定。

tail /var/log/mysql/mysqld.log

你也可以在/var/lib/mysql/資料夾下查詢格式為[主機名].err的檔案,就像下面這個例子:

tail /var/lib/mysql/centos7.err

如果還是沒找出原因,你可以試試strace:

yum install strace && systemctl stop mysql.service && strace -f -f mysqld_safe

上面的命令挺長的,輸出的結果也相對簡單,但絕大多數時候你都能找到無法啟動的原因。

6.保護你的資料

好了,你的關聯式資料庫管理系統已經準備好接收SQL查詢,但是把你寶貴的資料放在沒有最起碼安全保護的伺服器上並不可取,為了更為安全最好使用mysqlsecureinstall來安裝,這個工具可以幫助你刪除未使用的預設功能,並設定root的密碼,限制使用此使用者進行訪問。只需要在shell中執行該命令,並參照螢幕上的說明操作。

mysql_secure_install

7.還原備份

如果您參照之前的設定,現在你可以恢復資料庫,只需再用mysqldump一次。

mysqldump -u root -p < mydatabases.sql

恭喜你,你剛剛已經在你的CentOS上成功安裝了Percona,你的伺服器已經可以正式投入使用;你可以像使用MySQL一樣使用它,你的伺服器與它完全相容。

總結

為了獲得更強的效能你需要對配置檔案做大量的修改,但這裡也有一些簡單的選項來提高機器的效能。當使用InnoDB引擎時,將innodbfileper_table設定為on,它將在一個檔案中為每個表建立索引表,這意味著每個表都有它自己的索引檔案,它使系統更強大和更容易維修。

可以修改innodbbufferpool_size選項,InnoDB應該有足夠的快取池來應對你的資料集,大小應該為當前可用記憶體的70%到80%。

將innodb-flush-method設定為O_DIRECT,關閉寫入快取記憶體,如果你使用了RAID,這可以提升效能,因為在底層已經完成了快取操作。

如果你的資料並不是十分關鍵並且並不需要對資料庫事務正確執行的四個基本要素完全相容,可以將innodbflushlogattrx_commit設定為2,這也能提升系統的效能。

相關文章