Oracle XE (Oracle Express Edition) es básicamente una manera plenamente funcional, pero un poco limitado de la versión completa base de datos Oracle 10g. Para el usuario doméstico medio / desarrollador es una herramienta perfecta, donde las limitaciones no tendrán ningún efecto real. Citando de la página principal de Oracle XE:
Limitaciones
* utilizará máximo de 1 GB de RAM
* 4GB datos de usuario (max)
* puede ser instalado en un servidor múltiple de CPU, sino que sólo puede ser ejecutado en un procesador
* 1 Base de Datos (max)
Requerimientos de Hardware.
El motor es bastante robusto, por lo que no es recomendado instalarlo en equipos antiguos ni con menos de 256 MB en ram. También requiere que tengamos una partición swap del doble de tamaño que la cantidad de ram que tengamos hasta llegar a 1 GB. Es decir que si tenemos 1 GB de ram, nuestra swap no tiene porque ser forzosamente de 2 GB, bastara con que tengamos 1 GB de swap. Si tenemos 256 MB en ram, necesitaremos 512 en swap.
Atención: Oracle detecta la cantidad de memoria ram instalada, no diferencia si esta esta compartida en vídeo. En mi caso, tengo 512 en ram compartida con la tarjeta de vídeo.hay que redimensionar la partición swap porque de lo contrario no se instalará.
Es recomendable tener 1.5 gb libres como mínimo para el servidor.
Redimensionando nuestra Swap
Como a muchos de nosotros nos puede ocurrir haber asignado una swap de 256mb y a la hora de querer instalar oracle tenemos como requerimiento 512mb bueno vamos a explicar como redimensionar la swap en linux centos, si este no fuera tu caso puedes obviar estos pasos.
pero seria bueno observar cuanto de swap tenemos en total y libre usando el siguiente comando
Descargando Server Usted puede descargar Oracle 10g Express Edition (XE) Server for Linux x86 Usted necesitará una cuenta de Oracle OTN para descargar los rpms y tendrá que aceptar los acuerdos de licencia. Descargar"Oracle Database 10g Express Edition (Universal)" * oracle-xe-univ-10.2.0.1-1.0.i386.rpm
Requerimiento de Librerias Es necesario instalar las librerias bc, Libaio y glibc antes de empezar la instalación.
Instalando SELinux Policy
Ahora vamos a probar el puerto que habilitamos para la administración por consola web nos dirigimos en nuestro navegador a http://localhost:9000/apex
Ahora es solo cuestión de logearnos con el usuario SYS o SYSTEM usando el password anteriormente asignado. Configurando tnsnames.ora necesitamos ubicar el tnsnames.ora para configurar conexiones adicionales a otros servidores de base de datos Oracle que puedan encontrarse en nuestra red. y hacer uso de ellas desde nuestro server linux usando SQLPlus.
Configurando las Variables de entorno se ha vuelto algo engorrozo ingresar al path de oracle por que las rutas son demasiado largas ahora vamos a registrar el path de oracle, su directorio bin y el SID para que el manejo sea facil; pero para esto vamos a registrarlo en el archivo /root/.bashrc las siguientes lineas.
Hay que corregir el archivo /root/.bashrc y agregarle las lineas siguientes
y para cargar las variables imediatamente como el ejemplo anterior ejecutamos
Una vez hecho esto tenemos que ir a modificar un DSN que se creo en nuestro home a la hora de actualizar el UnixODBC
es hora de pasarle los datos anteriores corregidos al /ect/odbc.ini
Observan la imagen 2 DSN con el mismo nombre OracleDSN pero uno de sistema y otro de usuario. vamos a hacerle clic al OracleDSN de sistema para ver sus tablas y otros objetos que pueda tener, y nos pedira como se ve en la imagen el nombre de usuario y password.
Una vez logueado nos muestra el arbol de objetos que contiene ese usuario. entonces la prueba odbc ha sido un exito.
que no me creen aun. bueno vamos a mostrarles ahora modo consola usando isql syntaxis isql [-modo][DSN][USER][PWD]
Oracle Database 10g Express Edition (Oracle Database XE)is an entry-level, small-footprint database based on the Oracle Database 10g Release 2 code base that's freeto develop, deploy, and distribute; fast to download;and simple to administer.
Limitaciones
* utilizará máximo de 1 GB de RAM
* 4GB datos de usuario (max)
* puede ser instalado en un servidor múltiple de CPU, sino que sólo puede ser ejecutado en un procesador
* 1 Base de Datos (max)
Requerimientos de Hardware.
El motor es bastante robusto, por lo que no es recomendado instalarlo en equipos antiguos ni con menos de 256 MB en ram. También requiere que tengamos una partición swap del doble de tamaño que la cantidad de ram que tengamos hasta llegar a 1 GB. Es decir que si tenemos 1 GB de ram, nuestra swap no tiene porque ser forzosamente de 2 GB, bastara con que tengamos 1 GB de swap. Si tenemos 256 MB en ram, necesitaremos 512 en swap.
Atención: Oracle detecta la cantidad de memoria ram instalada, no diferencia si esta esta compartida en vídeo. En mi caso, tengo 512 en ram compartida con la tarjeta de vídeo.hay que redimensionar la partición swap porque de lo contrario no se instalará.
Es recomendable tener 1.5 gb libres como mínimo para el servidor.
Redimensionando nuestra Swap
Como a muchos de nosotros nos puede ocurrir haber asignado una swap de 256mb y a la hora de querer instalar oracle tenemos como requerimiento 512mb bueno vamos a explicar como redimensionar la swap en linux centos, si este no fuera tu caso puedes obviar estos pasos.
pero seria bueno observar cuanto de swap tenemos en total y libre usando el siguiente comando
$ cat /proc/meminfo #SwapTotal: 1570672 kB <- swap actual.Para extender un volumen lógico de intercambio LVM2 (suponiendo / dev/VolGroup00/LogVol01 es el volumen que desee ampliar): vamos a observar en que volúmen de intercambio se encuentra nuestro swap para hacer la modificación.
$ cat /etc/fstab1.Deshabilitar asociados para el intercambio de volúmenes lógicos:
$ swapoff -v /dev/VolGroup00/LogVol012.Cambie el tamaño del volumen lógico LVM2 de incrementando 256 MB
$ lvm lvresize /dev/VolGroup00/LogVol01 -L +256M3.El formato del nuevo espacio de intercambio:
$ mkswap /dev/VolGroup00/LogVol014.Permitir la ampliación del volumen lógico
$ swapon -va5.Prueba de que el volumen lógico se ha ampliado correctamente:
$ cat /proc/swaps # freeRequerimientos de Software Funciona en las siguientes distribuciones según la documentación de Oracle.
- Red Hat Enterprise Linux RHEL3 – RHEL4 -RHEL5Suse SLES – 9Fedora Core 4Debian 3.1 Red Flag DC Server 5.0/MIRACLE LINUX V4.0/Haansoft Linux 2006 Server (Asianux 2.0 Inside)
Descargando Server Usted puede descargar Oracle 10g Express Edition (XE) Server for Linux x86 Usted necesitará una cuenta de Oracle OTN para descargar los rpms y tendrá que aceptar los acuerdos de licencia. Descargar"Oracle Database 10g Express Edition (Universal)" * oracle-xe-univ-10.2.0.1-1.0.i386.rpm
que es la multi-byte Unicode/UTF-8 base de datos, no la "Europa Occidental" único byte LATIN1 base de datos.
Cliente También tendrá el Oracle Instant Cliente: i386 o versión x86_64. Ver las siguientes dos rpms (si bien su arquitectura es i386 o x86_64):
* oracle-instantclient-basic-10.2.0.4-1.ARCH.rpm * oracle-instantclient-sqlplus-10.2.0.4-1.ARCH.rpm * oracle-instantclient-odbc-10.2.0.4-1.ARCH.rpm Requerimiento de Librerias Es necesario instalar las librerias bc, Libaio y glibc antes de empezar la instalación.
$ yum install bc libaio.i386 glibc.i686Instalando Oracle 10g XE Si está ejecutando SELinux, desactivar esta opción durante el proceso de instalación.
$ /usr/sbin/setenforce 0Si desea ejecutar con SELinux activado, ejecutar los siguientes dos comandos para crear el grupo y usuario para el oráculo-xe-univ paquete, antes de instalar dicho paquete:
$ /usr/sbin/groupadd -r dba $ /usr/sbin/useradd -r -M -g dba -d /usr/lib/oracle/xe -s /bin/bash oracle $ yum localinstall --nogpgcheck oracle-xe-univ-10.2.0.1-1.0.i386.rpmoracle-instantclient-basic*.rpm oracle-instantclient-sqlplus*.rpm# yum install oracle-lib-compat* BC es una dependencia de oracle-xe. * Nogpgcheck es necesaria porque el Oracle RPMs no están firmados. *Nota: No se olvide de glibc.i686 han instalado en un sistema x86_64. No va a ser tirado en automáticamente! *Advertencia: No correr oracle_env.sh (o oracle_env.csh) en su configuración de entorno. Instantclient las cosas funciona bien sin él. Es útil sólo para la administración de servidores de comandos XE bajo oracle usuario.
Instalando SELinux Policy
Si está ejecutando SELinux activado instale los siguientes paquetes antes de ejecutar el oráculo-xe configure.
$ yum install oracle-xe-selinux oracle-instantclient-selinuxesto probablemente requiera compat-libstdc++-33, oracle-lib-compat, and oracle-nofcontext-selinux también. Configuración Server Asegúrese de que su nombre de host se encuentra en /etc/hosts antes de configurar la base de datos Oracle XE. para configurar la base de datos Oracle XE escriba el siguiente comando.
$ /etc/init.d/oracle-xe configureSe nos requerira el ingreso de algunos datos para la configuración.
HTTP port for Oracle Application Express: 9000 Database listener port: 1521 Password for SYS/SYSTEM: xxxx Start at boot: yTenga en cuenta que el puerto 8080 es utilizado por tomcat por lo que no puede aceptar el valor predeterminado para la Oracle Application Express, en mi caso use el puerto 9000. Como se puede apreciar en la imagen tenemos instalado Oracle Xe y configurado e iniciado.
Ahora vamos a probar el puerto que habilitamos para la administración por consola web nos dirigimos en nuestro navegador a http://localhost:9000/apex
Ahora es solo cuestión de logearnos con el usuario SYS o SYSTEM usando el password anteriormente asignado. Configurando tnsnames.ora necesitamos ubicar el tnsnames.ora para configurar conexiones adicionales a otros servidores de base de datos Oracle que puedan encontrarse en nuestra red. y hacer uso de ellas desde nuestro server linux usando SQLPlus.
$ locate tnsnames.orauna vez ubicado tnsnames.ora vamos a mostrar que datos tiene.
$ cat /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/tnsnames.oraahora vamos a modificar los terminos de escritura y lectura de tnsnames.ora para poder editarlo y agregar un alias para una base de datos oracle 10g xe en otro servidor.
$ cd /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/ $ chmod 755 tnsnames.ora $ vi tnsnames.oraobservemos la modificación que le acabo de agregar para que el alias apunte a un equipo con ip 172.16.0.52 y su service name tambien se llama XE.
Configurando las Variables de entorno se ha vuelto algo engorrozo ingresar al path de oracle por que las rutas son demasiado largas ahora vamos a registrar el path de oracle, su directorio bin y el SID para que el manejo sea facil; pero para esto vamos a registrarlo en el archivo /root/.bashrc las siguientes lineas.
# 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
$ vi /root/.bashrcSi queremos cargar de manera inmediata esas variables, podemos hacerlo, ejecutando
$ . /root/.bashrcahora queremos ver si se hizo efectivo el registro probamos ejecutando.
$ echo $ORACLE_HOMEEn $ORACLE_HOME/bin suelen estar los ejecutables de la base de datos (sqlplus, lsnrctl, etc…) probemos tener respuesta de conexion a los alias creados en el tnsnames.
$ cd $ORACLE_HOME/bin $ tnsping XE $ tnsping WINAhora vamos acceder con sqlplus con el usuario SYS si de casualidad te muestra un error como el que se muestra en la imagen se debe a que no hemos declarado la variable de entorno LD_LIBRARY_PATH
Hay que corregir el archivo /root/.bashrc y agregarle las lineas siguientes
LD_LIBRARY_PATH=$ORACLE_HOME/libexport LD_LIBRARY_PATHNos deberia quedar como se muestra en la imagen.
y para cargar las variables imediatamente como el ejemplo anterior ejecutamos
$ . /root/.bashrces momento de probar conectar como sys y luego desbloquear al usuario HR y asignarle como password "oracle"
$ sqlplus sys as sysdba #SQL*Plus: Release 10.2.0.1.0 - Production on thu Jun 18 16:03:53 2009 #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> alter user HR account unlock; #User altered. SQL> alter user HR identified by aqui_el_password; #User altered. SQL> exit; #Disconnected from Oracle Database 10g Express Edition Release 10.2.0.1.0 - ProductionPerfecto!, comprobemos que podemos entrar como usuario HR. Yo le he dado al usuario el password "oracle" (alter user HR identified by oracle) y la sintaxis es: sqlplus user/pass@BBDD, Entraria como:
$ sqlplus HR/oracle@XEParece que todo esta bien. Ni que decir que este usuario de ejemplo (HR) ya trae unos tablas de ejemplo, y su propio esquema. pero que no hay ningun 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 tendriamos permisos. Por ejemplo: recargar el listener. El listener es el servicio que permite que otras maquinas conecten remotamente a nuestra base de datos. Puede darse el caso de que la base de datos este funcionando, y entremos a ella localmente mediante sqlplus pero cuando intentamos conectar desde otra maquina remota no podamos. Eso seguramente sea porque el servicio listener este caido. Para levantar el listener, nos vamos a $ORACLE_HOME
$ cd $ORACLE_HOMEy ejecutamos: lsnrctl
$ lsnrctComo 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 Pero como les comentaba antes, si intentamos parar el listener como nuestro usuario home actual nos daria un error porque no tenemos permisos suficientes:
LSNRCTL> stop #Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE))) #TNS-01190: The user is not authorized to execute the requested listener commandEstas operaciones debemos ejecutarlas como usuario oracle, que si tiene permisos:
$ sudo -s $ su - oracleOjo, tenemos que tener tambien definidas las variables ORACLE_HOME y ORACLE_SID para este usuario oracle o nos dara error a la hora de intentar acceder a la base de datos. Con el usuario “oracle” si que podriamos ya ejecutar lsnrctl y luego stop. La otra opcion es añadir nuestro usuario al grupo de dba. Instalación Librerias ODBC Oracle Es momento de ampliar la idea y de mostrar como registrar nuestras librerias odbc para UnixODBC, para esto necesitamos descargar oracle-instantclient-odbc-10.2.0.4-1.i386.rpm y oracle-instantclient-odbc-10.2.0.4-1.i386.zip. Bueno yo he descargado los archivos dentro de un directorio /root/Downloads. Ahora lo que hare sera instalar el rpm desde esa ubicación con YUM
$ yum localinstall --nogpgcheck oracle-instantclient-odbc-10.2.0.4-1.i386.rpmUna vez instalado vamos a descomprimir instantclient-odbc-linux32-10.2.0.3-20061115.zip por que se hace esto por que la instalación del RPM no actualiza el UnixODBC.
$ unzip instantclient-odbc-linux32-10.2.0.3-20061115.zipAhora moveremos todos (*) los archivos de la carpeta descomprimida al directorio donde deben de estar /lib si les pregunta que ya existe alguno y si queremos reemplazar digiten (s)
$ mv /instantclient_10_2/* /usr/lib/oracle/10.2.0.4/client/lib/.luego nos vamos a ubicar en ese directorio para crear un enlace simbolico.
$ cd /usr/lib/oracle/10.2.0.4/client/lib/ $ ln -s libsqora.so.10.1 libsqora.so $ mv libsqora.so /usr/libpor ultimo necesitamos actualizar nuestro UnixODBC. con el script odbc_update_ini.sh, hay que darle permisos de ejecución y luego ejecutarlo.
$ chmod u+x /usr/lib/oracle/10.2.0/client/lib/odbc_update_ini.sh $ /usr/share/oracle/10.2.0.4/client/odbc_update_ini.sh /para estar seguros de que la actualización se llevo acabo vamos a editar el contenido del archivo /etc/odbcinst.ini
$vi /etc/odbcinst.initendras que modificar solo la parte de oracle10g como se muestra en la imagen.
Una vez hecho esto tenemos que ir a modificar un DSN que se creo en nuestro home a la hora de actualizar el UnixODBC
$ vi /root/.odbc.iniy lo dejamos como se ve en la imagen; en este caso yo intento conectar a mi server XE de mi tnsnames con el usuario HR.
es hora de pasarle los datos anteriores corregidos al /ect/odbc.ini
$ cat /root/.odbc.ini >> /etc/odbc.inilo que que estamos haciendo es crear un DSN de sistema pasandoselo al /etc/odbc.ini por que el anterior el que esta en el home es un DSN de usuario, observemos visualmente como se ve con el ODBCConfig y con el DataManager.
Observan la imagen 2 DSN con el mismo nombre OracleDSN pero uno de sistema y otro de usuario. vamos a hacerle clic al OracleDSN de sistema para ver sus tablas y otros objetos que pueda tener, y nos pedira como se ve en la imagen el nombre de usuario y password.
Una vez logueado nos muestra el arbol de objetos que contiene ese usuario. entonces la prueba odbc ha sido un exito.
que no me creen aun. bueno vamos a mostrarles ahora modo consola usando isql syntaxis isql [-modo][DSN][USER][PWD]
$ isql -v OracleDSN HR oracleCasi la mayoria estara diciendo pero yo necesito un analizador de consultas que sea rapido y que me permita hacer muchas mas cosas que el SQLPlus y que funcione en Linux, por que ojo yo en Windows tengo "Toad For Oracle" o "Embarcadero" ok pueden usar ExecuteQuery
QUE PACIENCIA DE TRABAJAR EN TODO ESTO PARA PODER AYUDAR A OTRAS PERSONAS SIEMPRE SUPE LA PERSONA QUE ERAS DESDE UN INICIO TE FELICITO
ResponderBorrarSuperahacker eres lo maximo para explixarnos, todo este tema. Ninguna en la red, explica tan bien como vos. Un abrazo muchas gracias.
ResponderBorrargogo
Buenas
ResponderBorrarEstoy tratando de instalar el Oracle XE y me sale esto
sudo rpm -iv oracle-xe-univ-10.2.0.1-1.0.i386.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing...
error: Failed dependencies:
glibc >= 2.3.2 is needed by oracle-xe-univ-10.2.0.1-1.0.i386
libaio >= 0.3.96 is needed by oracle-xe-univ-10.2.0.1-1.0.i386
/bin/sh is needed by oracle-xe-univ-10.2.0.1-1.0.i386
al tratar de bajar las dependencias con yum me dice
No existe disponible ningún paquete
Me pueden ayudar, gracias!