initdb

Nombre

initdb  --  Crea una nueva instalación de la base de datos de PostgreSQL

Synopsis

initdb [ --pgdata|-D dbdir ]
       [ --sysid|-i sysid ]
       [ --pwprompt|-W ]
       [ --encoding|-E encoding ]
       [ --pglib|-L libdir ]
       [ --noclean | -n ] [ --debug | -d ] [ --template | -t ]
  

Inputs

--pgdata=dbdir, -D dbdir, PGDATA

Esta opción especifica en que parte del sistema de archivos será almacenada la base de datos. Ésta es la única información requerida por el initdb, pero podemos omitirla estableciendo la variable de entorno PGDATA lo que puede ser conveniente ya que el servidor de la base de datos (postmaster) puede encontrar el directorio de la base de datos más adelante a través de la misma variable.

--sysid=sysid, -i sysid

Selecciona él id del sistema para el super usuario (root) de la base de datos. Por omisión apunta al id de aquel usuario que este ejecutando initdb. Realmente no es importante cuál sea él id del sistema para el super usuario, ya que uno podría elegir comenzar la numeración con cualquier número como 0 o 1.

--pwprompt, -W

Ocasiona que el initdb pregunte por el password del super usuario (root) de la base de datos. Si uno no planea usar la autentificación a través de passwords, entonces realmente no es importante. De cualquier manera uno no podrá utilizar la autentificación a través de passwords hasta que haya establecido un password.

--encoding=encoding, -E encoding

Selecciona la codificación multibyte para la base de datos modelo (o plantilla). De hecho esta también será la codificación por defecto para cualquier base de datos que uno cree más adelante, a menos que usted la cambie. Para utilizar la característica de codificación multibyte, se debe especificar durante el tiempo de construcción (creación de la BD), en cuyo caso uno también selecciona el valor por defecto para esta opción.

Otros parámetros utilizados menos comúnmente están también disponibles:

--pglib=libdir, -l libdir

initdb necesita algunos archivos de entrada para poder inicializar la base de datos. Esta opción indica dónde encontrarlos. Normalmente, uno no tiene que preocuparse por esto puesto que el initdb conoce los esquemas de instalación más comunes y encontrará, normalmente, los archivos por sí mismo. Se le dirá si usted necesita especificar su ubicación explícitamente. Si sucede esto, uno de los ficheros se llama global1.bki.source y está instalado tradicionalmente junto con los otros archivos en el directorio de bibliotecas (por ejemplo, /usr/local/pgsql/lib) /usr/local/pgsql/lib).

--template, -t

Replace the template1 Substituye la base de datos template1 en un sistema de base de datos existente, y no toca otra cosa. Esto es útil cuando se necesita actualizar el template1de la base de datos usando el initdb de una versión más nueva de PostgreSQL, o cuando el template1de la base de datos se ha corrompido por algún problema del sistema. Normalmente el contenido del template1 se mantendrá constante a través de la vida del sistema de base de datos. No se puede destruir cualquier otra cosa ejecutando el initdb con la opción --template.

--noclean, -n

Por defecto, cuando initdb determina que un error evita que se cree totalmente el sistema de base de datos, remueve cualquier archivo que pudo haber creado, antes de determinar que no puede acabar el trabajo. Esta opción inhibe "tidying-up" y es por lo tanto, útil para depurar.

--debug, -d

Imprime la salida de depuración de la "carga inicial backend" y algunos otros mensajes de poco interés para el público en general. La "carga inicial backend" es la aplicación que el initdb usa para crear las tablas del catálogo. Esta opción genera una enorme cantidad de salida.

Salidas

initdb creará los ficheros en el área de datos especificada que son las tablas del sistema y el marco de trabajo para una instalación completa.

Descripción

initdb crea un nuevo sistema de base de datos de PostgreSQL database system. Un sistema de base de datos es una colección de bases de datos que son todas administradas por el mismo usuario de UNIX y manejadas por un solo postmaster

Crear un sistema de base de datos consiste en crear los directorios en los cuales los datos de la base de datos serán almacenados. generar las tablas de catálogo compartidas (son tablas que no pertenecen a ninguna base de datos determinada). crear el template1 de la base de datos. Cuando usted crea una nueva base de datos, todo el template1de la base de datos se copia. Contiene las tablas de catálogo llenas para cosas como los tipos interconstruidos

No se debe ejecutar el initdb como root. Esto se debe ya que uno no puede ejecutar el servidor de la base de datos ni siquiera como root, pero el servidor necesita tener acceso a los archivos que initdbcrea. Además, durante la fase de la inicialización, cuando no hay usuarios y ningún control de acceso instalado, postgres solamente se conectará con el nombre de usuario actual de UNIX, así que uno debe iniciar una sesión bajo la cuenta que poseerá el proceso del servidor.

Aunque initdb procurará crear el directorio de datos respectivo, lo cierto es que no tendrá el permiso para hacerlo. Por lo tanto, es una buena idea crear el directorio de datos antes de ejecutar initdb y entregar la propiedad de él al super usuario de la base de datos.