Saber el SID de Oracle en UNIX

12.12.09. Por ooscarr (ooscarr)

Estaba tratando de conectarme a Oracle desde SQL Developer pero el formulario de la conexión me pedía el SID. ¿Pero cuál es mi SID? ¿Ah?

Por suerte, Oracle estaba instalado sobre un ambiente parecido a UNIX como lo es Linux y pude conocer este dato entrando por SSH al servidor y escribiendo el comando:

echo $ORACLE_SID

Ventana de configuración de conexiones de SQL Developer para Mac OS X con el SID acinfo.

Para administrar mi base de datos estoy usando el software gratuito oficial de Oracle multi-plataforma SQL Developer (requiere registro previo en oracle.com).

Referencias

Etiquetas: ,

Accediendo a otro servidor de una red por SSH

27.7.09. Por ooscarr (ooscarr)

Terminal

El comando para conectarse al puerto del servidor que está en la Universidad y que no podemos acceder desde la casa (a través de otro servidor dentro de la red).

Primer caso

En la Universidad tenemos un servidor Windows 2003 que ofrece el servicio de Tomcat por el puerto 8080 como es normal. http://serrano.unap.cl:8080/. Pero la red de la Universidad tiene el puerto 8080 bloqueado para afuera de la U y no podemos conectarnos desde la casa.

Por medio de SSH, nosotros nos conectamos a otro servidor con Linux que está en la misma red, http://acinfo.unap.cl/, por el puerto de siempre, el 22, y a través de esta conexión accedemos al servidor del puerto 8080.

Diagrama con un notebook (localhost:2348) conectándose a un servidor con linux (acinfo.unap.cl:22) que a su vez está conectado a un servidor con Tomcat (serrano.unap.cl:8080)
Algo más o menos así.

En el Terminal, esto se hace con el comando

ssh ooscarr@acinfo.unap.cl -L 2348:serrano.unap.cl:8080

ó

ssh ooscarr@acinfo.unap.cl -L 2348/serrano.unap.cl/8080

Reemplazamos el ooscarr por tu nombre de usuario, por supuesto, y así accedemos al puerto 8080 del otro servidor como si estuviéramos en la mismísima U.

Página de $CATALINA_HOME de Tomcat desplegándose en la URL http://localhost:2348/
¡A través de la dirección http://localhost:2348/ accedemos a http://serrano.unap.cl:8080/!

Fin.

No, mentira. Segundo caso

Pongámonos en un segundo caso. Acaban de instalar Tomcat en el servidor acinfo.unap.cl:8080 así que ya no hace falta conectarse al serrano.unap.cl:8080. El puerto 8080 del servidor también está bloqueado,

Diagrama con un notebook (localhost:2348) conectándose a un servidor con linux (acinfo.unap.cl:8080)
Ahora sin el serrano.

En este caso, bastaría cambiar serrano.unap.cl por localhost ó acinfo.unap.cl así

ssh ooscarr@acinfo.unap.cl -L 2348:localhost:8080

ó

ssh ooscarr@acinfo.unap.cl -L 2348:acinfo.unap.cl:8080

ó

ssh ooscarr@acinfo.unap.cl -L 2348/acinfo.unap.cl/8080

ó

ssh -N -p 22 ooscarr@acinfo.unap.cl -L 2348:acinfo.unap.cl:8080

Y el mismo resultado.

Página de $CATALINA_HOME de Tomcat desplegándose en la URL http://localhost:2348/
¡A través de la dirección http://localhost:2348/ accedemos a http://acinfo.unap.cl:8080/.

Podríamos conectarnos a ambos servidores, utilizando un puerto distinto al 2348 para el segundo servidor.

¿Y si uso Windows, cómo lo hago?

Bueno, para esos casos, mi amigo Fernando (el Puma) hizo un mini-tutorial en su blog.

Referencias

Artículos relacionados

Etiquetas: , , , ,

Tip: Agregar carpeta al PATH

31.7.08. Por ooscarr (ooscarr)
terminal

Los paths son una lista de directorios que son buscados cuando escribes el nombre de un programa en las líneas de comandos.

Permanentemente

