Instalar Oracle XE en Ubuntu 12

11

Click here to load reader

Transcript of Instalar Oracle XE en Ubuntu 12

Page 1: Instalar Oracle XE en Ubuntu 12

Instalar Oracle XE en Ubuntu 12.0.4.1-desktop

Oracle XE es una versión de Oracle que puedes instalar en tu equipo, pero tiene una serie de

limitaciones.

La primera es que no soporta el uso de varios procesadores, así, por ejemplo si

tienes un equipo dual core, solo utilizarás uno de los procesadores.

En cuanto al espacio de almacenamiento, aunque dispongas de más, solo utilizarás

hasta 1 máximo de 1 Gb de memoria y 4 Gb a nivel de espacio de almacenamiento

en disco, lo que implica, que tu base de datos no podrá crecer si excede de cierto

tamaño.

¿Por qué todas estas limitaciones?

Pues naturalmente Oracle es un producto de pago, si quieres usarla a nivel empresarial

tienes que adquirir las licencias correspondientes, pero esta versión de Oracle XE es muy

sencilla de instalar y está orientada a los desarrolladores, siendo completamente funcional

para, por ejemplo, poder montar un entorno de trabajo en tu casa e ir haciendo desarrollos

que podrás complementar con los de tu empresa, donde tengas acceso al Oracle server con

toda su potencia.

1. Instalación

Lo primero que tenemos que hacer es descargarnos el paquete .deb correspondiente.

El fichero se llama: oracle-xe-universal_10.2.0.1-1.0_i386.deb y ocupa

aproximadamente 262 Mb.

Ubicamos el fichero en el escritorio

Page 2: Instalar Oracle XE en Ubuntu 12

Procedemos a instalarlo haciendo doble click sobre él.

2. Configuración

Una vez que termina de instalarse el paquete. Tenemos que configurar la base de datos.

Para ello ejecutamos el comando:

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

Con eso arranca un configurador en modo texto que nos va a hacer una serie de preguntas.

Nos va a pedir:

El puerto de la aplicación web que nos permite administrar gráficamente la base de

datos

El puerto de la base de datos

El password que queremos para el usuario SYS y SYSTEM de Oracle, y

Si queremos arrancar la base de datos cada vez que iniciemos la máquina.

Puedes responder usando los valores por defecto. En caso de que los valores de los puertos

puedan entrar en conflicto con otros usados en tu máquina deberás cambiarlos. No te olvides

de la contraseña que pongas para SYS y SYSTEM, ya que la usaremos posteriormente.

Page 3: Instalar Oracle XE en Ubuntu 12

3. Acceso a la BD

Si no ha habido problemas, la base de datos ya está instalada. Para poder acceder a ella, has

de usar la siguiente URL para administrar gráficamente tu base de datos.

http://127.0.0.1:8080/apex

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 <Enter> to

accept the defaults.

Ctrl-C will abort.

Specify the HTTP port that will be used for Oracle Application Express

[8080]:8080

Specify a port that will be used for the database listener [1521]: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]:y

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"

Page 4: Instalar Oracle XE en Ubuntu 12

Como usuario puedes usar: SYS o SYSTEM

y como password: la clave que indicaste en el instalador.

Desde la aplicación web podemos administrar toda la base de datos: tablespace, esquemas,

tablas, usuarios, permisos, etc… es cuestión de ir navegando por las diferentes opciones:

Si de todas formas queremos entrar desde la consola, podemos hacerlo mediante sql*plus.

Antes, eso sí, es conveniente:

Dar permisos al usuario que trae de ejemplo la base de datos y

Definir correctamente las variables de entorno de acceso a la base de datos en

nuestro fichero profile, que se encuentra en el directorio home y tiene de

nombre .bashrc

Vamos a ello.

Page 5: Instalar Oracle XE en Ubuntu 12

Accedemos a nuestro directorio HOME

$ cd

y editamos el fichero .bashrc añadiendo las siguientes líneas:

# 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

Page 6: Instalar Oracle XE en Ubuntu 12

Si queremos cargar de manera inmediata esas variables, podemos hacerlo, ejecutando.

.bashrc

Como observas el ORACLE_HOME

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

esa es la ruta donde se ha instalado 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

jose@soledad:~$ . .bashrc

jose@soledad:~$ echo $ORACLE_HOME

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

jose@soledad:~$ echo $ORACLE_SID

XE

$ cd $ORACLE_HOME/network/admin

$ cat tnsnames.ora

# tnsnames.ora Network Configuration File:

XE =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = soledad)(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)

)

)

Page 7: Instalar Oracle XE en Ubuntu 12

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:

Como el sid de la base de datos (y así también está en el tnsnames) es XE, ejecuto:

Perfecto, tenemos conexión a la base de datos. 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).

