PostgreSQL Base de Datos
Capítulo 1 Instalación y configuración
contorno
PostgreSQL es un código fuente muy poderosa, abierta para el sistema / servidor relacional de gestión de base de datos de cliente (RDBMS). tipos de datos (tales como JSON y tipo JSONB, tipo de matriz) es compatible con el tipo rico y personalizado. El tamaño de la memoria de página por defecto de PostgreSQL es 8kB.
PostgreSQL tiene las siguientes características principales:
1 soporte de lenguaje SQL Bueno, apoyar la ACID , integridad asociado, las transacciones de bases de datos, Unicode multilingüe.
2 diseño de alta simultáneas de lectura y escritura y no obstruyen
3 soporta un número de tipos de modelos de base de datos: relacional, tipo de documento (tales como JSON y tipo JSONB, tipo de matriz), Key / tipos de valor.
1 instalar PostgreSQL
-
- Instalación de paquetes PostgreSQL bajo rpm Linux
1 instalación RPM repositorio:
Yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
paquete RPM instalar el servidor 2
yum lista postgresql11-server.x86_64
3 instalar el paquete de cliente:
yum lista postgresql11.x86_64
4 para inicializar la base de datos y permitir el inicio automático:
/ Usr / pgsql-11 / bin / postgresql-11-configuración initdb
systemctl permiten PostgreSQL-11
systemctl inicio de PostgreSQL-11
PostgreSQL 1.2 instalación de Linux del paquete fuente
1 entorno del sistema para establecer
gcc, bisonte, gcc-c ++, readline, readline-devel, zlib, zlib-devel
yum install gcc * * -y
[Root @ Redhat7 ~] # yum install -y * * bisontes
[Root @ Redhat7 ~] # yum install -y * * readline
[Root @ Redhat7 ~] # yum install -y * * zlib
2 y optimización de sistemas Linux
ulimit funciones: control del programa shell recurso
En el momento tras el despliegue de aplicaciones de Linux, a veces se encuentran Socket File /: No se puede abrir tantos archivos en cuestión; este valor también afectará a la cantidad máxima de servidor concurrente, de hecho, hay un límite de identificador de archivo de Linux, pero por defecto de Linux no muy alta, por lo general 1024, con el servidor de producción es realmente muy fácil llegar a este número. Debajo de eso es la manera de corregir los valores predeterminados del sistema de configuración de la solución positiva.
/etc/security/limits.conf
nproc suave: número máximo de procesos disponibles para un solo usuario (más de WARN);
nproc duro: número máximo de procesos disponibles para un solo usuario (más que ser determinado);
nofile suave: para abrir el número máximo (más de WARN) descriptor de archivo;
nofile duro: el número máximo de descriptores de archivos abiertos (más que ser determinado);
# Fin de f11e
* Nof1le suave 1024000
* Nofile duro 1024000
* Suave nproc 1024000
* Nproc duro 1024000
[Root @ Redhat7 ~] # cat /etc/security/limits.d/20-nproc.conf
# Límite predeterminado para el número de procesos de usuario para prevenir
# Bomba fork accidental.
# Ver Rhbz # 432903 para el razonamiento.
* Suave nproc 4096
raíz nproc suave ilimitada
modificado para
* Suave nproc 1024000
* Nproc duro 1024000
raíz nproc suave ilimitada
3 Cree el usuario postgres, y crear el directorio de instalación
[Root @ Redhat7 ~] # useradd postgres
[Root @ Redhat7 ~] # mkdir /opt/pgsql11.4 crear directorios de inicio PG
[Root @ Redhat7 ~] # mkdir / PGDB crear datos pg
[Root @ Redhat7 ~] # chown -R Postgres: postgres /opt/pgsql11.4/
[Root @ Redhat7 ~] # chown -R Postgres: postgres / PGDB
4 Instalación de PostgreSQL
[Root @ pgsql11.4 Redhat7] # tar -zxvf PostgreSQL-11.4.tar.gz
[Root @ Redhat7 PostgreSQL-11.4] # ./configure --prefix = / opt / pgsql11.4
hacer
make install
completa instalación de PostgreSQL.
Puerto prefix = PREFIJO - instalación de ruta modificada con mayor frecuencia
Boca con- tamaño de bloque = BLOCKSIZE - tamaño de bloque de base de datos, el valor predeterminado de 8 KB
escena OLAP en este valor se puede aumentar a 32 kB, con el fin de mejorar el rendimiento de OLAP, se recomienda utilizar los valores predeterminados de 8 kb en escenarios OLTP.
Puerto con SEGSIZE-= SEGSIZE - segmento de tamaño de archivo de la tabla, por defecto de 1 GB
Boca con llvm-- basado compilador JIT utilizar Ivm
Puerto with-Wal-blocksize = BLOCKSIZE: WAL especifican el tamaño de bloque del archivo, el valor predeterminado es 8kB.
Puerto with-Wal-SEGSIZE = SEGSIZE: WAL especificar un tamaño de archivo único, por defecto es de 16 MB.
5 variable de entorno de configuración
relativamente amplio
que /home/postgres/.bash_profile
Añadir contenido:
exportación PGPORT = 8432
exportación PGHOME = / usr / pgsql-11
exportación PGDATA = / mnt / db1 / PGDATA / pgsql
Export PATH = $ PGHOME / bin: $ PATH
exportación MANPATH = $ PGHOME / share / man: $ MANPATH
export LANG = en_US.UTF-8
Fecha de exportación = 'fecha + "% Y% m% d% H% M"'
exportación LD_LIBRARY_PATH = $ PGHOME / lib: $ LD_LIBRARY_PATH
exportación PGHOST = $ PGDATA
exportación PGUSER = postgres
Puede ser utilizado
PGHOME = / opt / pgsql11.4
exportación PGHOME
PGDATA = / PGDB
exportación PGDATA
Export PATH = $ PGHOME / bin: $ PATH
export PATH
6 inicializar la base de datos
Comando para inicializar el cluster de base de datos utilizando initdb
Un -D: Inicio guía de clúster de base de datos
-E: base de datos de codificación de caracteres
--wal-SEGSIZE: tamaño de archivo de registro WAL
- -U: especificar el superusuario
initdb -D / PGDB /
[Postgres @ RHCE7 ~] $ initdb -D / PGDB /
Los archivos que pertenecen a este sistema de base de datos serán propiedad de usuario "postgres".
Este usuario también debe poseer el proceso del servidor.
El clúster base de datos se inicializa con locale "zh_CN.UTF-8".
La codificación de la base de datos por defecto en consecuencia se ha ajustado a "UTF-8".
initdb: no se pudo encontrar la configuración de búsqueda de texto adecuados para la configuración regional "zh_CN.UTF-8"
La configuración por defecto de búsqueda de texto se establece en "simple".
sumas de comprobación de página de datos están desactivados.
la fijación de permisos en el directorio / PGDB existente ... ok
crear subdirectorios ... ok
max_connections selección por defecto ... 100
la selección por defecto shared_buffers ... 128 MB
seleccionar por defecto la zona horaria ... República Popular China
la selección de la memoria dinámica compartida aplicación ... POSIX
la creación de los archivos de configuración ... ok
ejecutar el script de arranque ... OK
la realización de inicialización posterior al arranque ... OK
la sincronización de datos en el disco ... ok
ADVERTENCIA: activar la autenticación de "confianza" para conexiones locales
Puede cambiar esto editando pg_hba.conf o utilizando la opción -A, o
--auth-local y --auth-anfitrión, la próxima vez que ejecute initdb.
Éxito. Ahora puede iniciar el servidor de base de datos mediante:
pg_ctl -D / PGDB / -l archivo de registro iniciar
[Postgres @ RHCE7 ~] $ pg_ctl -D / PGDB / -l archivo de registro comienzan
esperando que el servidor para iniciar .... hecho
servidor se ha iniciado
7 en el arranque
[Root @ RHCE7 ~] # vim /usr/lib/systemd/system/postgresql-11.service
[Unidad]
Descripción = servidor de base de datos PostgreSQL
Después = network.target
[Servicio]
Type = bifurcación
Usuario = postgres
Grupo = postgres
# Número de puerto para el servidor para que escuche en
Medio Ambiente = PGPORT = 5432
# Ubicación de la base de datos de directorio
Medio Ambiente = PGDATA = / PGDB /
# A dónde enviar mensajes de principios del inicio del servidor (antes de la tala
# Opciones de efecto postgresql.conf tomar)
# Este es normalmente controlada por el conjunto predeterminado global systemd
# StandardOutput = syslog
# Desactivar matanza OOM en el jefe de correos
OOMScoreAdjust = -1,000
# ExecStartPre = / opt / pgsql11.4 / bin / postgresql-cheque-db-dir $ {} PGDATA
ExecStart = / opt / pgsql11.4 / bin / pg_ctl comenzar -D $ {} PGDATA -s -o "-p $ {} PGPORT" -w -t 300
ExecStop = / opt / pgsql11.4 / bin / pg_ctl parada D $ {} -s PGDATA rápida -m
ExecReload = / opt / pgsql11.4 / bin / pg_ctl recarga D $ {} -s PGDATA
# Dar un plazo de tiempo razonable para que el servidor para poner en marcha / apagar
TimeoutSec = 300
[Instalar en pc]
WantedBy = multi-user.target
[Root @ RHCE7 ~] # systemctl permiten /usr/lib/systemd/system/postgresql-11.service
Init pruebas 6 reinicio
[Root @ RHCE7 ~] # systemctl estado de PostgreSQL-11.service
● PostgreSQL-11.service - servidor de base de datos PostgreSQL
Cargado: cargado (/usr/lib/systemd/system/postgresql-11.service; habilitado; proveedor prefijado: desactivado)
Activo: activo (correr) desde 日 09/15/2019 00:37:04 CST; Hace 47s 3min
Proceso: 936 ExecStart = / opt / pgsql11.4 / bin / pg_ctl comenzar -D $ {} PGDATA -s -o -p $ {} PGPORT -w -t 300 (código = salido, estado = 0 / ÉXITO)
1.3PostgreSQL acceso remoto (versión para Linux)
versión para Linux de forma predeterminada PostgreSQL no puede acceder directamente a la base de datos remota, por tanto, es necesario modificar la configuración de base de datos PostgreSQL para el acceso remoto.
funcionamiento específico es como sigue: Las siguientes modificaciones postgresql.conf
Al usuario final a los parámetros add:
listen_address = '*', tener cuidado de no ser comentada
Habilitar la autenticación de contraseña
# Password_encryption = MD5 modificado como password_encryption = MD5
Modificar el contenido del archivo pg_hba.conf:
Los usuarios pueden acceder al segmento de IP
En el final del archivo añadido: host all all 0.0.0.0/0 confianza
También puede alojar todo todo todo la confianza
la base de datos PostgreSQL reinicio: Después de un exitoso comienzo, a continuación, conectar el mando a distancia