
|
In breve |
|
|
Catalogo |
Sistema |
|
Categoria |
Appliance di database |
|
Volumi dell'utente |
sì |
|
Num. minimo memoria |
160 MB |
|
OS |
Linux |
|
Vincoli |
no |
|
Domande/commenti |
|
Importante: PGSQL non è disponibile in CA AppLogic 2.8 o versioni successive; usare invece PGSQL64.
PGSQL64 è un'appliance di database basata sul modulo PostgreSQLdatabase (http://www.postgresql.org). È un modo facile per aggiungere un database a qualsiasi applicazione. PGSQL64 è un'appliance di database in stile enterprise che supporta molte funzionalità attualmente non supportate dalle appliance di MYSQLx. Fra queste: procedure archiviate, trigger, visualizzazioni e tipi di dati definiti dall'utente.
PGSQL64 archivia il database su un volume definito dell'applicazione che è possibile configurare in ciascuna istanza di PGSQ64L. PGSQL64 crea facoltativamente un database vuoto quando viene avviato su un volume vuoto. Non è possibile dividere il volume del database di PGSQL64 fra più istanze di PGSQL (un volume di database per istanza PGSQL).
I client di PGSQL64 accedono al database configurato mediante il terminale IN. Le richieste del database sono elaborate e inviate mediante lo stesso terminale. PGSQL64 permette a qualsiasi utente Postgres valido di accedere al database mediante il terminale IN (l'appliance ha un ruolo di utente con privilegi avanzati pre-configurato: "postgres" standard). È possibile configurare PGSQL64 con il numero massimo di connessioni concorrenti supportate.
PGSQL64 è anche in grado di mantenere accessibile un log di database mediante il terminale del log. Il log è utile per tenere traccia delle informazioni di database e della registrazione degli errori. Il percorso del log, il nome, l'età e i contenuti sono configurabili. Inoltre, le statistiche dei database e le informazioni di correzione degli errori di programma possono essere abilitate per la configurazione dei modelli di accesso al database e la diagnosi di problemi/errori.
PGSQL64 è usato generalmente per le applicazioni di database Web generiche (piccoli database con un grande numero di utenti che eseguono query semplici) oppure database di supporto delle decisioni (grandi database con un numero ridotto di utenti che eseguono query complesse).
|
Nome |
Ultima versione |
OS |
PostgreSQL |
note |
|
PGSQL64 |
2.0.2-1 |
CentOS 5.5 |
9.0.1 |
|
|
Risorsa |
Minimo |
Massimo |
Predefinito |
|
CPU |
0.1 |
16 |
0.4 |
|
Memoria |
160 MB |
32 G |
512 MB |
|
Larghezza di banda |
1 Mbps |
2 Gbps |
250 Mbps |
Nota: la memoria deve essere aumentata sulla base di due fattori principali: il numero di utenti concorrenti e le dimensioni del database. Generalmente, il PGSQL può supportare circa 80 utenti concorrenti per 128 MB di memoria. Più il database è grande, maggiore è la memoria che PGSQL dovrebbe avere per l'elaborazione. Ad esempio, PGSQL dovrebbe essere configurato con almeno 1 G di memoria per un database di 10 G, ossia 1 G in più per prestazioni migliori.
|
Nome |
Dir |
Protocol |
Description |
|
in |
in |
PGSQL |
Riceve richieste di database di PostgreSQL da client. |
|
log |
out |
CIFS |
Utilizzato per accedere a un file system remoto per l'archiviazione dei log di errore. Questo terminale può essere lasciato non connesso se non viene utilizzato. |
|
mon |
out |
CCE |
Invia le statistiche sull'utilizzo delle risorse e le prestazioni. Questo terminale può essere lasciato non connesso. |
L'interfaccia predefinita è abilitata. È destinato per la diagnosi e la risoluzione dei problemi (su SSH). Le versioni future di questa appliance possono disabilitare l'accesso di SSH.
|
Volume |
Description |
|
dati |
Volume per l'archiviazione di dati del database. |
Importante: Il volume di dati deve dedicato esclusivamente all'istanza di PGSQL (non può essere condiviso con altre appliance).
Nota: nessuna delle proprietà PGSQL fa distinzione tra caratteri maiuscoli o minuscoli, fatta eccezione per i nomi di file e dei percorsi.
|
Nome di proprietà |
Tipo |
Description |
|
auto_create |
Stringa |
Se creare il database se non esiste. I valori possibili sono yes crearlo e no per non crearlo automaticamente (per evitare accidenti di sovrascrittura in caso di volumi corrotti). Se impostato su no e il database non esiste sul volume di utente, gli avvii di appliance in modalità di mantenimento (deamon di PostgreSQL non avviato). |
|
read_only |
Stringa |
Il database è accessibile dal terminale IN è di sola lettura. I valori possibili sono sì per sola lettura e non per la lettura/scrittura. Questa proprietà viene utilizzata da PGSQL per ottimizzare le prestazioni per il database (i database di sola lettura non hanno bisogno della raccolta di garbage, ecc.). |
|
max_connections |
Numero intero |
Il numero massimo di connessioni attive concorrenti al database che PGSQL dovrebbe gestire mediante il terminale IN. Il PGSQL usa questo valore nei calcoli avanzati per la gestione della memoria. In generale, PGSQL ha bisogno di 128 MB di memoria per ogni 80 connessioni concorrenti. Una volta raggiunto il limite delle connessioni, PGSQL respinge tutte le altre connessioni. |
|
query_complexity |
Stringa |
Questa proprietà specifica la complessità generale delle query che gli utenti eseguirebbero contro il database utilizzato con PGSQL. I valori possibili sono: |
|
sync_on_write |
Stringa |
Se il PGSQL deve attendere per gli aggiornamenti di database da scrivere fisicamente sul disco (soprattutto quando si eseguono le transazioni). I valori possibili sono yes per attendere gli aggiornamenti del disco fisico e no per nascondere gli aggiornamenti e scriverli in una fase successiva per migliorare le prestazioni (scrittura ritardata). Se si imposta questa proprietà su yes, ci può essere una penalità nelle prestazioni ma il database può tornare a uno stato coerente dopo il crash o un guasto dell'appliance. Se il database è specificato come di sola lettura, PGSQL disabilita automaticamente questa funzione e ignora il valore di questa proprietà. |
|
fuso orario |
Stringa |
Specifica il fuso orario usato nell'appliance. Se questa proprietà è vuota, il fuso orario non è modificato e viene lasciato com'è. Un elenco dei fusi orari supportati è disponibile qui. Predefinito: vuoto |
|
Nome di proprietà |
Tipo |
Description |
|
log_filename |
Stringa |
Nome di file per i file di log del database, relativo al file system cui si è avuto accesso dal terminale di log (ad esempio, postgresql.log per /mnt/log/postgresql.log, o /pgsql_logs/postgresql.log per /mnt/log/pgsql_logs/postgresql.log). Se lasciato vuoto, la registrazione è disabilitata. %-escapes può essere specificato nel nome di file di registro (lo stesso del modello strftime di Linux - consultare la sezione di riferimento alla fine di questo argomento per l'elenco completo di %-escapes). Se nessun %-escapes è usato, PGSQL aggiunge l'epoca del tempo di creazione dei file di registro. Il valore predefinito è (vuoto). |
|
log_age |
Numero intero |
La durata di vita massima dei file di log; specificato in minuti. Trascorso il numero specificato di minuti, un nuovo file di log è creato usando la proprietà di log_filename. PGSQL tronca i file di log se esistono già; questo permette la rotazione di log. Impostato su 0 per disabilitare la creazione a tempo di nuovi file di log. |
|
log_size |
Numero intero |
La durata di vita massima dei file di log; specificata in megabyte. Quando i file di log raggiungono la dimensione specificata, viene creato un nuovo file di log usando la proprietà di log_filename. PGSQL tronca i file di log se esistono già; questo permette la rotazione di log. Impostato su 0 per disabilitare la creazione basata sulla dimensione di nuovi file di log. |
|
log_level |
Stringa |
Livello di registrazione del database. I valori possibili sono: |
|
log_cmd_stats |
Stringa |
Se registrare le statistiche di log sull'esecuzione dei comandi SQL in PGSQL (oltre al tempo, i comandi avviano l'esecuzione). I valori possibili sono yes per abilitare la registrazione e non per disabilitare la registrazione. È possibile accedere alle statistiche usando la vista di sistema di pg_stat_activity in PGSQL. Se impostato su no, i contatori personalizzati di PGSQL sono disabilitati. |
Importante: L'appliance di PGSQL non viene avviata se la registrazione è abilitata e il terminale di log non è connesso.
L'appliance di PGSQL riporta i seguenti contatori personalizzati dal terminale di mon, purché la proprietà di log_cmd_stats è impostata su sì. Questi contatori appartengono al gruppo di contatori di PostgreSQL:
|
Nome di contatore |
Description |
|
Processi attivi |
Numero di processi server attivi per server |
|
Transazioni confermate |
Transazioni confermate nel server |
|
Ripristinate |
Le transazioni ripristinate nel server |
|
Richieste di recupero del blocco di DB |
Numero di richieste di recupero del blocco di disco per server |
|
Hit di recupero del blocco di database |
Numero di richieste di recupero di blocco di disco trovate nella cache per server |
In caso di errore nell'avvio dell'appliance, è possibile che vengano registrarti i seguenti errori nel log di sistema:
|
Messaggio di errore |
Description |
|
ERRORE: impossibile aggiornare i file di configurazione di postgres.conf, forse a causa di spazio insufficiente sul volume di avvio. |
PGSQL non è riuscito ad aggiornare il file di configurazione di postgres.conf. Causa probabile - il volume di avvio è pieno, problema di autorizzazione |
|
ERRORE: errore interno imprevisto: file postgres.conf.tmpl mancante. Contattare il Supporto Tecnico di CA |
Il file di template postgresql.conf.tmpl non esiste o è illeggibile. Contattare il Supporto di CA |
|
ERRORE: impossibile accedere ai file di log specificato; controllare che la proprietà di log_filename contiene il percorso corretto e che il terminale di log è connesso. |
PGSQL non è riuscito a determinare la directory dei file di log, causa probabile - il valore di log_filename non è valido |
|
ERRORE: impossibile scrivere nei file di log specificati; controllare che la directory di log specificata è scrivibile. |
Impossibile scrivere nei file di log di PostgreSQL |
|
ERRORE: livello di log sconosciuto specificato per la proprietà di log_level |
Il valore di log_level specificato non è valido, dovrebbe essere uno fra nessuno, errore, avviso, nota e debug |
|
ERRORE: impossibile abilitare log_cmd_stats perché il database è specificato come di sola lettura |
log_cmd_stats richiede il database di sola scrittura |
|
ERRORE: impossibile montare il volume di database dell'utente. Verificare che il volume sia stato formattato con un file system valido |
PGSQL non è riuscito a montare il volume specificato con i file di database. Verificare che il volume esista e sia formattato con file system di ext3 |
|
ERRORE: PGSQL è stato avviato in modalità di mantenimento a causa di database di PostgreSQL non riconosciuto sul volume di database fornito |
Il volume di database specificato non contiene un database valido e auto_create è impostato su 'no'. L'appliance verrà avviata in modalità di mantenimento |
|
ERRORE: impossibile creare un nuovo database sul volume di database fornito. Consultare il file di /var/log/appliance/log in PGSQL per maggiori informazioni sull'errore |
PGSQL non è riuscito a svuotare la directory di database o a crearne uno nuovo |
|
ERRORE: impossibile avviare il server di PostgreSQL. Consultare il file di /var/log/appliance/log in PGSQL per maggiori informazioni sull'errore |
PGSQL non è riuscito ad avviare il server di PostgreSQL, consultare /var/log/pgstartup.log e /var/log/appliance/log per maggiori informazioni |
|
ERRORE: log_filename è specificato ma il terminale di log non è connesso. |
La proprietà di log_filename non è vuota, ma il terminale di log di PGSQL non è connessa |
|
ERRORE: log_filename è specificato ma la periferica non è montata. |
La proprietà di log_filename non è vuota, ma PGSQL non è riuscito ad accedere alla periferica di registrazione. La probabile causa è che PGSQL è stato avviato prima di NAS |
Qualora vengano riscontrati gli errori critici che richiedono l'attenzione dell'utente, PGSQL registra i messaggi nel dashboard della griglia come segue:
|
Messaggio |
Description |
|
Lo spazio su disco disponibile per il volume di dati è inferiore al 5% |
Lo spazio su disco disponibile per il volume di dati su PGSQL è inferiore all'5% Si consiglia di aumentare la dimensione del volume. |
|
Lo spazio su disco disponibile per il volume di dati è inferiore all'1% |
Lo spazio su disco disponibile per il volume di dati su PGSQL è inferiore all'1% È richiesta attenzione immediata perché potrebbe verificarsi una perdita di dati. |
Questi messaggi sono registrati soltanto una volta quando lo spazio libero su disco scende sotto la soglia.
Le prestazioni di PGSQL sono fortemente influenzate dai valori di proprietà sync_on_write, log_filename e log_cmd_stats. Per conseguire i migliori risultati di prestazioni durante fsync, disabilitare tutte le registrazioni e le statistiche (sync_on_write=no, log_filename=" log_cmd_stats=no). La tabella di seguito contiene i risultati del test pgbench campione (specificato in unità tps, transazioni per secondo) quando queste caratteristiche sono abilitate o disabilitate. pgbench è un'utility inclusa in PostgreSQL che viene usata per misurare le prestazioni del database.
|
configurazione del test di pgbench |
abilitato |
disabilitato |
|
1 client, 100 richieste |
40-70 tps |
650 tps |
|
10 client, 100 richieste |
60-90 tps |
1100 tps |
|
100 client, 100 richieste |
70-110 tps |
1200 tps |
Il seguente diagramma mostra un uso tipico dell'appliance di PGSQL in un'applicazione Web a due livelli destinata agli utenti che eseguono query semplici:

Appliance in uso:
Le richieste del client arriva sul gateway usr. Il gateway inoltra le richieste al server Web, che serve la richiesta. Quando lo script (ad esempio, Perl o PHP) su srv deve accedere a dati persistenti, utilizza l'appliance di dbase attraverso il terminale DB.
In questo esempio, il database utilizzato con dbase non è di sola lettura e molti utenti possono accedervi mediante srv eseguendo query complesse. Come tale, dbase è configurato per utilizzare 256 MB di memoria. Il database non mantiene i file di log di errore di database (il terminale di log non è connesso).
Esempio di configurazione della proprietà:
|
Nome di proprietà |
Valore |
note |
|
auto_create |
sì |
Creare il database se i volumi sono vuoti. |
|
read_only |
no |
Il database non è di sola lettura, può essere modificato. |
|
query_complexity |
semplice |
Gli utenti generalmente eseguono query semplici. |
|
sync_on_write |
sì |
Attendere che gli aggiornamenti di database siano scritti fisicamente sul disco. |
Nota: è necessario inoltre configurare il volume di dati sul database e il volume di contenuto sul Web. Per creare volumi di applicazione che è possibile utilizzare qui, consultare la Guida degli utenti della griglia.
Il seguente diagramma mostra un uso tipico dell'appliance di PGSQL su un'applicazione Web a due livelli in cui il database è utilizzato per condividere lo stato e i dati tra più server Web, server Web con bilanciamento del carico (destinati a molti utenti che eseguono semplici query). Inoltre, questo esempio ha un input separato di manutenzione, attraverso il quale un amministratore può registrarsi e accedere al database per la manutenzione e l'input per consentire agli amministratori di leggere i log PostgreSQL.

Appliance in uso:
Le richieste del client arriva sul gateway usr. Il gateway inoltra le richieste all'utilità di bilanciamento del carico Web, che indirizza la richiesta a uno dei server Web (srv1 o srv2). Quando lo script (ad esempio, PHP.NET) sui server Web deve poter accedere a dati persistenti, usa l'appliance di SQL mediante i terminali DB.
Il database di dbase scrive il suo registro di errore all'appliance di log attraverso il terminale di log. Inoltre, un amministratore può accedere attraverso il gateway di log all'appliance di log e visualizzare i file di log degli errori di database (oltre ai file di log del server Web).
Inoltre, un amministratore può accedere a SSH attraverso il gateway di maint al server di admin. Dal server di admin, l'amministratore può accedere al database di db per statistiche o modificando lo schema del database. Il server di admin può accedere a Internet attraverso il gateway di gway per, ad esempio, scaricare una versione più nuova delle librerie o lo schema del database.
In questo esempio, il database usato con dbase non è di sola lettura e molti utenti possono accedervi mediante IIS eseguendo semplici query. Come tale, dbase è configurato per utilizzare 256 MB di memoria. Il database è configurato, inoltre, per tenere una settimana di file di log uno al giorno (dopo ogni settimana i file di log sono sovrascritti).
Esempio di configurazione della proprietà:
|
Nome di proprietà |
Valore |
note |
|
auto_create |
sì |
Creare il database se i volumi sono vuoti. |
|
read_only |
no |
Il database non è di sola lettura, può essere modificato. |
|
query_complexity |
semplice |
Gli utenti generalmente eseguono query semplici. |
|
sync_on_write |
sì |
Attendere che gli aggiornamenti di database siano scritti fisicamente sul disco. |
|
log_filename |
dblog.%a |
Nome di file log degli errori che deve essere archiviato sul volume di dati di log - uno al giorno. |
|
log_age |
1440 |
Ogni file di log è per un giorno, ad esempio dblog.Mon. |
|
log_level |
errore |
Livello di registrazione degli errori. |
Note:
Il seguente diagramma mostra un uso tipico dell'appliance di PGSQL in un'applicazione Web a due livelli che implementa un sistema di supporto delle decisioni per alcuni utente che eseguono query complesse su un database di diversi gigabyte.

Appliance in uso:
Le richieste del client arriva sul gateway usr. Il gateway inoltra le richieste al server srv, che serve la richiesta. Quando lo script (ad esempio, Perl o PHP) su srv deve accedere a dati persistenti, utilizza l'appliance di dbase attraverso il terminale DB. L'appliance di dbase è configurata per archiviare i file di log nella directory principale della condivisione esposta dai log.
Mediante un browser, gli amministratori si connettono al gateway di admin per visualizzare i log di PostgreSQL. Il gateway di admin inoltra le richieste all'appliance NAS dei log.
In questo esempio, il database utilizzato con dbase non è di sola lettura e molti utenti possono accedervi mediante srv eseguendo query complesse (grandi query che accedono a milioni di righe).. Come tale, dbase è configurato per utilizzare 1536 MB di memoria. Il database è configurato, inoltre, per tenere una settimana di file di log uno al giorno (dopo ogni settimana i file di log sono sovrascritti).
Esempio di configurazione della proprietà:
|
Nome di proprietà |
Valore |
note |
|
auto_create |
sì |
Creare il database se i volumi sono vuoti. |
|
max_connections |
25 |
Il database è limitato a 25 utenti concorrenti. |
|
read_only |
no |
Il database non è di sola lettura, può essere modificato. |
|
query_complexity |
complesso |
Gli utenti generalmente eseguono query complesse. |
|
sync_on_write |
sì |
Attendere che gli aggiornamenti di database siano scritti fisicamente sul disco. |
|
log_filename |
dblog.%a |
Nome di file log degli errori che deve essere archiviato sul volume di dati di log - uno al giorno. |
|
log_age |
1440 |
Ogni file di log è per un giorno, ad esempio dblog.Mon. |
|
log_level |
errore |
Livello di registrazione degli errori. |
Nota: è necessario inoltre configurare il volume di dati sull'appliance di db e sull'appliance di log.
Un uso meno comune dell'appliance di PGSQL è un'applicazione Web a due livelli mediante un database di sola lettura. Questo è lo stesso degli esempi di applicazione semplici precedenti tranne che il database è di sola lettura (nessuna modifiche vengono permesse). È importante impostare i parametri PGSQL in modo tale che questo usi sola lettura come si girerà di caratteristiche di PostgreSQL varie che non sono necessarie per database di sola lettura che si risolve in prestazioni migliore (database che automatico-vacuuming, statistiche di modifica di database, eccetera).
Esempio di configurazione della proprietà:
|
Nome di proprietà |
Valore |
note |
|
auto_create |
no |
Il database sul volume di dati dovrebbe esistere già. |
|
read_only |
sì |
Il database è di sola lettura, non sono consentite modifiche. |
|
query_complexity |
semplice |
Gli utenti generalmente eseguono query semplici. |
|
log_filename |
dblog.%a |
Nome di file log degli errori che deve essere archiviato sul volume di dati di log - uno al giorno. |
|
log_age |
1440 |
Ogni file di log è per un giorno, ad esempio dblog.Mon. |
|
log_level |
errore |
Livello di registrazione degli errori. |
PGSQL espone le proprietà per abilitare il debug di un database usando il file di log parametrizzato (log_filename). Questo è utile per tenere traccia delle dichiarazioni di SQL, consultare il tempo necessario per eseguire dichiarazioni di SQL, consultare perché una dichiarazione di SQL non riesce, ecc. Le informazioni di debug includono:
Generalmente per eseguire il debug di un database, sono configurate le seguenti proprietà:
|
Nome di proprietà |
Valore |
note |
|
log_level |
debug |
Livello di registrazione di debug. |
|
log_cmd_stats |
sì |
Registra le statistiche di comando SQL (temporizzazione, elaborazione, esecuzione, ecc.). |
Le informazioni di debug sono archiviate nel registro di errore a cui si accede attraverso il terminale di log oppure sono disponibili attraverso una delle visualizzazioni di statistica di PostgreSQL: http://www.postgresql.org/docs/8.3/static/monitoring-stats.html.
Si ricorda che:
Il seguente software Open Source è usato oltre al software trovato sulla classe di base dell'appliance (LUX64 è la classe di base di PGSQL64).
|
Software |
Versione |
Modificato |
License |
note |
|
libgcrypt |
1.4.4-5.el5 |
No |
GPLv2 |
N/A |
|
libgpg-error |
1.4-2 |
No |
GPLv2 |
N/A |
|
libxslt |
1.1.17-2.el5_2.2 |
No |
GPLv2 |
N/A |
|
postgresql |
9.0.1-1PGDG |
No |
BSD |
N/A |
|
postgresql-libs |
9.0.1-1PGDG |
No |
BSD |
N/A |
|
postgresql-server |
9.0.1-1PGDG |
No |
BSD |
N/A |
|
postgresql-test |
9.0.1-1PGDG |
No |
BSD |
N/A |
|
samba-client |
3.0.28-1.el5_2.1 |
No |
GPLv3 |
N/A |
|
samba-common |
3.0.28-1.el5_2.1 |
No |
GPLv3 |
N/A |
| Copyright © 2012 CA. Tutti i diritti riservati. |
|