Oracle Dabase XE, es la versión gratuita de la base de datos Oracle. Permite trabajar con una única BD de hasta 4 GB de disco y uso de hasta 1 GB de RAM.
Esta disponible para Linux en paquetes .rpm así como en .deb para Debían. También existe un repositorio, para instalarlo directamente con apt-get.
Así que para la instalación añadimos el siguiente repositorio a /etc/apt/sources.list
deb http://oss.oracle.com/debian unstable main non-freeagregamos la llave GPG de Oracle y actualizamos apt
# wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle
# apt-key add RPM-GPG-KEY-oracle
# apt-get updateDisponemos de dos paquetes diferentes para instalar el servidor oracle: oracle-xe y oracle-xe-universal, este último incluye soporte para bases de datos Unicode y además trae la herramienta de configuración web en varios idiomas, incluido el español.
en mi caso instalo universal (263MB)
# apt-get install oracle-xe-universalTras la instalación hay que lanzar el script de configuración
# /etc/init.d/oracle-xe configurenos pedirá que indiquemos el puerto a utilizar para el Oracle Application (8080) y el listener (1521), así como el password para los usuarios SYS y SYSTEM.
Tras uno minutos, el script acabará la configuración y podremos acceder al administrador mediante nuestro navegador y la URL http://127.0.0.1:8080/apex/
Si hemos instalado Oracle en un servidor y queremos permitir el acceso desde otro equipo debemos ejecutar en sqlplus el siguiente script como sysdba:
# sqlplus SYS/mipassword as sysdba
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);Podemos consultar el estado del demonio mediante:
# /etc/init.d/oracle-xe statuso consultar la salida de log, del arranque del listener, para comprobar posibles errores:
# tail -f /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/log/listener.logConfiguración de las variables de entorno.
Añadir a nuestro fichero .bashrc las siguietes lineas:
export PATH="$PATH:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin"
export ORACLE_HOME="/usr/lib/oracle/xe/app/oracle/product/10.2.0/server"
export ORACLE_SID="XE"
export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh`Lo probamos llamando a sqlplus con usuario SYSTEM y la password anterior.
Crear un nuevo Tablespace y Usuario
Una de las limitaciones de OracleXE es que desde la herramienta de administración "Application Express" no permite crear nuevos tablespace, ni cambiar el tablespace de un usuario. Por ello todos los usuarios trabajan en el tablespace USERS.
Para solucionarlo, podemos crear nuevos tablespaces a través de sqlplus y asignarlos por defecto a los usuarios que hemos creado.
Creo un nuevo tablespace con:
SQL> CREATE TABLESPACE MITABLESPACE DATAFILE '/usr/lib/oracle/xe/oradata/XE/mitablespace.dbf' SIZE 200M AUTOEXTEND ON;
Tablespace creado.Para listar los datafiles y sus respectivos tablespaces:
SQL> SELECT "FILE_NAME","TABLESPACE_NAME","BYTES","MAXBYTES" FROM dba_data_files;Para modificar el tablespace por defecto de un usuario:
SQL> ALTER USER MIUSUARIO DEFAULT TABLESPACE MIUSUARIO;
Usuario modificado.Apendice I - Exportar e Importar
Para exportar:
exp usuario/password@XE FILE=fexport.dmp LOG=logexport.log [FULL=Y]con la opción FULL=Y exportaríamos todos los tablespaces de la BD
Para importar:
imp usuario/password@XE FILE=fexport.dmp LOG=logimport.logApendice II - Cambiar contraseña administrador olvidada
# su - oracle
# sqlplus /nolog
SQL> connect /as sysdba
SQL> alter user user_name identified by new_password;Esto hay que hacerlo con el usuario de sistema oracle, si no obtendremos el error:
SQL> connect /as sysdba
ERROR:
ORA-01031: insufficient privilegesApendice III - Cambiar puerto administrador web
Si queremos cambiar el puerto utilizado por la interfaz de administrador web de oracle (http://localhost:8080/apex), por ejemplo pasar del puerto 8080 que trae por defecto al puerto 8082, como usuario SYSTEM lanzamos el siguiente procedimiento:
# sqlplus
SQL> begin dbms_xdb.sethttpport('8082'); end;Apendice IV - Crear usuarios desde sqlplus
SQL> CREATE USER nombreusuario IDENTIFIED BY claveusuario DEFAULT TABLESPACE mitablespace ;Y le concedemos los permisos típicos:
GRANT CONNECT, RESOURCE TO nombreusuarioO si hiciese falta los totales:
GRANT SYSDBA TO nombreusuario ;Apendice V - Conexiones SQL*Plus sin necesidad de TNSNAMES.ora
Con Oracle 10g, la conexión a BD es mas sencilla, se puede hacer mediante el metodo "Easy Connect Naming". Dicho método elimina la necesidad de hacer service name lookup en el archivo tnsnames.ora para entornos TCP/IP. Permitiendo a clientes conectar a la BD mediante puerto y service name de esta.
Por ejemplo para conectar a la base de datos julius.db.corp.com, con IP 192.168.1.100 y listener en el puerto 1521, la cadena easy connect sería:
/$ sqlplus user/password@192.168.1.100:1521/julius.db.corp.comApendice VI - Ejecutar scripts SQL desde fuera de sqlplus
sqlplus <user>/<password>@<Oracle_sid> <script.sql> > salida.logDesde dentro de sqlplus con:
spool ~/salida.log;
@~/script.sql
spool off;Documentación:
http://st-curriculum.oracle.com/tutorial/DBXETutorial/index.htm
http://www.davidpashley.com/articles/oracle-install.html
http://www.esdebian.org/article.php/20070705085306283
http://valery.bgit.net/blog-en/2006/07/09/oracle-database-10g-express-ed...
http://www.debian-administration.org/articles/430
http://www.ecuoug.org/?p=42
http://www.oracle.com/pls/db102/portal.portal_db?selected=4
http://en.allexperts.com/q/Oracle-1451/run-SQL-script-file.htm