Argomento precedente: Applicazione di N-livelli con replica master-master multi-nodo (adatto per il bilanciamento del carico)

Argomento successivo: PGSQL64 - appliance di database PostgreSQL


Applicazione di N-livelli eseguita su diversi dispositivi (adatto per il bilanciamento del carico e failover)

Il seguente diagramma mostra un uso tipico dell'appliance di MYSQLR64 in un'applicazione Web di gruppo eseguita su diversi dispositivi: Con questa impostazione, è possibile avere due o più applicazioni identiche eseguite da diversi dispositivi con il database replicato a tutte le applicazioni nella configurazione master-master. Questo è utile in due casi:

Applicazione master

Applicazione di N-livelli eseguita su diversi dispositivi (adatto per il bilanciamento del carico e failover)

Applicazione slave

Applicazione slave

Appliance in uso:

La richiesta del client arriva sul gateway utente. Il gateway inoltra le richieste all'utilità di bilanciamento del carico Web, che indirizza la richiesta a uno dei server Web (web1 o web2). I server Web accedono al database master. L'appliance master si connette all'applicazione remota (slave), l'unica differenza è il server_id dello slave e la configurazione di rete per replicare il database. L'applicazione remota si connette all'appliance master mediante il gateway di vpn che è configurato per consentire la connessione soltanto dal gateway di vpn dell'applicazione remota. Le appliance di master e slave nelle due applicazioni sono eseguite nella configurazione master-master in modo che abbiamo sempre dati identici.

Esempio di configurazione di proprietà (le proprietà che non sono elencate dovrebbero essere lasciate ai loro valori predefiniti):

L'accesso Web a master e slave è disponibile mediante il gateway di admin sulla porta 8080.

master

Nome di proprietà

Valore

Note

auto_create

1

Creare il database se i volumi sono vuoti.

error_log_filename

master-db.error

Nome di file log degli errori che deve essere archiviato sul volume di dati di log.

error_log_level

errore

Livello di registrazione errori

server_id

1

Server master (non è obbligatorio che sia 1, dovrebbe essere diverso da server_id sullo slave)

rpl_mode

master

Scrive i log binari per eseguire la replica

master vpn

Nome di proprietà

Valore

Note

modalità

server

Opera come server.

tunnel

certificati

Uso dei certificati SSL

tcp_ports

3306,22

Autorizza le state necessarie a MYSQLR64.

ip_addr

master_vpn_ip

Indirizzo IP del VPN nell'applicazione master.

remote_host

slave_vpn_ip

Indirizzo IP del VPN nell'applicazione slave.

slave

Nome di proprietà

Valore

Note

auto_create

1

Creare il database se i volumi sono vuoti.

error_log_filename

slave-db.error

Nome di file log degli errori che deve essere archiviato sul volume di dati di log.

error_log_level

errore

Livello di registrazione errori

server_id

2

Server slave (non è obbligatorio che sia 2, dovrebbe essere diverso da server_id sul master)

rpl_mode

slave

Connette al master

Vpn slave

Nome di proprietà

Valore

Note

modalità

client

Opera come client.

tunnel

certificati

Uso dei certificati SSL

auth_path

"client1"

Percorso al file di certificato SSL.

ip_addr

slave_vpn_ip

Indirizzo IP del VPN nell'applicazione slave.

remote_host

master_vpn_ip

Indirizzo IP del VPN nell'applicazione master.

L'applicazione remota è una copia esatta, l'unica differenza è l'installazione di rete dell'utente, dell'admin, e delle appliance VPN, connesioni tra l'appliance VPN e master=/=slave, e il server_id dell'appliance di master=/=slave (dovrebbe essere unico).

Migrazione da MYSQLR a MYSQLR64 (e viceversa)

Per eseguire la migrazione da MYSQLR a MYSQLR64 (e viceversa), è importante non utilizzare i volumi dall'appliance a 32 bit su una a 64 bit (o viceversa) perché questo potrebbe corrompere i dati. Si consiglia invece di scaricare il database sull'appliance precedente e trasferire il file scaricato sull'appliance nuova e quindi importare il database nella nuova appliance.

È possibile utilizzare la stessa procedura per eseguire la migrazione di un database da un'appliance di database precedente (MYSQL, MYSQL5, MYSQL64) o un database mysql non in esecuzione su un'appliance CA AppLogic.

Per eseguire la migrazione del database:

note

Si ricorda che:

Importante: Quando si creano utenti per il database, verificare che tutti gli utenti sono creati senza restrizioni sull'host da cui connettono. Ad esempio:

