usuarios una servidor renombrar postgres instancia entrar desde desconectar datos crear consola column aws sql postgresql

una - renombrar base de datos postgresql



PostgreSQL-Renombrar base de datos (5)

Necesito cambiar el nombre de la base de datos, pero cuando lo hago en PGAdmin : ALTER DATABASE "databaseName" RENAME TO "databaseNameOld" me dijo que no puede.

¿Cómo puedo hacerlo?

( Versión 8.3 en Windows XP )

Actualizar

  • El primer mensaje de error: No puedo porque estaba conectado a él. Así que seleccioné otra base de datos e hice las consultas.

  • Aparece un segundo mensaje de error que me dice que ha llegado la conexión de usuario. Veo en la pantalla PGAdmin que tiene muchos PID pero están inactivos ... No veo cómo matarlos.


¡Unexist me dijo en un comentario que reinicie la base de datos y funciona! Al reiniciar la base de datos, se eliminó toda la conexión existente y luego me conecté a otra base de datos y pude cambiarle el nombre con mi consulta inicial.

Thx todo.


En lugar de implementar un nuke (reiniciar el servidor), debe intentar cerrar las conexiones que le molestan, ya sea al encontrar de dónde son y cerrar los procesos del cliente o mediante la función pg_cancel_backend() .


Intenta no citar el nombre de la base de datos:

ALTER DATABASE people RENAME TO customers;

Asegúrese también de que no haya otros clientes conectados a la base de datos en ese momento. Por último, intente publicar el mensaje de error que devuelve para que podamos obtener un poco más de información.


Me acabo de enterar de esto y a continuación es lo que funcionó:

1) pdAdmin es una de las sesiones. Use psql en psql lugar.
2) Detenga los servicios de pgBouncer y / o del programador en Windows, ya que estos también crean sesiones


Para referencia futura, debería poder:

-- disconnect from the database to be renamed /c postgres -- force disconnect all other clients from the database to be renamed SELECT pg_terminate_backend( pid ) FROM pg_stat_activity WHERE pid <> pg_backend_pid( ) AND datname = ''name of database''; -- rename the database (it should now have zero clients) ALTER DATABASE "name of database" RENAME TO "new name of database";

Tenga en cuenta que la tabla pg_stat_activity column pid se denominó como procpid en versiones anteriores a la 9.2. Entonces, si su versión de PostgreSQL es menor que 9.2, use procpid lugar de pid .