Instalar Oracle XE en Ubuntu 12
Click here to load reader
-
Upload
nestor-del-amo-valero -
Category
Documents
-
view
36 -
download
0
Transcript of 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
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.
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"
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.
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
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)
)
)
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
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
-----------------------------
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:
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>
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