mysql> CONCEDERE TUTTI I PRIVILEGI SU *.* A 'monty'@'%'
    -> IDENTIFICATO DA 'some_pass' CON OPZIONE CONCESSIONE;
Questa appliance usa software Open Source di terze parti

MYSQLR64 usa i seguenti pacchetti Open Source di terze parti oltre ai pacchetti Open Source di terze parti usati dalla loro classe di base LUX64.

Software

Versione

Modificato

License

note

aspell

0.60.3-7.1

No

LGPLv2.1

N/A

aspell-en

6.0-2.1

No

LGPLv2.1

N/A

curl

7.15.5-2

No

MIT

N/A

periferica-mapper-evento

1.02.32-1

No

GPLv2

N/A

freetype

1.02.32-1

No

FTL

N/A

gmp

4.1.4-10.el5

No

LGPLV2.1

N/A

libidn

0.6.5-1.1

No

LGPLv2.1

N/A

libjpeg

6b-37

No

Distribuibile

N/A

libpng

1.2.10-7.0.2

No

zlib/libpng

N/A

lvm2

2.6.26-2.1.2.8

No

GPLv2.0

N/A

mysql

5.0.77-3.el5

No

GPL

N/A

mysql-server

5.0.77-3.el5

No

GPLv2

N/A

perl-DBD-MySQL

3.0007-2.el5

No

Artistic

N/A

perl-DBI

1.52-2.el5

No

Artistic

N/A

php-cli

5.1.6-23.el5

No

PHPv3.01

N/A

php-common

5.1.6-23.el5

No

PHPv3.01

N/A

php-gd

5.1.6-23.el5

No

PHPv3.01

N/A

php-mbstring

5.1.6-23.el5

No

PHPv3.01

N/A

php-mysql

5.1.6-23.el5

No

PHPv3.01

N/A

php-pdo

5.1.6-23.el5

No

PHPv3.01

N/A

rsync

2.6.8-3.1

No

GPLv2

N/A

samba-client

3.0.28-1.el5_2.1

No

GPLv2

N/A

samba-common

3.0.28-1.el5_2.1

No

GPLv2

N/A

sudo

1.6.8p12-10

No

ISC

N/A

lighttpd

1.4.18-1.el5.rf

No

BSD

N/A

perl-IPC-Run

0.84-1.el5.rf

No

Artistic

N/A

perl-Time-Duration

1.06-1.el5.rf

No

Artistic

N/A

phpMyAdmin

2.11.10-1

No

GPLv2

N/A

Risoluzione dei problemi di MYSQLR

L'appliance di MYSQLR si blocca all'avvio

Avviandola con MYSQLR 1.6.2, è possibile impostare/modificare una password per l'account di root di database. Tuttavia, l'appliance di MSYQLR ha pochi account principali con diversi nomi di host. Durante l'impostazione/modifica di una password, è necessario utilizzare sempre l'account di root@%. L'account di root@% è quello rispetto a cui le appliance connesse al terminale IN di MYSQLR eseguono l'autenticazione. Gli altri account di root vengono utilizzati solamente da utenti locali e non è necessario impostare una password, altrimenti sarà impossibile avviare l'appliance di MYSQLR.

Nota: non impostare una password per l'account di root@localhost non rappresenta alcun rischio di protezione, perché l'account può essere utilizzato soltanto dagli utenti locali sull'appliance e chiunque abbia accesso all'appliance può modificare la password.

Recupero di un'appliance di MYSQLR con problemi di avvio in seguito alla modifica della password di root di database

Per recuperare un'appliance che non riesce ad avviarsi in seguito a una modifica della password principale del database, procedere come segue:

  1. Avviare l'appliance o l'applicazione in modalità di debug.
    Comando di avvio appliance
    comp start main.MYSQLR --debug 
    
    Comando di avvio applicazione
    app start --debug 
    

    Qualche secondo dopo che si è avviata l'appliance, dovrebbe essere possibile eseguire l'accesso all'appliance. Non è necessario attendere il timeout dell'appliance.

  2. Accedere all'appliance su SSH ed eseguire i comandi seguenti:
    mysql -p -e "update mysql.user set Password='' where User='root'" 
    mysqladmin -p flush-privileges 
    mysql -e 'update mysql.user set password=PASSWORD("NEWPASSWORD") where User="root" and Host="%"' 
    mysqladmin flush-privileges
    
  3. Riavviare l'appliance per verificare che si avvii correttamente e che le connessioni mysql sul terminale 'in' per l'utente richiedano una password.