Curso Postgres Administracion Basica
Curso Postgres Administracion Basica
Curso Postgres Administracion Basica
DATOS
PostgreSQL
Fernando Zaragoza Hernández
[email protected]
Agenda
Introducción
Instalación
Preparación de la Base de Datos
Inicio del servidor
Apagado del servidor
Usuarios y privilegios
Manejo de Bases de Datos
Módulo 6
Administración de Bases de Datos
Introducción
Open Source
Licencia BSD (modificar, copiar y distribuir para cualquier propósito)
Ultima versión 8.4.5 (9.0.0 – 9.0.1 – 9.4.4)
Sitio oficial: http://www.postgresql.org/
Módulo 6
Administración de Bases de Datos
Instalación
# groupadd postgres
# useradd -g postgres postgres
# tar -zxvf /home/instalacion/postgresql-x.x.x.tar.gz
# ln -s postgresql-8.x.x postgresql
Módulo 6
Administración de Bases de Datos
Instalación (cont.)
# cd postgresql
# ./configure --prefix=/usr/local/pgsql
# make
# make install
# mkdir /usr/local/pgsql/data
# chown postgres /usr/local/pgsql/data
Módulo 6
Administración de Bases de Datos
Instalación (cont.)
# su - postgres
# PATH=$PATH:/usr/local/pgsql/bin
# export POSTGRES_HOME=/usr/local/pgsql
# export PGDATA=/usr/local/pgsql/data
# export PGLIB=/usr/local/pgsql/lib
# export LD_LIBRARY_PATH=/usr/local/pgsql/lib
Módulo 6
Administración de Bases de Datos
Preparación de la Base de datos
# /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
Opciones de initdb
[-D, --pgdata=]DATADIR location for this database cluster
-E, --encoding=ENCODING set default encoding for new
databases
--locale=LOCALE initialize database cluster with
given locale
--lc-collate, --lc-ctype, --lc-messages=LOCALE
--lc-monetary, --lc-numeric, --lc-time=LOCALE
Módulo 6
Administración de Bases de Datos
Inicio del servidor
# /usr/local/pgsql/bin/pg_ctl -l /usr/local/pgsql/data/errors.log
-D /usr/local/pgsql/data/ -o –i start
# /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
Módulo 6
Administración de Bases de Datos
Inicio del servidor (cont.)
Módulo 6
Administración de Bases de Datos
Apagado del servidor
Módulo 6
Administración de Bases de Datos
Práctica 1
Manos a la máquina!!!
Módulo 6
Administración de Bases de Datos
Usuarios y privilegios
Creación de usuarios
Módulo 6
Administración de Bases de Datos
Usuarios y privilegios (cont.)
También es posible crear un usuario desde la linea de comandos
createuser
Opciones:
-h, --host host
Especifica el nombre del host de la máquina sobre la que el
postmaster corre.
-p, --puerto puerto
Especifica el puerto TCP/IP o el socket local Unix sobre el que el
postmaster atiende a las conexiones.
-e, --echo
Muestra las consultas que createuser genera y envía al backend.
-q, --quiet
No muestra respuesta alguna.
-d, --createdb
Permite al nuevo usuario crear bases de datos.
Módulo 6
Administración de Bases de Datos
Usuarios y privilegios (cont.)
-D, --no-createdb
Impide al nuevo usuario crear bases de datos.
-a, --adduser
Permite al nuevo usuario crear otros usuarios.
-A, --no-adduser
Impide al nuevo usuario crear otros usuarios.
-P, --pwprompt
Si se especifica este parámetro, createuser mostrará un
mensaje preguntando por el password del nuevo usuario. Esto
no es necesario si no planea usar autentificación por
password.
-i, --sysid id_usuario
Le permite elegir otro id de usuario que no sea el que se da por
defecto. Esto no es necesario, pero algunos lo prefieren.
Módulo 6
Administración de Bases de Datos
Usuarios y privilegios (cont.)
Modificación de usuarios
Eliminación de usuarios
Módulo 6
Administración de Bases de Datos
Usuarios y privilegios (cont.)
Creación de grupos
Módulo 6
Administración de Bases de Datos
Usuarios y privilegios (cont.)
Modificación de grupos
Módulo 6
Administración de Bases de Datos
Usuarios y privilegios (cont.)
Eliminación de grupos
Módulo 6
Administración de Bases de Datos
Usuarios y privilegios (cont.)
Privilegios
Módulo 6
Administración de Bases de Datos
Usuarios y privilegios (cont.)
Otorgamiento de privilegios
Nota:
psql \z permite ver la información de los privilegios
Módulo 6
Administración de Bases de Datos
Usuarios y privilegios (cont.)
Revocación de privilegios
Módulo 6
Administración de Bases de Datos
Práctica 2
Manos a la máquina!!!
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos
EJEMPLO:
Para crear una nueva base de datos:
template1=> create database mibase;
El comando createdb es un script shell construido y basado en el
comando CREATE DATABASE.
createdb [ options ] dbname [ descripcion ]
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
El comando createdb es un script shell construido y basado en el comando
CREATE DATABASE.
createdb [ options ] dbname [ descripcion ]
Opciones:
-h, --host host
-p, --port port
-U, --username username
-W, --password
Forza a que se teclee password.
-e, --echo
Muestra la consulta que createdb genera y envía al motor de la base de datos
(backend)
-q, --quiet
No muestra ninguna respuesta.
-D, --location datadir
-O – Owner (dueño)
-E, --encoding encoding
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Plantillas
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
o del shell:
#createdb -T template0 dbname
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
# Comentario
log_connections = yes
syslog = 2
search_path = '$user, public'
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Opciones de conexión
tcpip_socket (booleano)
listen_addresses = 'localhost'
max_connections (integer)
superuser_reserved_connections (integer)
port (integer)
unix_socket_directory (string)
unix_socket_group (string)
unix_socket_permissions (integer)
virtual_host (string)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Seguridad y autenticación
authentication_timeout (integer)
ssl (boolean)
krb_server_keyfile (string)
db_user_namespace (boolean)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Memoria
shared_buffers (integer)
sort_mem (integer)
vacuum_mem (integer)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Conjunto de Caracteres
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
initdb -- locale=sv_SE
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
Módulo 6
Administración de Bases de Datos
Manejo de Bases de Datos (cont.)
initdb -E EUC_JP
Módulo 6
Administración de Bases de Datos
Práctica 3
Manos a la máquina!!!
Módulo 6
Administración de Bases de Datos
Mantenimiento de la Base de Datos
Módulo 6
Administración de Bases de Datos
Mantenimiento de la Base de Datos
VACUMM
Módulo 6
Administración de Bases de Datos
Mantenimiento de la Base de Datos
Módulo 6
Administración de Bases de Datos
Mantenimiento de la Base de Datos
Rutina de indexado
Módulo 6
Administración de Bases de Datos
Mantenimiento de la Base de Datos
Módulo 6
Administración de Bases de Datos
Mantenimiento de la Base de Datos
Módulo 6
Administración de Bases de Datos
Mantenimiento de la Base de Datos
Respaldos SQL-dump
Módulo 6
Administración de Bases de Datos
Mantenimiento de la Base de Datos
Módulo 6
Administración de Bases de Datos
Mantenimiento de la Base de Datos
Restauración de un respaldo
Los archivos del texto creados por el pg_dump deben ser leídos
adentro por programa psql. La forma general del comando para
restaurar una respaldo es:
Módulo 6
Administración de Bases de Datos
Mantenimiento de la Base de Datos
Módulo 6
Administración de Bases de Datos
Mantenimiento de la Base de Datos
Respaldo y compresión
Módulo 6
Administración de Bases de Datos
Ejercicio Final
Manos a la máquina!!!
Módulo 6
Administración de Bases de Datos