martes, marzo 20, 2012

Instalación de Oracle 10g Express Edition en Ubuntu 10.04 LTS

Instalación de Oracle 10g Express Edition en Ubuntu 10.04 LTS

Con eso de que he estado publicando sobre Oracle en Ubuntu, me ha faltado publicar respecto al proceso de instalación.

Aunque la versión 10.2 ya esta vieja, es la que tienen en el entorno del trabajo por lo que es la que estoy usando en esta instalación pero probablemente el proceso es similar con versiones más recientes.

Primero lo primero, descargar los archivos .deb, que se pueden obtener de esta página (previo registro):

http://www.oracle.com/technetwork/products/express-edition/downloads/102xelinsoft-102048.html

Respecto a las dependencias se requiere libaio, podemos ver que hay disponible con

$ apt-cache search libaio

libaio-dev - Biblioteca de acceso AIO del núcleo Linux - archivos de desarrollo
libaio1 - Biblioteca de acceso AIO del núcleo Linux - biblioteca compartida
libaio1-dbg - Biblioteca de acceso AIO del núcleo Linux, símbolos de depuración


así que optamos por instalar libaio1

$ sudo apt-get install libaio1


Luego procedemos a la instalación:

$ sudo dpkg -i download/linux/oracle-xe-universal_10.2.0.1-1.0_i386.deb
 (Leyendo la base de datos ...  00%
172182 ficheros y directorios instalados actualmente.)
Preparando para reemplazar oracle-xe-universal 10.2.0.1-1.0 (usando .../oracle-xe-universal_10.2.0.1-1.0_i386.deb) ...
Desempaquetando el reemplazo de oracle-xe-universal ...
Configurando oracle-xe-universal (10.2.0.1-1.0) ...
update-rc.d: warning: /etc/init.d/oracle-xe missing LSB information
update-rc.d: see
Executing Post-install steps...
-e You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.


Procesando disparadores para desktop-file-utils ...
Procesando disparadores para python-gmenu ...
Rebuilding /usr/share/applications/desktop.es_MX.utf8.cache...
Procesando disparadores para man-db ...
Procesando disparadores para ureadahead ...
Procesando disparadores para python-support ...


Ejecutamos lo que indica la salida anterior.

$ sudo /etc/init.d/oracle-xe configure

Indicamos los puertos para el servidor HTTP y para el Motor
Indicamos un password para las cuentas SYS y SYSTEM
Indicamos si queremos que el motor de base datos se inicie al arranque, si optamos por no, podemos arrancarlo a voluntad con el comando

$ sudo /etc/init.d/oracle-xe configure
Oracle Database 10g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 10g Express
Edition.  The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts.  Press to accept the defaults.
Ctrl-C will abort.

Specify the HTTP port that will be used for Oracle Application Express [8080]:

Specify a port that will be used for the database listener [1521]:

Specify a password to be used for database accounts.  Note that the same
password will be used for SYS and SYSTEM.  Oracle recommends the use of
different passwords for each database account.  This can be done after
initial configuration:
Confirm the password:

Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:n

Starting Oracle Net Listener...Done
Configuring Database...Done
Starting Oracle Database 10g Express Edition Instance...Done
Installation Completed Successfully.
To access the Database Home Page go to "http://127.0.0.1:8080/apex"


Para parar el servicio

$ sudo service oracle-xe stop

Para habilitar

$ sudo service oracle-xe enable

Para arrancar el servicio

$ sudo service oracle-xe start

Para consultar el status

$ sudo service oracle-xe status

Basicamente, con esto ya tenemos un motor oracle edición express up and running.

lunes, marzo 19, 2012

Oracle XE 10.2 documentation links

all books
http://www.oracle.com/pls/db102/portal.all_books

sqlplus user's guide and reference
http://docs.oracle.com/cd/B19306_01/server.102/b14357/toc.htm

Usando oracle express edition 10.2 (XE) con ubuntu 10.04 LTS

Usando oracle express edition 10.2 (XE) con ubuntu 10.04 LTS

(using oracle express edition XE with ubuntu)

Primero vamos a indicar las carencias y defectos que se presentan una vez desempacado e instalado el software

El paquete de oracle server xe contiene una utilidad de conección en modo consola la que se denomina sqlplus, sin embargo el sistema no queda configurado adecuadamente para encontrar este programa, y para ejecutarlo se requiere llamar a otros scripts que se supone que han sido escritos por profesionales de una compañia tan grande como Oracle, sin embargo dejan mucho que desear.

Como podemos ver por el acceso directo que crea la instalación:

el software se instala en:

/usr/lib/oracle/xe/app/oracle/product/10.2.0/server

y el script que corre para abrir sqlplus es:
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/runsqlplus.sh

if [ -f /usr/bin/gnome-terminal ]
then
    /usr/bin/gnome-terminal -t "SQL*Plus" -e "/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh"
