Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Resumen
Objetivos
Metodologa y Materiales
Prximos pasos
Objetivos
Dia I:
Presentacin e Introduccin
Da II:
Instalacin y Desinstalacin
Puesta en marcha
Da III:
Seguridad
Da IV:
Configuracin
Tareas administrativas
Da V:
Rendimiento
Monitorizacin
Afinamiento
Otros temas
Metodologa y Materiales
Metodologa:
Materiales:
http://www.uv.es/alarmedi/iti2007
Introduccin
Presentacin
SGBD, Lenguajes
Historia PostgreSQL
Psql y pgAdmin3
Arquitectura
Memoria compartida
Almacenamiento en Disco
Estructura Fsica
Socket de TCP/IP
Almacenamiento en disco
Ficheros
Directorios
Estructura PostgreSQL
initdb (III)
Opciones:
[-D, --pgdata=]DATADIR
-E, --encoding=CODIFICACION
--locale=LOCALE
-A, --auth=METODO
-U, --username=USUARIO
-?, --help
Estructura Lgica
Bases de Datos
Tablespaces
Roles de grupo
Roles de login
Estructura Lgica:
Creacin bases de datos (V)
$ createdb [OPCIN]... [NOMBRE] [DESCRIPCIN]
Opciones:
-D, --tablespace=TBLSPC
tablespace por omisin de la base de datos
-E, --encoding=CODIFICACIN
codificacin para la base de datos
-O, --owner=DUEO
usuario que ser dueo de la base de datos
-T, --template=PATRN
base de datos patrn a copiar
-e, --echo
mostrar los comandos enviados al servidor
-q, --quiet
no desplegar mensajes
--help
mostrar esta ayuda y salir
--version
mostrar el nmero de versin y salir
Opciones de conexin:
-h, --host=ANFITRIN
-p, --port=PUERTO
-U, --username=USUARIO
-W, --password
Estructura Lgica:
Creacin bases de datos (VI)
Desde SQL:
CREATE DATABASE name
[ [ WITH ] [ OWNER [=] dbowner ]
[ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ TABLESPACE [=] tablespace ]
[ CONNECTION LIMIT [=] connlimit ] ];
Estructura Lgica:
Creacin usuarios y roles (VII)
createuser [OPCIN]... [ROL]
Opciones:
-s, --superuser
-S, --no-superuser
-d, --createdb
-D, --no-createdb
-r, --createrole
-R, --no-createrole
-l, --login
-L, --no-login
-i, --inherit
-I, --no-inherit
-c, --connection-limit=N
-P, --pwprompt
-E, --encrypted
-N, --unencrypted
-e, --echo
-q, --quiet
--help
--version
Estructura Lgica:
Creacin usuarios y roles (VIII)
... Continuacin
createuser [OPCIN]... [ROL]
Opciones de conexin:
-h, --host=ANFITRIN
-p, --port=PUERTO
-U, --username=NOMBRE
-W, --password
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
CREATEROLE | NOCREATEROLE
| CREATEUSER | NOCREATEUSER
INHERIT | NOINHERIT
| LOGIN | NOLOGIN
CONNECTION LIMIT connlimit
[ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
VALID UNTIL 'timestamp'
| IN ROLE rolename [, ...]
IN GROUP rolename [, ...]
| ROLE rolename [, ...]
ADMIN rolename [, ...]
| USER rolename [, ...]
| SYSID uid
Estructura Lgica:
Creacin de tablespaces (y IX)
CREATE TABLESPACE tablespacename
[ OWNER username ]
LOCATION 'directory'
Desde paquetes
Debian (apt-get)
RedHat SUSE (rpm)
Instalacin / Desinstalacin
Desde ficheros fuente (II)
Instalacin
Decisiones iniciales
Compilacin y enlazado
Instalacin de un cliente
Desinstalacin
Instalacin / Desinstalacin
Migraciones (III)
Migraciones
Conservando el cluster
Instalacin / Desinstalacin
Ms cosas (y IV)
Configuracin:
Parmetros de funcionamiento
Instalacin de extensiones
pg_ctl
Puesta en Marcha
postmaster - postgres (II)
postmaster [OPCION]...
Opciones:
-B NBUFFERS
nmero de bfers de memoria compartida
-c VAR=VALOR
definir parmetro de ejecucin
-d 1-5
nivel de depuracin
-D DATADIR
directorio de bases de datos
-e
usar estilo europeo de fechas (DMY)
-F
desactivar fsync
-h NOMBRE
nombre de host o direccin IP en que escuchar
-i
activar conexiones TCP/IP
-k DIRECTORIO
ubicacin del socket Unix
-N MAX-CONN
nmero mximo de conexiones permitidas
-o OPCIONES
pasar OPCIONES a cada proceso servidor (obsoleto)
-p PUERTO
nmero de puerto en el cual escuchar
-s
mostrar estadsticas despus de cada consulta
-S WORK-MEM
mostrar cantidad de memoria para ordenamientos (en kB)
--NOMBRE=VALOR definir parmetro de ejecucin
--describe-config
mostrar parmetros de configuracin y salir
--help
desplegar esta ayuda y salir
--version
desplegar nmero de versin y salir
Puesta en Marcha
postmaster - postgres (III)
postmaster [OPCION]...
Opciones de desarrollador:
-f s|i|n|m|h
impedir el uso de algunos tipos de planes
-n
no reinicializar memoria compartida despus de salida anormal
-O
permitir cambios en estructura de tablas de sistema
-P
desactivar ndices de sistema
-t pa|pl|ex
mostrar tiempos despus de cada consulta
-T
enviar SIGSTOP a todos los backends si uno de ellos muere
-W NM
espera NM segundos para permitir acoplar un depurador
Opciones para modo mono-usuario:
--single
selecciona modo mono-usuario (debe ser el primer argumento)
DBNAME
nombre de base de datos (el valor por omisin es el nombre de usuario)
-d 0-5
nivel de depuracin
-E
mostrar las consultas antes de su ejecucin
-j
no usar saltos de lnea como delimitadores de consulta
-r ARCHIVO
enviar salida estndar y de error a ARCHIVO
Opciones para modo de inicio (bootstrapping):
--boot
selecciona modo de inicio (debe ser el primer argumento)
DBNAME
nombre de base de datos (argumento obligatorio en modo de inicio)
-r ARCHIVO
enviar salida estndar y de error a ARCHIVO
-x NUM
uso interno
Puesta en Marcha
pg_ctl (IV)
Empleo:
pg_ctl
pg_ctl
pg_ctl
pg_ctl
pg_ctl
pg_ctl
start
stop
restart
reload
status
kill
Opciones comunes:
-D, --pgdata DATADIR
ubicacin del rea de almacenamiento de datos
-s, --silent
mostrar slo errores, no mensajes de informacin
-w
esperar hasta que la operacin se haya completado
-W
no esperar hasta que la operacin se haya completado
--help
mostrar este texto y salir
--version
mostrar informacin sobre versin y salir
(Por omisin se espera para las detenciones, pero no los inicios o reinicios)
Si la opcin -D es omitida, se usa la variable de ambiente PGDATA.
Opciones para inicio y reinicio:
-l --log ARCHIVO
guardar el registro del servidor en ARCHIVO.
-o OPCIONES
parmetros de lnea de rdenes a pasar a postgres
(ejecutable del servidor de PostgreSQL)
-p RUTA-A-POSTGRES
normalmente no es necesario
Puesta en Marcha
pg_ctl (V)
--- continuacin
Empleo:
pg_ctl
pg_ctl
pg_ctl
pg_ctl
pg_ctl
pg_ctl
start
stop
restart
reload
status
kill
Seguridad en PostgreSQL
Ficheros binarios
Ficheros de tablespaces
Ficheros de configuracin
Ficheros de configuracin:
pg_hba.conf
pg_ident.conf
BASE DATOS
<base datos>
<base datos>
<base datos>
<base datos>
USUARIO DIRECCION
<usuario>
<usuario> <direccionCIDR>
<usuario> <direccionCIDR>
<usuario> <direccionCIDR>
METODO
<metodo-autenticacion [opcin]
<metodo-autenticacion [opcin]
<metodo-autenticacion [opcin]
<metodo-autenticacion [opcin]
Mtodos de autenticacin:
Trust
Reject
Password
Crypt
MD5
KRB5
Ident (sameuser / mapeo usuario -> pg_ident.conf)
PAM
LDAP
Bases de datos
Tablespaces
Lenguajes
Esquemas
Tablas y vistas
Procedimientos y funciones
Discos
Buffers WAL
Ficheros WAL
Atomicidad (atomicity)
Consistencia (consistency)
Aislamiento (isolatio)
Persistencia (durability)
Todo o nada
Modo autoconfirmacin
SAVEPOINT
BEGIN;
operaciones1
SAVEPOINT paso2;
operaciones2
si error => ROLLBACK paso2;
operaciones3
COMMIT;
Reglas de integridad:
Not null
Check
Unique
Primary Key
[DEFERRABLE]
[INITIALLY {INMEDIATE | DEFERRED}]
Foreign Key:
[DEFERRABLE]
[INITIALLY {INMEDIATE | DEFERRED}]
Control de concurrencia:
Nivel
Lectura no confirmada
Lectura confirmada
Lectura repetible
Serializable
Lectura sucia
Posible
No Posible
No Posible
No Posible
Bloqueos
Nunca
Si hay actualizaciones
Si hay consultas
Siempre (fcil deadlock)
Ficheros de 16Mb
Fichero postgresql.conf
Ubicacin de ficheros
Conexin
listen_adresses
Port
max_connections
superuser_reserved_connections
unix_socket_directory
Seguridad y autenticado
ssl
Uso de recursos
shared_buffers
work_mem
max_prepared_transaction
max_fsm_relations
max_fsm_pages
max_lock_per_transaction
Retraso de vacuum
Proceso de fondo writer
WAL
wal_buffers
checkpoints_segments
checkpoint_timeout
Lugar de seguimiento
Cundo se efecta
Qu se registra
Estadsticas (recoleccin)
Vacuum
Conexin cliente
search_path
default_transaction_isolation
datestyle
client_encoding
Gestin de bloqueos
deadlock_timeout
Opciones predefinidas
block_size
integer_datetime
lc_collate, lc_ctype
max_identifier_length
max_ident_keys
server_encoding
Clasificacin de caracteres
<idioma>_<ubicacion>.<cjto_caracteres>@<modificadores>
Terminales distintas
Uso de editores incorrectos
Transmisiones de ficheros: FTP, CVS ...
Copias de seguridad
Recuperacin de datos
Migracin de versiones
Copias de seguridad(II)
Volcado SQL
pg_dump
pg_dumpall
En texto plano:
Ms flexible
Opciones generales:
-f, --file=ARCHIVO
-F, --format=c|t|p
-i, --ignore-version
-Z, --compress=0-9
Con pg_restore
Recuperacin PITR
Parmetro archive_command
Select pg_start_backup('nombre_backup');
Copia fsica
Select pg_stop_backup();
Recuperacin PITR
VACUUM (I)
Funciones:
Actualizar estadsticas
Ejecutar
VACUUM (y II)
Opciones
ANALYZE
Estrategias
Autovacuum
REINDEX
Desde S.O.
Desde SQL
Fichero de Seguimiento
Formas de seguimiento
Salida estandar
Fichero indicado al iniciar
Usar syslog del sistema
Mejor informacin
Mejor rendimiento
Parmetros en postgresql.conf
Dnde y cmo
Cundo
Qu
pg_catalog
pg_toast
Monitorizacin (I)
Consultado pg_locks
ps
top
vmstat
iostat
free
Informacin de:
postgresql.conf: start_stat_collector
Tipos:
Extensiones contrib:
dbsize
oid2name
checkpoint_segments
checkpoint_timeout
wal_buffers
fsync / wal_sync_method
commit_delay
Acceso a discos
Uso de tablespaces
Control de toast
Optimizacin de consultas
Elementos:
Otros aspectos
Prximos pasos
Resumen
Objetivos
Metodologa y Materiales
Prximos pasos
FIN
Conclusiones
Opiniones del curso a alarcon_jos@gva.es
Muchas gracias
Jos M. Alarcn Medina