initdb: crea un nuevo clúster de base de datos PostgreSQL
Sinopsis
initdb
[option
…] [ --pgdata
| -D
] directory
Descripción
initdb
crea un nuevo clúster de base de datos PostgreSQL. Un clúster de bases de datos es una colección de bases de datos administradas por una sola instancia de servidor.
La creación de un clúster de base de datos consiste en crear los directorios en los que vivirán los datos de la base de datos, generar las tablas del catálogo compartido (tablas que pertenecen a todo el clúster en lugar de a una base de datos en particular) y crear el template1
y postgres
bases de datos. Cuando más tarde cree una nueva base de datos, todo en el template1
Se copia la base de datos. (Por lo tanto, cualquier cosa instalada en template1
se copia automáticamente en cada base de datos creada posteriormente). postgres
La base de datos es una base de datos predeterminada destinada a usuarios, servicios públicos y aplicaciones de terceros.
A pesar de que initdb
intentará crear el directorio de datos especificado, es posible que no tenga permiso si el directorio principal del directorio de datos deseado es propiedad de la raíz. Para inicializar en una configuración de este tipo, cree un directorio de datos vacío como raíz, luego use chown
para asignar la propiedad de ese directorio a la cuenta de usuario de la base de datos, luego su
para convertirse en el usuario de la base de datos para ejecutar initdb
.
initdb
debe ejecutarse como el usuario que será el propietario del proceso del servidor, porque el servidor necesita tener acceso a los archivos y directorios que initdb
crea. Dado que el servidor no se puede ejecutar como root, no debe ejecutar initdb
como root tampoco. (De hecho, se negará a hacerlo).
Por razones de seguridad, el nuevo clúster creado por initdb
solo será accesible por el propietario del clúster de forma predeterminada. los --allow-group-access
La opción permite que cualquier usuario del mismo grupo que el propietario del clúster lea archivos en el clúster. Esto es útil para realizar copias de seguridad como usuario sin privilegios.
initdb
inicializa la configuración regional predeterminada del clúster de la base de datos y la codificación del juego de caracteres. La codificación del juego de caracteres, el orden de clasificación (LC_COLLATE
) y clases de juego de caracteres (LC_CTYPE
, por ejemplo, superior, inferior, dígito) se pueden configurar por separado para una base de datos cuando se crea. initdb
determina esos ajustes para el template1
database, que servirá como predeterminado para todas las demás bases de datos.
Para modificar el orden de clasificación predeterminado o las clases de juego de caracteres, utilice el --lc-collate
y --lc-ctype
opciones. Órdenes de colación que no sean C
o POSIX
también tienen una penalización de rendimiento. Por estas razones, es importante elegir la configuración regional correcta al ejecutar initdb
.
Las categorías de configuración regional restantes se pueden cambiar más tarde cuando se inicia el servidor. También puedes usar --locale
para establecer el valor predeterminado para todas las categorías de configuración regional, incluido el orden de clasificación y las clases de juego de caracteres. Todos los valores de la configuración regional del servidor (lc_*
) se puede mostrar a través de SHOW ALL
. Se pueden encontrar más detalles en la Sección 23.1.
Para modificar la codificación predeterminada, utilice la --encoding
. Se pueden encontrar más detalles en la Sección 23.3.
Opciones
-
-A authmethod
--auth=authmethod
-
Esta opción especifica el método de autenticación predeterminado para los usuarios locales utilizado en
pg_hba.conf
(host
ylocal
líneas).initdb
prepoblarápg_hba.conf
entradas que utilizan el método de autenticación especificado para conexiones de no replicación y de replicación.No utilice
trust
a menos que confíe en todos los usuarios locales de su sistema.trust
es el predeterminado para facilitar la instalación. --auth-host=authmethod
-
Esta opción especifica el método de autenticación para usuarios locales a través de conexiones TCP / IP utilizadas en
pg_hba.conf
(host
líneas). --auth-local=authmethod
-
Esta opción especifica el método de autenticación para usuarios locales a través de conexiones de socket de dominio Unix utilizadas en
pg_hba.conf
(local
líneas). -
-D directory
--pgdata=directory
-
Esta opción especifica el directorio donde se debe almacenar el clúster de la base de datos. Esta es la única información requerida por
initdb
, pero puede evitar escribirlo configurando elPGDATA
variable de entorno, que puede ser conveniente ya que el servidor de la base de datos (postgres
) puede encontrar el directorio de la base de datos más tarde con la misma variable. -
-E encoding
--encoding=encoding
-
Selecciona la codificación de la base de datos de la plantilla. Esta también será la codificación predeterminada de cualquier base de datos que cree más adelante, a menos que la anule allí. El valor predeterminado se deriva de la configuración regional, o
SQL_ASCII
Si eso no funciona. Los juegos de caracteres admitidos por el servidor PostgreSQL se describen en la Sección 23.3.1. -
-g
--allow-group-access
-
Permite a los usuarios del mismo grupo que el propietario del clúster leer todos los archivos del clúster creados por
initdb
. Esta opción se ignora en Windows ya que no admite permisos de grupo de estilo POSIX. -
-k
--data-checksums
-
Use sumas de verificación en las páginas de datos para ayudar a detectar daños por parte del sistema de E / S que de otra manera permanecería en silencio. Habilitar sumas de comprobación puede incurrir en una notable penalización de rendimiento. Si se establece, las sumas de verificación se calculan para todos los objetos, en todas las bases de datos. Todas las fallas de la suma de comprobación se informarán en el
pg_stat_database
vista. --locale=locale
-
Establece la configuración regional predeterminada para el clúster de la base de datos. Si no se especifica esta opción, la configuración regional se hereda del entorno que
initdb
se ejecuta. El soporte de configuración regional se describe en la Sección 23.1. -
--lc-collate=locale
--lc-ctype=locale
--lc-messages=locale
--lc-monetary=locale
--lc-numeric=locale
--lc-time=locale
-
Igual que
--locale
, pero solo establece la configuración regional en la categoría especificada. --no-locale
-
Equivalente a
--locale=C
. -
-N
--no-sync
-
Por defecto,
initdb
esperará a que todos los archivos se escriban de forma segura en el disco. Esta opción provocainitdb
regresar sin esperar, lo cual es más rápido, pero significa que una falla posterior del sistema operativo puede dejar el directorio de datos dañado. Generalmente, esta opción es útil para realizar pruebas, pero no debe utilizarse al crear una instalación de producción. --pwfile=filename
-
Marcas
initdb
leer la contraseña del superusuario de la base de datos de un archivo. La primera línea del archivo se toma como contraseña. -
-S
--sync-only
-
Escriba de forma segura todos los archivos de la base de datos en el disco y salga. Esto no realiza ninguna de las operaciones normales de initdb.
-
-T config
--text-search-config=config
-
Establece la configuración de búsqueda de texto predeterminada. Consulte default_text_search_config para obtener más información.
-
-U username
--username=username
-
Selecciona el nombre de usuario del superusuario de la base de datos. Este valor predeterminado es el nombre del usuario efectivo que ejecuta
initdb
. Realmente no es importante cuál es el nombre del superusuario, pero se puede optar por mantener el nombre habitual postgres, incluso si el nombre de usuario del sistema operativo es diferente. -
-W
--pwprompt
-
Marcas
initdb
solicitar una contraseña para dar al superusuario de la base de datos. Si no planea usar la autenticación de contraseña, esto no es importante. De lo contrario, no podrá utilizar la autenticación de contraseña hasta que haya configurado una contraseña. -
-X directory
--waldir=directory
-
Esta opción especifica el directorio donde se debe almacenar el registro de escritura anticipada.
--wal-segsize=size
-
Selecciona el Tamaño del segmento WAL, en megabytes. Este es el tamaño de cada archivo individual en el registro WAL. El tamaño predeterminado es de 16 megabytes. El valor debe ser una potencia de 2 entre 1 y 1024 (megabytes). Esta opción solo se puede configurar durante la inicialización y no se puede cambiar más adelante.
Puede resultar útil ajustar este tamaño para controlar la granularidad del envío o archivo de registros WAL. Además, en bases de datos con un alto volumen de WAL, la gran cantidad de archivos WAL por directorio puede convertirse en un problema de rendimiento y administración. Aumentar el tamaño del archivo WAL reducirá la cantidad de archivos WAL.
También están disponibles otras opciones, menos utilizadas:
-
-d
--debug
-
Imprima la salida de depuración del backend de arranque y algunos otros mensajes de menor interés para el público en general. El backend bootstrap es el programa
initdb
utiliza para crear las tablas del catálogo. Esta opción genera una enorme cantidad de resultados extremadamente aburridos. -L directory
-
Especifica donde
initdb
debe encontrar sus archivos de entrada para inicializar el clúster de la base de datos. Normalmente esto no es necesario. Se le informará si necesita especificar su ubicación explícitamente. -
-n
--no-clean
-
Por defecto, cuando
initdb
determina que un error le impidió crear por completo el clúster de la base de datos, elimina los archivos que pudo haber creado antes de descubrir que no puede finalizar el trabajo. Esta opción inhibe la limpieza y, por lo tanto, es útil para depurar.
Otras opciones:
-
-V
--version
-
Imprima la versión de initdb y salga.
-
-?
--help
-
Muestre ayuda sobre los argumentos de la línea de comando initdb y salga.
Medio ambiente
PGDATA
-
Especifica el directorio donde se almacenará el clúster de la base de datos; se puede anular usando el
-D
opción. PG_COLOR
-
Especifica si se debe utilizar color en los mensajes de diagnóstico. Los valores posibles son
always
,auto
ynever
. TZ
-
Especifica la zona horaria predeterminada del clúster de base de datos creado. El valor debe ser un nombre de zona horaria completo (consulte la Sección 8.5.3).
Esta utilidad, como la mayoría de las otras utilidades de PostgreSQL, también usa las variables de entorno admitidas por libpq (consulte Sección 33.14).
Notas
initdb
también se puede invocar a través de pg_ctl initdb
.
Ver también
pg_ctl, postgres
Anterior | Hasta | próximo |
Aplicaciones de servidor PostgreSQL | Hogar | pg_archivecleanup |