else
    /usr/bin/xterm  -T "SQL*Plus" -n "SQL*Plus" -e "/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh"
fi

el cual lo único que hace es escoger el programa de terminal a utilizar, dando preferencia si esta presente a gnome-terminal sobre xterm, y fijando el título de la ventana para invocar a:
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh


ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_HOME
ORACLE_SID=XE
export ORACLE_SID
NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`
export NLS_LANG
PATH=$ORACLE_HOME/bin:$PATH
export PATH
sqlplus /nolog


este otro lo que hace es fijar adecuadamente las variables
ORACLE_HOME
ORACLE_SID
NLS_LANG
PATH
y finalmente arrancar el sqlplus sin log

lo feo del caso es que el script
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/nls_lang.sh
contiene un error en la linea 108 y 110, al evaluar una condición

originalmente esta así:
if [[ -n "$LC_ALL" ]]; then
  locale=$LC_ALL
elif [[ -n "$LANG" ]]; then
  locale=$LANG
else
  locale=
fi


pero se puede corregir simplemente cambiandolo para que quede así:
if [ -n "$LC_ALL" ]; then
  locale=$LC_ALL
elif [ -n "$LANG" ]; then
  locale=$LANG
else
  locale=''
fi


para que ahora si podamos correr con toda confianza en nuestra terminal
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/sqlplus.sh

lo cual nos dará un prompt como este:

SQL*Plus: Release 10.2.0.1.0 - Production on Lun Mar 19 16:22:22 2012

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

SQL>



¿y luego que se hace?

Primero nos tenemos que conectar usando un comando connect (nos podemos conectar a un motor oracle ya sea local o remoto), para ello tenemos que saber el usuario y password

en este caso nos conectamos a un server local (127.0.0.1)

como un usuario normal, ej. username
 
SQL> connect username@127.0.0.1

(sqlplus connect as sys)
si queremos conectarnos como DBA hay que agregar:


SQL> connect sys@127.0.0.1 as sysdba


posteriormente pregunta el password y lo proporcionamos para obtener acceso


y saldrá un mensaje que dice:

Conectado.
SQL >



Podemos desconectarnos usando

SQL> disconnect

¿y luego que se hace?


podemos mostrar ayuda para un comando utilizando el comando help

SQL> help connect


Otros comandos a probar son:


help
help accept
help index


Sin embargo seguramente te estas preguntando como se le hace para correr un script sql?


Pues basicamente una vez conectados ya podemos escribir nuestros querys sql


SQL> create table t ( a int ) ;
Tabla creada.

Podemos definir nuestro editor favorito para invocarlo desde sqlplus:


SQL> define _EDITOR = gvim
o
SQL> define _EDITOR = gedit



Luego ya podemos editar un archivo mediante


SQL> edit filename


Esto abrira nuestro editor con el archivo filename.sql
Para correr los comandos en dicho archivo podemos usar:

SQL> start filename

o
SQL> @filename


Para guardar la salida de la ejecución en un archivo podemos usar:

SQL> spool output_filename append


append es opcional pero es recomendable para no borrar datos previos que haya en el archivo,

para guardar la salida en el archivo es necesario detener el spool

SQL> spool off



Con la información anterior ya nos es posible editar y ejecutar scripts, así como guardar la salida de ejecución, por lo que hasta aquí voy a dejar esta introducción a la linea de comandos de oracle sqlplus, esto para los que preferimos usar una linea de comandos a la interface html, que es un poco impractica.

Podeís encontrar mas información usando este link:
http://docs.oracle.com/cd/B19306_01/server.102/b14357/pt2.htm









Fuentes:
http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch3.htm

Setting Aquafold Datastudio with Oracle Database

(configurar aquafold datastudio para usarlo con motor de base de datos Oracle)

A diferencia de otros motores requerimos más parametros para configurar por ej. para configurar un postgresql requerimos ip, usuario, password, puerto y database

en el caso de oracle, el equivalente a database puede ser el SID, en el caso de oracle express editon, el SID que se requiere es XE

hay un parametro del tipo de conección que puede ser ( normal | SYSOPER | SYSDBA ) y que tenemos que poner en SYSDBA cuando nos estemos conectando con la cuenta SYS o SYSTEM

así quedarían los parametros de la configuración a un motor oracle, como en la imagen

jueves, marzo 15, 2012

Remover secuencias de escape de terminal usando un comando

How to remove ANSI escape sequences from a text file: e.g. remove escape sequences from the output of 'script':
I needed this functionality just now and I thought 'Why not share it?'. So, here it is:
Add to your $HOME/.bashrc
alias stresc='sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"'
You may replace 'stresc' by whatever you prefer, just make sure it is not an already existing command or alias.
This effectively creates your own personal 'strip escape' command.
To use it in a terminal
stresc filename
or
stresc filename > other-file-name

fuente: http://crunchbanglinux.org/forums/topic/15321/how-to-remove-ansi-escape-sequences-from-a-text-file/