Para agregar permanentemente, se edita el archivo /etc/paths con permisos de superusuario así:

  1. Abrir el terminal
  2. tipear:
    sudo vi /etc/paths
  3. Escribir la contraseña si la pide
  4. Se abrirá una interfaz llamada vi, presionar la tecla i para insertar texto
  5. En la última línea, agregramos la ruta (path, por eso se llama path) al directorio
  6. esc
  7. En mi caso guardo el archivo presionando dos veces la combinación de teclas shift Z
  8. Listo

Temporalmente

También se puede agregar una ruta al PATH temporalmente mientras no cerremos la ventana. El método depende de qué sistema de comandos estén usando.

Con csh o tcsh

Si están usando el csh o el tcsh, los comandos serían:

setenv PATH ${PATH}:/ruta/a/la/carpeta

Con sh o bash

Y si están usando el sh o el bash, sería:

export PATH=$PATH:/ruta/a/la/carpeta

Estos últimos comandos se deshacen cuando se cierra la ventana del terminal.

Algunos sistemas como linux tienen métodos adicionales de agregar los PATHs, y otros (como Windows) tienen los PATHs ubicados en otras partes (Propiedades del Sistema).

Referencias

Etiquetas: , , , ,

Cómo instalé PostgreSQL en Mac OS X

5.5.08. Por ooscarr (ooscarr)
PostgreSQL

El último sistema operativo de Apple viene con MySQL pero no incluye el poderoso sistema de bases de datos OpenSource PostgreSQL. Y para los sistemas UNIX no proveen un archivo binario de fácil instalación suponiendo que es sencillo para todos los realmente interesados (comentan que sí). Aquí entrego una guía típica de instalación de este tipo de programas que sirve tanto para Mac OS X, Linux, BSD y UNIX en general. Es para todos casi lo mismo.

Primero

  1. Se recomienda a todos descargar la última versión más conocida por estos días como iPhone SDK desde la página de Apple. O instalar las Developer Tools (que vienen en el disco de instalación) si usas Tiger.
  2. Descargar la última versión de PostgreSQL desde postgresql.org (los .md5 son las firmas digitales, no los archivos que queremos). De preferencia, en el escritorio.
  3. Hacer doble click en el archivo recién descargado para que se descomprima y ya tenemos la carpeta para compilar.

Compilar PostgreSQL

  1. Abrimos el Terminal (Aplicaciones > Utilidades > Terminal)
  2. Escribimos el comando
    $ cd
    luego espacio, arrastramos y soltamos la carpeta recién descomprimida en la ventana del Terminal para que quede la ruta escrita en la misma línea. Enter (o return). Debería quedar algo como:
    $ cd /Users/ooscarr/Desktop/postgresql-8.3.1 

Configure

Antes de comenzar a compilar, hay que generar los Makefiles. Esto se hace ejecutando el script incluido configure con parámetros opcionales. El comando y los parámetros que elegí fueron los siguientes:

./configure --enable-thread-safety \
                    --without-docdir \
                    --with-perl \
                    --with-gssapi \
                    --with-pam \
                    --with-bonjour \
                    --with-openssl

No usé --prefix= porque no tengo problemas en que Postgres se instale en /usr/local. Tampoco --exec-prefix= porque no necesito que sea independiente de la plataforma, es para instalarlo aquí mismo.

En general no recomiendo personalizar las carpetas donde Postgres va a instalar sus archivos, para tener una instalación de lo más normal y conocida que permitan pedir ayuda para arreglar problemas sin complicaciones. Leopard, como UNIX, viene con readline instalado, así que no hay muchas complicaciones. El --without-docdir es para que no instale la documentación en inglés, pero lo puedes obviar sin problemas.

El --enable-dtrace suena tentador, pero no es necesario ya que no vamos a analizar el proceso de compilación y, según el archivo README, ahora sólo tiene soporte para Solaris (un muy buen sistema operativo para desarrolladores).

Al presionar return se demora un poco porque está revisando las librerías, el sistema, etc. Debería aparecer una lista de checking y unas config.status. Todo normal.

Make

Estamos listos con el código fuente, ahora falta compilar. Comando:

$ make

Éste se demora más, ocupa más el procesador, pero en unos minutitos debería haber terminado con la frase:

All of PostgreSQL successfully made. Ready to install.

Ya. Está listo para instalar.

Instalación

La instalación es igual de fácil. Lo único que hay que hacer (por ahora) es escribir:

$ sudo make install

Lo típico. Si pide la password, la escribimos y listo. La contraseña no aparecerá en pantalla.

