lunes, 20 de octubre de 2008

Oracle desde Consola de Comandos

Como vimos en el post anterior podemos adminstrar nuestra base de datos oracle con el url : http://127.0.0.1:8080/apex

Algunas de las operaciones basicas que podemos realizar por medio de la aplicacion web : crear tablespace, esquemas, tablas, usuarios, dar permisos, etc… es cuestion de ir navegando por las diferentes opciones.

Si queremos ejecutar sql desde consola debemos realizar algunas configuraciones.

Vamos a acceder a la base de datos que trae oracle de ejemplo, primero lo que vamos a hacer es dar permisos y definir las variables de entorno.

Accedemos a nuestro directorio HOME

$ cd

y editamos el fichero .bashrc añadiendo las siguientes lineas

sudo gedit .bashrc

# variables para ORACLE
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID=XE
export PATH

Si queremos cargar de manera inmediata esas variables, podemos hacerlo, ejecutando . .bashrc colocando lo siguiente hasta abajo del archivo.

alis@alis-laptop:~$ . .bashrc
alis@alis-laptop:~$ echo $ORACLE_HOME
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
alis@alis-laptop:~$ /usr/lib/oracle/xe/app/oracle/product/10.2.0/server
bash: /usr/lib/oracle/xe/app/oracle/product/10.2.0/server: es un directorio
alis@alis-laptop:~$ echo $ORACLE_SID
XE

ORACLE_HOME es /usr/lib/oracle/xe/app/oracle/product/10.2.0/server
es la ruta donde se instalo el producto. Y el ORACLE_SID es XE

Los alias de nuestra base de datos y de las diferentes otras bases de datos a las que podemos acceder se almacenan en un fichero llamado tnsnames.ora que se encuentra en el directorio $ORACLE_HOME/network/admin

alis@alis-laptop:~$ cd $ORACLE_HOME/network/admin
alis@alis-laptop:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin$ cat tnsnames.ora
# tnsnames.ora Network Configuration File:

XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = alis-laptop)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

En $ORACLE_HOME/bin suelen estar los ejecutables de la base de datos (sqlplus, lsnrctl, etc…)

Si queremos comprobar si podemos conectar a una base de datos podemos hacer uso del comando “tnsping”, este comando nos devuelve OK si podemos conectar remotamente, o un error en otro caso.

para ejecutarlo escribimos:

alis@alis-laptop:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin$ tnsping XE

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 20-OCT-2008 13:08:12

Copyright (c) 1997, 2005, Oracle. All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = alis-laptop)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE)))
OK (0 msec)

:0 ) como nos dio OK quiere decir que si podemos conectarnos entonces ahora accedemos como usuario SYS o SYSTEM. Accedo ahora como usuario SYS mediante sqlplus y le doy permisos (habilito) el usuario que trae de ejemplo la base de datos (este usuario es HR).

Les recomiendo entrar siempre con ese usuario (HR), pues si accedemos como SYS o SYSTEM podriamos hacer algo mal y estropear la base de datos (es mejor entrar como SYS o SYSTEM cuando tengamos que hacer alguna operacion de dba, administradores de la base de datos y como usuario normal en el resto de los casos).

Entrando como SYS, recuerdense de la clave que escribieron cuando configuramos sql porque a la hora de entrar no la piden.

alis@alis-laptop:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin$ sqlplus sys as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Oct 20 13:14:24 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Enter password:

Connected to:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

SQL>

Ahora procedemos a desbloquear al usuario HR

SQL> alter user HR account unlock;

User altered.

SQL> alter user HR identified by HR;

User altered.

SQL> exit
Disconnected from Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

Ahora ya podemos comprobar si podemos entrar con el usuario HR.

alis@alis-laptop:~$ sqlplus HR/HR@XE

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Oct 20 13:19:41 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.


Connected to:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

SQL> select table_name from user_tables;

TABLE_NAME
------------------------------
REGIONS
LOCATIONS
DEPARTMENTS
JOBS
EMPLOYEES
JOB_HISTORY
COUNTRIES

7 rows selected.
SQL>

Parece que todo esta bien ese usuario ya trae unas tablas de ejemplo por eso pude ejecutar el select.


13 comentarios:

  1. me gusto mucho el formato de tu blog. Me podrías decir cómo lo hiciste o donde lo conseguiste?? yo quiero algo parecido pero más masculino. Gracias

    ResponderEliminar
  2. Hola pues mira buscate plantillas para blogs, y te salen varias opciones pero aqui estan estos links
    http://blogandweb.com/templates-blogger/

    http://btemplates.com/

    ResponderEliminar
  3. Gracias Alis, si me funciono, es que no lo estaba haciendo bien... :-)

    ResponderEliminar
  4. Que bueno que si te funciono Aura!! :)

    ResponderEliminar
  5. Jajaja y tambien a ti Yorch que bueno que si te funciono.

    ResponderEliminar
  6. Hoola Alicee, gracias x el post, pero tiene algunos errores JAJAJAJA.. XD....... son bromas! :P
    Te cuidas pues
    Salu2

    ResponderEliminar
  7. Esta rebien tu blog querida amiga!!!! En serio q sirve bastante!!!! EXITOS AHI!! TQM :-)

    ResponderEliminar
  8. psshhhh quien te mira veda alice! ta bien, te quedo rebien y ta nice tu blog, segui asi ;) gracias x la ayuda!

    ResponderEliminar
  9. Como puedo llevar las tablas de un usuario o esquema que esta en una máquina a otra que en su base de datos no posee el usuario antes mencionado. Gracias.

    ResponderEliminar
  10. muy bonita entrada... newbi agradecido

    ResponderEliminar
  11. @tintrash: de nada gracias por visitar mi blog XD, todos hemos sido newbis alguna vez jajaa.

    ResponderEliminar