DB error – Error: invalid user id 0

Este error me aparecía cuando intentaba ver la lista de procedimientos almacenados, en este caso con Aginity Workbench. Al parecer es porque en algún momento se intentó dropear un procedimiento pero no todas las referencias se eliminaron. Una de las soluciones que encontré era de volver a crear los procedimientos y después borrarlos, en mi caso no funciono.

Con esta consulta identifique los SP que estaban causando problemas:
select oid, proname from _t_proc where oid>200000 and prorettype > 0 and prorettype not in (select oid from _t_object);

Borre de la tabla _t_proc los registros de los SP corruptos y así pude ver de nuevo la lista.

El recuento de los daños I

Y el 2008 se va… cada vez los años son mas cortos, y este no fue la excepcion.

Fue un buen año en lo deportivo, claro en el plano amateur pa’abajo (go Pandas!). Todavia recuerdo aquel juego donde me abrieron la cabeza, el juego del siglo donde los Pandas empezaban a mostrarse “internacionalmente” en la ciudad, y como olvidar el dia que dimos catedra, ese juego creo que ha sido el mejor que hemos tenido como equipo, todo nos salio… y al final, la copa. 😀

De lo profesional mejor ni me acuerdo, los Padres en ultimo lugar y con 99 derrotas, y desmantelandose en estos ultimos meses. Los Chargers aunque llegaron a la final de conferencia en Enero de la temporada del 2007, fueron eliminados, y aunque en esta temporada se esperaba mas de ellos, decepcionaron, aunque todavia siguen con vida, espero que 2009 empieze con playoffs. Y que decir de las aguilas, fue el peor año del america en la historia. Llegaron hasta semifinales en la Libertadores, pero en la liga fuimos un asco. 2009 pinta bien, haber que tal.

En la escuela, lo de siempre: entrega de proyectos, desveladas al fin del semestre (si todo al ultimo para no perder costumbre), tareas, calificaciones de ultimo momento… el “ponlo en tu blog” de los compañeros (que nunca dejaron un comentario, por cierto, pero si le dieron click en la publicidad pues bueno, ya es ganancia). Y no faltaron los momentos chuscos como las super presentaciones, y los momentos geeks, con Richard Stallman.

Hablando de geeks, tuvimos el SFD08 en Tijuana y participamos en el Geek Fest en Mexicali.

Migración de Oracle a MySql en Ubuntu 8.04

Ya pude lograr la migracion de Oracle a MySql en Ubuntu, el problema estaba en la maquina virtual de java.

En esta parte se supone que tenemos ya instalado Oracle y MySql. Se van a migrar los datos contenidos en el esquema HR con la cuenta hr/hr (no olvidar desbloquear) en Oracle, a la base de datos prueba en Mysql.

Crear en mysql la base de datos.
mysql> create database prueba;

Ahora lo que necesitamos es:

Instalar la maquina virtual de Java:
$ sudo apt-get install sun-java6-jdk

Descargar MySql Migration Tool que es parte de MySql GUI Tools
Descargar: Generic x86 Linux TAR (bundled dependencies)
Desempaquetar archivo: tar -xzvf mysql-gui-tools-5.0r12.tar.gz, creara un subdirectorio mysql-gui-tools-5.0

Editar archivos run_migration_simple (si vamos a usar desde la consola) y run_migration (si vamos a hacerlo desde ncurses). Los archivos estan en ~/mysql-gui-tools-5.0/migration-tool-script. El archivo debe quedar asi:

Continue reading “Migración de Oracle a MySql en Ubuntu 8.04”

Migración de Oracle a MySql en Windows

Siguiendo con los proyectos de base de datos ahora nos toca migrar de Oracle a MySql, en windows, por que en Ubuntu he tenido problemas para la conexion con Oracle, pienso yo que es el driver, pero eso sera para otra ocasion.

Se van a migrar los datos contenidos en el esquema HR con la cuenta hr/hr (no olvidar desbloquear) en Oracle a la base de datos prueba en Mysql

