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 y local 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 el PGDATA 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 provoca initdb 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 y never.

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