Siempre será luego mejor entrar como ese usuario, pues si accedemos como SYS o SYSTEM

podríamos hacer algo mal y estropear la base de datos (es mejor entrar como SYS o SYSTEM

cuando tengamos que hacer alguna operación de dba, administradores de la base de datos y

como usuario normal en el resto de los casos).

Entro como sys:

jose@soledad:~$ tnsping XE

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production

on 11-MAY-2008 20:36:59

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 = soledad)(PORT = 1521)) (CONNECT_DATA = (SERVER =

DEDICATED) (SERVICE_NAME = XE)))

OK (0 msec)

jose@soledad:~$ sqlplus sys as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sat May 10 16:20:04 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

Page 8: Instalar Oracle XE en Ubuntu 12

Ahora desbloqueo al usuario HR:

Perfecto!, comprobemos que podemos entrar como usuario HR. Podemos darle al usuario la

password HR (alter user HR identified by HR) y la sintaxis es: sqlplus user/pass@BBDD,

Entraria como:

jose@soledad:~$ sqlplus HR/HR@XE

Y el resultado:

SQL> alter user HR account unlock;

User altered.

SQL> alter user HR identified by aqui_la_password;

User altered.

SQL> exit;

Disconnected from Oracle Database 10g Express Edition Release

10.2.0.1.0 - Production

SQL*Plus: Release 10.2.0.1.0 - Production on Sat May 10 16:21:02 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> select * from regions;

REGION_ID REGION_NAME

---------- -------------------------

1 Europe

2 Americas

3 Asia

4 Middle East and Africa

-----------------------------

Page 9: Instalar Oracle XE en Ubuntu 12

Parece que todo está bien. Ni que decir que este usuario de ejemplo (HR) ya trae unas tablas

de ejemplo, y su propio esquema. Pero no hay ningún problema en crear otras tablas o quien

dice esquemas y usuarios.

Cuando hemos instalado Oracle XE, se ha creado en nuestro sistema un nuevo usuario

oracle, y un nuevo grupo dba. Es conveniente añadir nuestro usuario al grupo dba para que

podamos hacer ciertas funciones para las que en otro caso no tendríamos permisos. Por

ejemplo: recargar el listener.

El listener es el servicio que permite que otras máquinas conecten remotamente a nuestra

base de datos. Puede darse el caso de que la base de datos esté funcionando, y entremos a

ella localmente mediante sqlplus pero cuando intentamos conectar desde otra máquina

remota no podamos. Eso seguramente sea porque el servicio listener este caído.

Para levantar el listener, nos vamos a $ORACLE_HOME

$ cd ORACLE_HOME

y ejecutamos: lsnrctl

$ lsnrct

Como comandos principales del listener podemos usar: help, reload, start, stop, status. help,

muestra una ayuda con los comandos. reload, lo recarga. start, lo inicia. stop, lo para y

status nos muestra el estado actual:

Page 10: Instalar Oracle XE en Ubuntu 12

jose@soledad:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server$ lsnrctl

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 11-MAY-2008 20:50:50

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

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> status

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production

Start Date 11-MAY-2008 18:47:25

Uptime 0 days 2 hr. 3 min. 27 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Default Service XE

Listener Parameter File

/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/listener.ora

Listener Log File

/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/log/listener.log

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=soledad)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=8080))(Presentation=HTT

P)(Session=RAW))

Services Summary...

Service "PLSExtProc" has 1 instance(s).

Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...

Service "XE" has 1 instance(s).

Instance "XE", status READY, has 1 handler(s) for this service...

Service "XEXDB" has 1 instance(s).

Instance "XE", status READY, has 1 handler(s) for this service...

Service "XE_XPT" has 1 instance(s).

Instance "XE", status READY, has 1 handler(s) for this service...

The command completed successfully

LSNRCTL>

Page 11: Instalar Oracle XE en Ubuntu 12

Pero si intentamos parar el listener como nuestro usuario home actual nos daría un error

porque no tenemos permisos suficientes:

Estas operaciones debemos ejecutarlas como usuario oracle, que si tiene permisos:

$ sudo -s

$ su - oracle

Ojo, tenemos que tener también definidas las variables ORACLE_HOME y ORACLE_SID para

este usuario oracle o nos dará error a la hora de intentar acceder a la base de datos. Con el

usuario “oracle” si que podríamos ya ejecutar lsnrctl y luego stop.

La otra opción es añadir nuestro usuario al grupo de dba. Podemos hacerlo desde Sistema >

Administracion > Usuarios y Grupos.

A la administración de la base de datos, también podemos acceder desde el menú de

aplicaciones:

Acceder a la base de datos desde la consola puede resultar a algun@s bastante incómodo.

LSNRCTL> stop

Connecting to

(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE))

)

TNS-01190: The user is not authorized to execute the

requested listener command