In questo articolo impareremo a conoscere il server percona, un sostituto drop-in opensource per MySQL e anche per MariaDB. Il motore di database InnoDB lo rende molto interessante e una buona alternativa se hai bisogno di prestazioni, affidabilità e una soluzione conveniente
Nelle sezioni seguenti tratterò l'installazione del server percona su CentOS 7, tratterò anche i passaggi necessari per eseguire il backup dei dati correnti, della configurazione e di come ripristinare il backup.
Indice
- 1 - Cos'è e perché usare percona
- 2 - Effettua il backup dei tuoi database
- 3 - Rimuovi il precedente server SQL
- 4 - Installazione dei binari Percona
- 5 - Configurazione Percona
- 6 - Protezione dell'ambiente
- 7 - Ripristina il backup
1. Cos'è e perché usare Percona
Percona è un'alternativa opensource ai database MySQL e MariaDB, è un fork di MySQL con molti miglioramenti e caratteristiche uniche che lo rendono più affidabile, potente e veloce di MySQL, eppure è completamente compatibile con esso, puoi persino utilizzare la replica tra MySQL e Percona di Oracle.
Funzioni esclusive di Percona
- Ricerca hash adattiva partizionata
- Algoritmo di checksum veloce
- Precaricamento del pool di buffer
- Supporto per FlashCache
Funzionalità specifiche di MySQL Enterprise e Percona
- Importa tabelle da server diversi
- Autenticazione PAM
- Registro di controllo
- Threadpool
Ora che sei piuttosto entusiasta di vedere tutte queste cose buone insieme, ti mostreremo come installare ed eseguire la configurazione di base di Percona Server.
2. Effettua il backup dei tuoi database
Il comando seguente crea un mydatabases.sql file con i comandi SQL per ricreare/ripristinare i database salesdb e employeedb, sostituisci i nomi dei database per riflettere la tua configurazione, salta se si tratta di una configurazione nuova di zecca
mysqldump -u root -p --databases employeedb salesdb > mydatabases.sql
Copia il file di configurazione corrente, puoi anche saltarlo in nuove configurazioni
cp my.cnf my.cnf.bkp
3. Rimuovi il tuo precedente SQL Server
Arresta MySQL/MariaDB se è in esecuzione.
systemctl stop mysql.service
Disinstalla MariaDB e MySQL
yum remove MariaDB-server MariaDB-client MariaDB-shared mysql mysql-server
Sposta / Rinomina i file MariaDB in /var/lib/mysql , è più sicuro e veloce della semplice rimozione, è come un backup istantaneo di 2° livello. :)
mv /var/lib/mysql /var/lib/mysql_mariadb
4. Installazione dei binari Percona
Puoi scegliere tra una serie di opzioni su come installare Percona, in un sistema CentOS è generalmente un'idea migliore usare yum o RPM, quindi queste sono le modalità trattate in questo articolo, la compilazione e l'installazione dai sorgenti non sono coperte da questo articolo.
Installazione dal repository Yum:
Per prima cosa devi impostare il repository Yum di Percona con questo:
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
E poi installa Percona con:
yum install Percona-Server-client-56 Percona-Server-server-56
Il comando sopra installa server e client Percona, librerie condivise, possibilmente Perl e moduli perl come DBI::MySQL, se non sono già installati, e anche altre dipendenze secondo necessità.
Installazione dal pacchetto RPM:
Possiamo scaricare tutti i pacchetti rpm con l'aiuto di wget:
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/
E con l'utilità rpm, installi tutti i pacchetti una volta:
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
Nota la barra rovesciata '\' alla fine delle frasi sui comandi precedenti, se installi singoli pacchetti, ricorda che per soddisfare le dipendenze, il pacchetto condiviso deve essere installato prima del client e del client prima del server.
5. Configurazione del server Percona
Ripristino della configurazione precedente
Mentre ci stiamo spostando da MariaDB, puoi semplicemente ripristinare il backup del file my.cnf che hai eseguito nei passaggi precedenti.
cp /etc/my.cnf.bkp /etc/my.cnf
Creazione di un nuovo my.cnf
Se hai bisogno di un nuovo file di configurazione adatto alle tue esigenze o se non hai fatto una copia di my.cnf, puoi utilizzare questa procedura guidata che verrà generata per te, attraverso semplici passaggi.
Ecco un esempio di file my.cnf fornito con il pacchetto Percona-Server
# Percona Server template configuration
[mysqld]
## Rimuovi il numero iniziale e imposta la quantità di RAM per la cache di dati# più importante in MySQL. Inizia con il 70% della RAM totale per il server dedicato, altrimenti il 10%.# innodb_buffer_pool_size =128M## Rimuovi il numero iniziale per attivare un'opzione di integrità dei dati molto importante:la registrazione# delle modifiche al log binario tra i backup.# log_bin## Rimuovi il numero iniziale # per impostare le opzioni utili principalmente per i server di report.# Le impostazioni predefinite del server sono più veloci per le transazioni e le SELECT veloci.# Regola le dimensioni secondo necessità, sperimenta per trovare i valori ottimali.# join_buffer_size =128M# sort_buffer_size =2M# read_rnd_buffer_size =2Mdatadir=/var /lib/mysqlsocket=/var/lib/mysql/mysql.sock# Si consiglia di disabilitare i collegamenti simbolici per prevenire rischi per la sicurezza assortitisymbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid
Dopo aver adattato il tuo file my.cnf alle tue esigenze, è ora di avviare il servizio:
systemctl restart mysql.service
Se tutto va bene, il tuo server è ora attivo e pronto per ricevere i comandi SQL, puoi provare il seguente comando per verificare:
mysql -u root -p -e 'SHOW VARIABLES LIKE "version_comment"'
Se non riesci ad avviare il servizio, puoi cercare un motivo in /var/log/mysql/mysqld.log questo file è impostato dall' errore di log opzione in [mysqld_safe] di my.cnf sessione.
tail /var/log/mysql/mysqld.log
Puoi anche dare un'occhiata in un file all'interno di /var/lib/mysql/ con nome sotto forma di [nomehost].err come il seguente esempio:
tail /var/lib/mysql/centos7.err
Se anche questo non riesce a mostrare cosa c'è che non va, puoi anche provare strace:
yum install strace && systemctl stop mysql.service && strace -f -f mysqld_safe
Il comando sopra è estremamente dettagliato e il suo output è di livello piuttosto basso, ma può mostrarti il motivo per cui non puoi avviare il servizio nella maggior parte delle volte.
6. Proteggere il tuo ambiente
Ok, ora hai il tuo RDBMS pronto per ricevere query SQL, ma non è una buona idea mettere i tuoi preziosi dati su un server senza la minima sicurezza, è meglio renderlo più sicuro con mysql_secure_instalation , questa utilità aiuta a rimuovere le funzioni predefinite non utilizzate, impostare anche la password principale di root e stabilire restrizioni di accesso per l'utilizzo di questo utente.
Basta invocarlo dalla shell e seguire le istruzioni sullo schermo.
mysql_secure_install
7. Ripristina il backup
Se provieni da una configurazione precedente, ora puoi ripristinare i tuoi database, usa di nuovo mysqldump.
mysqldump -u root -p < mydatabases.sql
Congratulazioni, hai appena installato Percona sul tuo CentOS Linux, il tuo server è ora completamente pronto per l'uso; Ora puoi utilizzare il tuo servizio come se fosse MySQL e i tuoi servizi sono completamente compatibili con esso.
Conclusione
Ci sono molte cose da configurare per ottenere prestazioni migliori, ma ecco alcune semplici opzioni per migliorare la tua configurazione. Quando si utilizza il motore innodb è anche una buona idea impostare innodb_file_per_table opzione attiva , distribuirà gli indici delle tabelle in un file per tabella, significa che ogni tabella ha il proprio file di indice, rende il sistema generale più robusto e più facile da riparare.
Un'altra opzione da tenere a mente è innodb_buffer_pool_size opzione, InnoDB dovrebbe avere dimensioni sufficienti per i tuoi set di dati e un valore tra il 70% e l'80% della memoria totale disponibile dovrebbe essere ragionevole.
Impostando il metodo innodb-flush a O_DIRECT disabiliti la cache di scrittura, se hai RAID , questo dovrebbe essere impostato su prestazioni migliorate poiché questa cache è già stata eseguita in un livello inferiore.
Se i tuoi dati non sono così critici e non hai bisogno di ACID completamente transazioni conformi, puoi regolare a 2 l'opzione innodb_flush_log_at_trx_commit , questo porterà anche a prestazioni migliori.