sql >> Base de Datos >  >> RDS >> Database

Tareas comunes de Postgres en CentOS 7

Esta guía lo guía a través de algunas tareas comunes relacionadas con un servidor de Postgres. En este tutorial, cubriremos la instalación de Postgres, la creación de nuevas bases de datos y usuarios, la copia de seguridad de bases de datos y más. ¡Vamos a profundizar!

Nota:El resto de este tutorial requiere que tengas root privilegios Comience ya sea iniciando sesión como root o prefije estos comandos con sudo .

Instalación de PostgreSQL

Instalar Postgres es sencillo en nuestro servidor CentOS VPS, gracias al administrador de paquetes YUM. Ejecute el siguiente comando para instalar Postgres en su sistema:

yum install -y postgres-server

Configuración de PostreSQL

Ahora que Postgres está instalado, es hora de configurar el servicio. Primero, Postgres requiere que inicialice una base de datos antes de poder usarla. Afortunadamente, proporcionan un comando para facilitarnos este paso:

postgres-setup initdb

Configuraremos Postgres para que se inicie automáticamente cuando se inicie su servidor. Ejecute el siguiente comando para habilitar el servicio en el arranque:
systemctl enable postgres

A continuación, iniciaremos el servicio. El siguiente comando iniciará Postgres si aún no se está ejecutando:
systemctl start postgres

Finalmente, verificamos que Postgres se esté ejecutando después del reinicio:
service postgres status

El resultado debería mostrarse activo (en ejecución), lo que indica que el servicio está activo y estamos listos para continuar.

Crear una nueva base de datos y agregar un nuevo usuario

Postgres se ejecuta como el usuario "postgres" en su sistema CentOS Linux, no como "raíz". Es importante tener esto en cuenta porque no puede interactuar con Postgres como root.

Primero, cambiemos a "postgres ” usuario. Este usuario se creó automáticamente en su sistema cuando instalamos Postgres.
su - postgres

A continuación, crearemos una nueva base de datos. Lo llamamos "mi base de datos ” en nuestro ejemplo, pero siéntete libre de nombrarlo como quieras.
createdb mydatabase

Ahora, agregaremos un nuevo usuario para esa base de datos. En este ejemplo, estamos usando el nombre de usuario "myusername ”, pero puedes nombrarlo como quieras.
createuser myusername

Concesión de permisos a la base de datos de PostgreSQL

Hasta ahora, instalamos Postgres, creamos una nueva base de datos y creamos un nuevo usuario para acceder a la base de datos. Solo queda un paso, y es otorgar permisos para que nuestro nuevo usuario pueda acceder a la base de datos. Para iniciar este proceso, primero debemos ingresar al “shell de postgres”. Ingrese el siguiente comando:
psql

Después de pulsar Intro, debería notar que su símbolo del sistema ha cambiado, lo que indica que ahora se encuentra en el shell de Postgres.
psql (9.2.24)
Type “help” for help.
postgres =#

Desde aquí, ahora podemos agregar permisos para que nuestro nuevo usuario acceda a la base de datos. Ingrese el siguiente comando para establecer una contraseña para nuestro usuario. Hay pocas cosas a tener en cuenta. Primero, ¡se requieren las comillas simples alrededor de la contraseña! En segundo lugar, asegúrese de sustituir el ejemplo my_secure_password para una contraseña segura legítima! Finalmente, asegúrese de incluir el punto y coma al final de la declaración. ¡Es fácil pasarlo por alto!
alter username myusername with encrypted password ‘my_secure_password’;
Postgres debería responder con el siguiente texto para informarle que tuvo éxito.
ALTER ROLE

Ahora que se ha creado la contraseña, estableceremos permisos en la base de datos. Esto permitirá que mi nombre de usuario acceda a mi base de datos.
grant all privileges on database mydatabase to myusername;
Postgres responderá con el siguiente texto si el comando tuvo éxito.
GRANT

Revisemos nuestro trabajo y verifiquemos que la base de datos aparezca en Postgres. Desde el shell, ejecute \list comando y observe la salida cuidadosamente. Debería ver "mi base de datos ” en la lista de bases de datos.

¡Hemos terminado! Ingrese el siguiente comando para salir del shell de Postgres.
\quit

Cómo hacer una copia de seguridad de una base de datos PostgreSQL

Hay varias formas de hacer una copia de seguridad de una base de datos de Postgres. Para nuestro ejemplo de hoy, le mostraremos cómo usar el excelente “pg_dump ”, que genera toda su base de datos como un solo archivo. ¡Crear copias de seguridad es muy fácil! Ejecute el siguiente comando para hacer una copia de seguridad de nuestra base de datos. Tenga en cuenta que usamos el nombre "mydatabase.bak ” en nuestro ejemplo, pero puede nombrar su archivo de copia de seguridad como desee.
pg_dump mydatabase > mydatabase.bak

Ahora puede copiar o mover fácilmente este archivo donde desee para almacenar copias de seguridad. Como práctica recomendada, recomendamos enfáticamente almacenar sus copias de seguridad en un disco de copia de seguridad dedicado, separado de la unidad de su sistema operativo. De esta forma, sus copias de seguridad estarán sanas y salvas, incluso en el improbable caso de que se produzca un bloqueo del sistema.

Cómo eliminar una base de datos PostgreSQL

Eliminar una base de datos es un proceso sencillo. Requiere que primero acceda al shell de Postgres. Un recordatorio rápido de que puede acceder al shell de Postgres con el siguiente comando:
psql
Desde aquí, es un solo comando para eliminar la base de datos. Eliminemos nuestra base de datos de muestra.
drop database mydatabase
Postgres confirmará el éxito con el siguiente mensaje:
DROP DATABASE
Nota:si especifica una base de datos que no existe, Postgres responderá con el siguiente error:
ERROR: database “my_other_database” does not exist
Puede verificar que la base de datos se eliminó usando la \list comando dentro del shell de Postgres. Observe el resultado y debería notar que "mydatabase ” ha sido eliminado de la lista de bases de datos.

Cómo restaurar una base de datos PostgreSQL a partir de copias de seguridad

Ahora que hemos eliminado nuestra base de datos llamada "mydatabase ”, veamos cómo restaurar esa base de datos desde la copia de seguridad que creamos. Primero, necesitamos usar una plantilla vacía para albergar la base de datos restaurada. Asegúrese de ejecutar el siguiente comando como su usuario de Postgres y desde el shell BASH (¡no desde el shell de Postgres!)
createdb -T template0 mydatabase

Ahora que tenemos nuestro marcador de posición de plantilla, podemos importar datos.
psql mydatabase < /path/to/mydatabase.bak
La base de datos ahora ha sido restaurada. Si ejecuta \list de nuevo desde el shell de Postgres, verá que "mydatabase" vuelve a aparecer en nuestra lista de bases de datos.

Enhorabuena por llegar al final de esta entrega. ¡Cubrimos mucho terreno en este tutorial! Solo hemos tocado la superficie de este tema, ¡y ya puede comenzar a ver por qué los administradores de bases de datos ocupan puestos dedicados en muchas empresas! Afortunadamente, Liquid Web está aquí para ayudarlo con todas sus necesidades de base de datos. Nuestro equipo de profesionales puede ayudar a asesorar y administrar sus bases de datos. ¡Escríbanos si tiene alguna pregunta y gracias por leer!