Métodos de inicio y apagado del servidor PostgreSQL
Métodos de inicio y apagado del servidor PostgreSQL
PostgreSQL adopta el modo C/S (cliente/servidor). La capa de aplicación se comunica con el servidor de la base de datos a través de INET o Unix Sockets utilizando protocolos establecidos. ¡A continuación he recopilado métodos relevantes de inicio y apagado del servidor PostgreSQL para usted!
1. Inicie el servidor de base de datos (usuario posgres):
[postgres@localhost bin]$ postgres -D /opt/postgresql/data/ > / opt/ postgresql/log/pg_server.log 2>&1 &
[1] 4508
Por supuesto, si configura la variable de entorno
PGDATA= /opt /postgresql/data
exportar PGDATA
Después de configurar PGDATA, puede usar PGDATA para configurar variables de entorno.
Después, puedes iniciarlo usando la herramienta pg_ctl:
[postgres@localhost log]$ pg_ctl start -l /opt/postgresql/log/pg_server.log
pg_ctl: es posible que se esté ejecutando otro servidor; intentando iniciar el servidor de todos modos
pg_ctl: no se pudo iniciar el servidor
Verifique la salida del registro.
[postgres@localhost log]$
Imprimir "¿Es posible que se esté ejecutando otro servidor? En este momento, verifique el registro y encontrará la siguiente información:
[postgres @localhost log]$ cat pg_server.log
FATAL: el archivo de bloqueo "postmaster.pid" ya existe
Consejo: ¿Hay alguno en el directorio de datos "/opt/ postgresql/data" ¿Se está ejecutando otro postmaster (PID 4491)?
[postgres@localhost log]$
Por supuesto, el más simple. El proceso de inicio es el siguiente:
[postgres @localhost ~]$ pg_ctl start
Inicio del servidor
[postgres@localhost ~]$ LOG: El sistema de base de datos se cerró el 2011-07-09 13 :58:00 hora central
LOG: iniciador de vacío automático
LOG: el sistema de base de datos está listo para aceptar conexiones
Si desea iniciar PG cuando esté en funcionamiento El sistema se inicia, puede hacerlo en / /usr/localhost.PG en el archivo usr/localhost.com /usr/localhost.com en el archivo com.
PG, puede agregar la siguiente declaración en el archivo /etc/rc.d/rc.local:
/opt/postgresql/bin/pg_ctl start -l /opt/postgresql/log/pg_server.log -D /opt/postgresql/data
2. Apagar el servidor
La forma más sencilla:
[postgres@localhost ~]$ pg_ctl stop p>
Esperando el cierre del servidor....hecho
Servidor detenido
Al igual que Oracle, se pueden usar diferentes modos al apagar, como se describe a continuación:
SIGTERM
Ya no permite nuevas conexiones, pero permite que todas las sesiones activas completen su trabajo normalmente, cerrándose solo cuando todas las sesiones hayan completado su trabajo. Este es un cierre inteligente.
SIGINT
Ya no permite nuevas conexiones, envía SIGTERM a todos los servidores activos (indicándoles que salgan inmediatamente), luego espera a que todos los procesos secundarios salgan y cierren la base de datos. Este es un procedimiento de apagado rápido.
SIGQUIT
Le dice a postgres que envíe SIGQUIT a todos los procesos secundarios y salga inmediatamente (todos los procesos secundarios también salen inmediatamente) sin cerrar adecuadamente el sistema de base de datos. Este es un cierre inmediato. Hacerlo provocará la recuperación en el siguiente inicio (al reproducir el registro WAL). Recomendamos utilizar este método sólo en emergencias.
SIGKILL
Esta opción debe evitarse ya que evitará que el servidor limpie la memoria y los recursos de Semaphore utilizados por ****, en cuyo caso deberá iniciar el servidor Limpiar estos recursos manualmente antes. Además, SIGKILL elimina postgres directamente sin esperar a que entregue una señal a sus procesos secundarios, por lo que también debemos eliminar cada proceso secundario manualmente.
Ejemplo de uso:
[postgres@localhost ~]$ pg_ctl stop -o SIGTERM
LOG: solicitud de apagado inteligente recibida
LOG . El iniciador de vacío automático se está apagando
esperando que el servidor se apague.....LOG: apagado
LOG: el sistema de base de datos se ha cerrado
hecho <. /p >
El servidor se ha detenido
[postgres@localhost ~]$
La forma más rápida de cerrar es cerrar el sistema postgres.
Método de cierre: eliminar el proceso de postgres
[postgres@localhost ~]$ kill -INT `head -1 /opt/postgresql/data/postmaster.pid`
[postgres@ localhost ~]$ LOG: se recibió una solicitud de apagado rápido
LOG: se canceló cualquier transacción activa
LOG: el lanzador de vacío automático se apagó
LOG: se apagó
LOG: el sistema de base de datos está cerrado
El siguiente es el proceso después de iniciar postgre:
[postgres@localhost ~]$ ps grep post
root 4609 4543 0 13:57 pts/2 00:00:00 su - postgres
postgres 4610 4609 0 13:57 pts/2 00:00:00 -bash
postgres 4724 1 0 14:08 pts/2 00:00:00 /opt/postgresql/bin/postgres
postgres 4726 4724 0 14:08 ?00:00:00 postgres: proceso de escritura
p>postgres 4727 4724 0 14:08 ?00:00:00 postgres: proceso de escritura wal
postgres 4728 4724 0 14:08 ?00:00:00 postgres: autovacuum proceso del lanzador
p>
postgres 4729 4724 0 14:08 ?00:00:00 postgres: proceso del recopilador de estadísticas
postgres 4752 4610 0 14:11 pts/2 00 :00:00 ps -ef p>
postgres 4753 4610 0 14:11 pts/2 00:00:00 grep publicación
[postgres@localhost ~]$ ;