Ads 468x60px

viernes, 12 de agosto de 2011

Error con Visual Studio 2010 y Crystal Report

Buscando información por la red, me topé por casualidad con esta página que quiero compartir con vosotros, en la que explica un curioso error que salta al intentar crear un informe con Crystal Report para Visual Studio 2010 y tratar crear la conexión con la base de datos. El error en concreto es:  "External component has thrown an exception". Lo curioso está en la solución: El error sólo se produce si tenemos el directorio C:\temp. Se renombra el susodicho directorio y arreglado. Increible ¿no?

domingo, 6 de marzo de 2011

No arranca el servidor de PostgreSQL

Con este artículo comienza una serie en la que iré comentando los errores que vayan surgiendo en la utilización de PostgreSQL y su solución, si es que la hubiera.

Pues el primer error que me he encontrado ha sido como bien dice el título de este artículo, que no me arrancaba el servidor de PostgreSQL, así de repente, si previo aviso. Después de darle muchas vueltas, buscando por la red y a punto de desinstalar y reinstalar PostgreSQL otra vez. Por fin encontré la solución inspeccionando el visor de sucesos de Windows me aparece el siguiente error:
"bogus data in lock file postmaster.pid"

Pues bien parece ser que el tal archivo "postmaster.pid", un simple archivo de texto, que se encuentra en la carpeta Data del directorio de instalación de PostgreSQL, se crea cuando arrancamos el servidor y se borra cuando lo detenemos y sirve principalmente para evitar que se ejecuten varias instancias del Servidor en el mismo directorio de datos. Pues parece ser que dicho archivo estaba corrupto, como consecuencia seguramente de algún reinicio anormal de Windows. La solución era bien sencilla: borrar el archivo. Una vez echo esto pude reiniciar el servidor otra vez sin ningún problema.

martes, 1 de marzo de 2011

Entendiendo PostgreSQL - ¿Que es un cluster?

Pues como dice la ayuda, un cluster es una colección de bases de datos que están administradas por una sola instancia del servidor.
Crear un clúster de base de datos consiste en crear los directorios donde se almacenarán las bases de datos, la generación de las tablas compartidas del catálogo (tablas que pertenecen al grupo en su totalidad y no a una determinada base de datos), y crear las bases de datos template1 y postgres. Cuando creemos una nueva base de datos, se copia automáticamente template1. (Por lo tanto, cualquier cosa instalada en template1 se copia automáticamente en cada base de datos creada más adelante.) La base de datos PostgreSQL es una base de datos predeterminada para ser usada por los usuarios, servicios y aplicaciones de terceros.
Para más información Initdb.

domingo, 27 de febrero de 2011

Entendiendo PostgresSQL - Tablespaces

Esto es lo que dice la ayuda sobre los Tablespaces: "Los Tablespaces permiten a los administradores de Bases de Datos definir las ubicaciones en el sistema de archivos de los objetos que representan las bases de datos que se pueden almacenar". Dicho de otra manera, los Tablespaces nos permiten decirle a PostgreSQL donde queremos almacenar nuestras tablas. ¿Y para que sirve ésto? Pues por ejemplo para optimizar el rendimiento; si sabemos que tablas son más usadas y las que apenas se usan, podríamos almacenar las menos usadas en un disco duro antiguo o de menos prestaciones y las que más se usan en un disco más rápido, de mejor calidad y por lo tanto más caro.
Para crear el Tablespace utilizamos el siguiente comando:

CREATE TABLESPACE MiEspacio LOCATION 'c:\postgresql\datos';
El directorio debe existir. Todos los objetos que se creen bajo este Tablespace serán almacenados en este directorio.

martes, 22 de febrero de 2011

¿Cuando ocupa mi Base de Datos?

Si queremos saber cuanto ocupa nuestra base de datos, nada más sencillo que ejecutar esta consulta:

SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS SIZE FROM pg_database;
 
Aquí podemos ver el resultado:
 


 
 
 
 
Fácil ¿no?

domingo, 13 de febrero de 2011

¿Donde guarda Postgresql mi base de datos?

Si investigamos un poco en el árbol de directorios donde está instalado Postgresql, podremos observar que donde guarda las bases de datos es en es C:\Program Files\PostgreSQL\8.4\data\base, pero comprobamos que nuestra base de datos no aparece, o eso parece:

Como podemos observar en la imágen, en la carpeta data aparecen varias carpetas con números como nombre. Si queremos saber que nombre de base de datos corresponden a esos números, es tan fácil como ejecutar esta consulta: select datname,oid from pg_database;
Voilá :
Como vemos en la segunda imágen la carpeta con el número 1 corresponde a template1, la número 11563 con template 0 y así sucesivamente.