PostgreSQL installation complete.

Eso es todo. PostgreSQL está instalado en /usr/local/pgsql/

pgAdmin III

Antes de seguir, sería bueno instalar la última versión del software pgAdmin III cuya instalación es tan fácil como la mayoría de las instalaciones de Mac OS X: arrastrar un archivo a la carpeta de Aplicaciones.

Crear la base de datos

Al igual que en Windows, se estila crear un usuario dedicado para que PostgreSQL administre los datos. Más bien es un requisito. En mi caso voy a guardar los datos en la carpeta /usr/local/pgsql/data como viene por defecto, pero esto cambia según la necesidad y configuración personal de cada usuario. Para crear la carpeta ahí, utilizo el famoso comando:

$ mkdir /usr/local/pgsql/data

Después hay que crear el usuario. Y como no me molesta tener un usuario más en la pantalla de inicio de sesión (si tienes el inicio de sesión automático, ni lo vas a ver), lo creo normalmente desde Preferencias del Sistema > Cuentas > +

Pantalla de Agregar nuevo usaurio de Mac OS X

Si te molesta el usuario en la ventana de inicio de sesión, lo puedes esconder con la plist correspondiente.

Bueno, ahora que existe el usuario postgres, hacemos que la carpeta /usr/local/pgsql/data pertenezcan a este nuevo usuario.

$ sudo chown postgres /usr/local/pgsql/data

Para inicializar la base de datos, debemos entrar a la cuenta de postgres con

$ su -l postgres

Y la inicializamos por primera vez con el script:

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

Al finalizar, aparecerán dos líneas muy importantes, ya que estos comandos se usarán para iniciar el servidor de postgresql para que funcione. En mi caso iniciaré el servidor de PostgreSQL con:

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

Y lo terminaré con:

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile stop

Cabe recordar que estos comandos sólo funcionan desde el usuario postgres así que siempre habrá que iniciar su sesión escribiendo antes:

$ su -l postgres
$ /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

Ahora que está el servidor corriendo, podemos cerrar todas las ventanas.

Crear los usuarios

La forma más fácil de crear los usuarios es abrir el software pgAdmin3, presionar el ENCHUFE para crear un nuevo servidor dentro del programa con los datos conocidos:

Agregando servidor localhost en pgAdmin III para Mac OS X

Una vez conectado, creamos un nuevo usuario desde Editar > Nuevo Objeto > Nueva rol de Login...

Editar > Nuevo Objeto > Nueva rol de Login...

Aquí se pueden usar nuestros propios datos que se usarán para conectarnos desde los códigos que podamos estar escribiendo.

Agregando datos de usuario de PostgreSQL en pgAdmin III para Mac OS X

Ya podemos crear una nueva base de datos

Menú contextual Crear nueva base de datos

Para el nuevo usuario recién creado

Asignando usuario de nueva base de datos
Recomiendo utilizar la codificación de caracteres UTF-8 como estándar si vamos a usar caracteres que no están en el idioma inglés, como la é con tilde.

Si nos desconectamos (con el mismo ENCHUFE), por seguridad deberíamos ir a Propiedades

Menú contextual Propiedades de la base de datos

... Y cambiar el nombre de la base de datos (BD de Mantenimiento) y el usuario dueño de esa base datos que recién configuramos.

Cambiando datos de base de dato PostgreSQL en PgAdmin III para Mac OS X

Cuando nos volvamos a conectar, nos va a volver a pedir la contraseña del usuario nuevo.

Por favor ingrese la contraseña

Y una vez conectados a la base de datos local, deberíamos tener un PostgreSQL completo funcionando en nuestro computador.

Tablas, triggers y vistas de PostgreSQL en PgAdmin III en español

[ACTUALIZACIÓN] Para que la instalación quede completa, faltó mencionar cómo agregar el lenguaje PL/pgSQL a PostgreSQL.

Palabras finales

Aprendimos a instalar PostgreSQL de manera sencilla en la máquina local desde el código fuente. Ahora sólo me falta aprender a hacer que se inicie automáticamente cada vez que se enciende el computador o crear un alias que inicie la base de datos con un simple doble click y sin escribir los complicados comandos:

su -l postgres
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

También es conveniente agregar el directorio /usr/local/pgsql/bin/ al PATH

Referencias

Artículos relacionados

Etiquetas: , , ,

Publicidad