Para esto se supone que ya tenemos Oracle instalado, es necesario tener tambien:

  • MySql
  • Herramienta Migration Toolkit de Mysql
  • Maquina Virtul de Java JRE
  • Driver JDBC de Oracle
  • Despues de hacer la instalación usar Inicio > Programas > MySql > MySql Migration Toolkit
    Continue reading “Migración de Oracle a MySql en Windows”

    MySql desde las fuentes y conexion remota

    Creo que estaba medio enredoso tener Postgresql y Mysql en un solo “post“, asi que mejor lo dividi.

    Ahora con MySql, descargar desde mysql.org, mysql-5.0.51a-linux-i686-glibc23.tar.gz

    y ahora:

    # groupadd mysql
    # useradd -g mysql mysql
    # cd /usr/local
    # tar -xzvf mysql-5.0.51a-linux-i686-glibc23.tar.gz
    # ln -s mysql-5.0.51a-linux-i686-glibc23 mysql
    # cd mysql
    # chown -R mysql .
    # chgrp -R mysql .
    # scripts/mysql_install_db –user=mysql
    nota: en esta linea antes del user son dos – – no uno.

    Para arrancar el servicio:
    # /usr/local/mysql/bin/mysqld_safe –user=mysql &

    Para la conexion remota (servidor):
    Entramos en la consola de mysql:
    $ mysql -u root -h 127.0.0.1

    Y se dan permisos al usuario:
    sql> grant all privileges on basededatos.* to usuario@direccion-ip-remota identified by ‘contraseña’;

    Para la conexion remota (cliente):
    Tener instalado el cliente:
    # apt-get install mysql-client-5.0

    y conectar:
    $ mysql -u usuario -h direccion-ip-servidor -p

    y si todo va bien aparecera el prompt de sql:
    sql>

    PostgreSql desde las fuentes y conexion remota

    Pues resulta que quieren Postgresql y Mysql desde las fuentes.

    Para Postgresql se baja el archivo de postgresql.org, yo baje la version mas reciente 8.3.1.

    $tar -xzvf postgresql-8.3.1.tar.gz
    $ cd postgresql-8.3.1

    # ./configure –without-readline –without-zlib nota: en esta linea antes del without son dos – – no uno.
    # make
    # make install
    # adduser postgres
    # mkdir /usr/local/pgsql/data
    # chown postgres /usr/local/pgsql/data
    # su – postgres
    # /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

    Para arrancar el servicio:
    /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data &

    Para detenerlo:
    kill `cat /usr/local/pgsql/data/postmaster.pid`

    Para hacer la conexion remota (servidor):

    Se necesita arrancar con la opcion -i
    /usr/local/pgsql/bin/postgres -i -D /usr/local/pgsql/data &

    Modificar el archivo postgresql.conf
    vim /usr/local/pgsql/data/postgresql.conf
    y descomentar linea:
    port = 5432

    Modificar el archivo pg_hba.conf
    vim /usr/local/pgsql/data/pg_hba.conf
    y agregar linea:
    host all all 192.168.0.0 255.255.255.0 trust

    Y para la conexion remota (cliente):
    Es necesario tener el cliente de postgresql:
    # apt-get install postgresql-client-common postgresql-client-8.3

    Y conectar
    $ psql -h direccion-ip-servidor -U usuario -d base de datos

    y si todo va bien aparecera el prompt de sql:
    usuario=>

    Ahhh, estuvo cansado esto.

    Sistemas Gestores de Base de Datos

    Me dieron a la tarea de instalar 3 sistemas gestores de base de datos para un proyecto en la escuela, en una distro de linux, en este caso use 2 libres (PostgreSQL, MySql) y un propietario (Oracle), y lo hice en Debian (etch 4.0 netinstall), el cual ya tenia ganas de instalar y pues este era un buen pretexto (por cierto jala super bien en mi laptop).

    Pues aqui va lo que hice y una pequeña reseña de cada sistema:

    PostgreSQL
    : es un servidor de base de datos relacional orientada a objetos de software libre, liberado bajo la licencia BSD.

    Para instalarlo (como root):
    # apt-get install postgresql-8.1

    Despues de instalarlo con el superusuario se crean los usuarios:
    # su postgres

    Conectar a la base de datos
    $ psql template1

    Para crear un usuario:
    template1=# create user nombre_usuario with password ‘aqui_el_password’;

    Para crear una base de datos:
    template1=# create database nombre_basedatos

    Para asignar esa base de datos al usuario:
    template1=# grant all privileges on database nombre_basedatos to nombre_usuario;

    Para conectarse a la base de datos:
    $ psql -d nombre_basedatos -U nombre_usuario

    y aparece el prompt de la base de datos:
    mydb=>

    Se puede detener o arrancar desde:
    # /etc/init.d/postgresql-8.1 start | restart | status

    MySql: es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. Se desarrolla como software libre en un esquema de licenciamiento dual. Pertenece a Sun Microsystems desde enero de 2008.

    Para instalar:
    # apt-get install mysql-server-5.0

    Para accesar:
    # mysql -u root

    Es necesario cambiar el password de root por seguridad:
    mysql> update user set password=PASSWORD(“nuevo_password”) where User=’root’;
    mysql> flush privileges;

    Se puede detener o arrancar desde:
    # /etc/init.d/mysql start | restart | status

    Oracle: es un sistema de gestión de base de datos relacional fabricado por Oracle Corporation. Se considera como uno de los sistemas de bases de datos más completos, destacando su: Soporte de transacciones, estabilidad, escalabilidad, multiplataforma.

    Necesitas registrarte en Oracle.com y descargar la versión express para linux e instalar:
    # dpkg -i oracle-xe-universal_10.2.0.1-1.0_i386.deb

    Se necesitara la libreria libaio1
    # apt-get install libaio1

    Y se configura:
    # /etc/init.d/oracle-xe configure

    Puerto de HTTP que usara Oracle Express (8080)
    Puerto que usara la base de datos (1521)
    Password de los usuarios Sys y System
    preguntara si desea iniciar la base de datos al inicio.

    Para accesar se puede hacer via web en “http://127.0.0.1:8080/apex

    Se puede detener o arrancar desde:
    # /etc/init.d/oracle-xe start | restart | status

    Es necesario agregar usuario a grupo dba:
    #usermod -G user grupo
    o editando /etc/group, la linea
    dba:x:1002:alex

    PD. A veces se complica accesar via web, se soluciona reinciando el servicio.
    Bien pues ahi esta, lo que no vi es que broncas puedan dar andando los tres.