Mostrando entradas con la etiqueta Oracle. Mostrar todas las entradas
Mostrando entradas con la etiqueta Oracle. Mostrar todas las entradas

jueves, 8 de agosto de 2024

Instalacion RAC ORacle 19c ++ en Linux

Pre-Requisitos Basicos
--Storage --
/u01 de 100GB
5 discos de 10 GB cada uno para los Vote+OCR
2 discos de 100 GB para la BD de metada del Rac- Colocar en redundancia NORMAL al crear el diskgroup
N Cantidad de Discos para +DATA y +FRA
/tmp 30 GB almenos
---------------------------------------
--Networking
2 Ip en segmento publico
2 Ip en un segmento privado aislado solo para el RAC
3 Ip en el segmento publico para el DNS
2 Ip en el segmento publico para las Vip

Se debe crear y asignar en el Dns la resolucion de nombre del Scan: 
Ejemplo: scan-prod:

[oracle@dbserver01 ~]$ nslookup scan-prod
Server:         10.10.1.140
Address:        10.10.1.140#53

Name:   scan-prod.local.db
Address: 10.129.2.82
Name:   scan-prod.local.db
Address: 10.129.2.83
Name:   scan-prod.local.db
Address: 10.129.2.81
---------------------------------------


Deshabilitar SElinux
vi /etc/selinux/config   --- colocar en disable

Deshablitar Firewall
service firewalld stop
service firewalld disable

Creacion de Grupos de S.O.
groupadd oinstall -g 501
groupadd dba -g 502
groupadd oper -g 503
groupadd backupdba -g 504
groupadd dgdba -g 505
groupadd kmdba -g 506
groupadd asmadmin -g 507
groupadd asmdba -g 508
groupadd asmoper -g 509

Creacion de usuarios de S.O.

--------- where the installation owner is grid and the OSASM group asmadmin -------------------
useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
useradd -u 502 -g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba oracle



Directorios para los binarios:
mkdir -p /u01/app/19.0.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/



Editar archivos etc/hosts en los servidores:
--- IP PUBLICAS ---
10.129.2.72    server01
10.129.2.73    server02
--- IP PRIVADAS --
10.10.10.1    server01-priv
10.10.10.2   server02-priv
-- IP VIPS --
10.129.2.77    server01-vip
10.129.2.78    server02-vip
Nota no agregar el Servicio para el Scan #  Servicio scan: cl-scan-ip : 10.129.2.90, 10.129.2.91, 10.129.2.92




Configurar Interfaces de RED
#nmtui 
#nm-connection-editor 





export CV_ASSUME_DISTID=OEL7.8



[root@dsib0252]# cd /usr/bin
[root@dsib0252 bin]# mv scp scp.orig
[root@dsib0252 bin]# echo "/usr/bin/scp.orig -T \$*" > /usr/bin/scp
[root@dsib0252 bin]# chmod 555 /usr/bin/scp
[root@dsib0252 bin]# cat scp
/usr/bin/scp.orig -T $*


viernes, 17 de marzo de 2017

ORA-27140, ORA-27300, ORA-27301, ORA-27302, ORA-27303

Si al tratar de logearte en la consola Sqlplus obtienes un error similar a este


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

ERROR:
ORA-27140: attach to post/wait facility failed
ORA-27300: OS system dependent operation:invalid_egid failed with status: 1
ORA-27301: OS failure message: Operation not permitted
ORA-27302: failure occurred at: skgpwinit6
ORA-27303: additional information: startup egid = 500 (oracle), current egid =
501 (oinstall)

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

Es conveniente que revises los permisos del archivo oracle ubicado en $ORACLE_HOME/bin
-------------
# ls -la /u01/app/oracle/product/11.2.0/db/bin/oracle
-rwsr-s--x. 1 oracle oracle   239626683 mar 15 14:45 oracle
-------------

Verifica que el grupo sea el correcto. Es posible que durante una operacion de swichover los permisos del archivo hayan cambiando y eso no te permite logearte. 
Como root cambia el grupo y problema resuelto

# chown oracle:oinstall oracle


Realizar un switchover en DataGuard

Realizar un cambio de Rol en ambiente DataGuard o switchover

En el siguiente video les mostrare como debe comportarse las BD al realizar un switchover. Visualizando los alert_log de cada BD podemos observar los cambios en cada instancia.


Al finalizar el proceso de cambio de rol la nueva Bd Standby no subio de forma automatica, pero no se preocupen. No es nada grave, solo conectarse y subirla manual. 

miércoles, 15 de marzo de 2017

Guia Rapida para Crear y configurar Discos para ASM

Esta es una guia sencilla para crear y configurar discos para usarlos en ASM.

Debemos instalar el paquete para manejar ASM

# yum install oracleasm-support oracleasmlib oracleasm-`uname -r`

como Root Nos ubicamos en el directorio:
/etc/init.d/
y ejecutamos

# ./oracleasm configure

Asumimos que el servidor ya tiene los discos instalados y sin formato ni particion. Para este ejemplo tenemos creados 6 discos de 2GB c/u


# fdisk -l | grep 2147
Disk /dev/sda: 21.5 GB, 21474836480 bytes
Disk /dev/sdc: 2147 MB, 2147483648 bytes
Disk /dev/sdd: 2147 MB, 2147483648 bytes
Disk /dev/sde: 2147 MB, 2147483648 bytes
Disk /dev/sdf: 2147 MB, 2147483648 bytes
Disk /dev/sdg: 2147 MB, 2147483648 bytes
Disk /dev/sdh: 2147 MB, 2147483648 bytes

Ahora vamos aproceder a particionar todos los discos

# fdisk /dev/sdc
# fdisk /dev/sdd
# fdisk /dev/sde
# fdisk /dev/sdf
# fdisk /dev/sdg
# fdisk /dev/sdh


Ahora verificamos que se haya creado correctamente la particion en cada disco

# fdisk -l | grep /dev/sd
Disk /dev/sda: 21.5 GB, 21474836480 bytes
/dev/sda1   *           1        2611    20970496   83  Linux
Disk /dev/sdb: 31.1 GB, 31138512896 bytes
/dev/sdb1               1         638     5120000   82  Linux swap / Solaris
/dev/sdb2             638        3786    25287680   83  Linux
Disk /dev/sdc: 2147 MB, 2147483648 bytes
/dev/sdc1               1         261     2096451   83  Linux
Disk /dev/sdd: 2147 MB, 2147483648 bytes
/dev/sdd1               1         261     2096451   83  Linux
Disk /dev/sde: 2147 MB, 2147483648 bytes
/dev/sde1               1         261     2096451   83  Linux
Disk /dev/sdg: 2147 MB, 2147483648 bytes
/dev/sdg1               1         261     2096451   83  Linux
Disk /dev/sdh: 2147 MB, 2147483648 bytes
/dev/sdh1               1         261     2096451   83  Linux
Disk /dev/sdf: 2147 MB, 2147483648 bytes
/dev/sdf1               1         261     2096451   83  Linux

Ahora vamos a crear un disco visible para ASM con cada una de esas particiones

# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...

# oracleasm createdisk DATA01 /dev/sdc1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA02 /dev/sdd1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA03 /dev/sde1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA04 /dev/sdf1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk FRA01 /dev/sdg1
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk FRA02 /dev/sdh1
Writing disk header: done
Instantiating disk: done

Ahora verificamos nuestros discos

# oracleasm listdisks
DATA01
DATA02
DATA03
DATA04
FRA01
FRA02

Listo ! ya estan visibles para la instalacion de software




jueves, 15 de enero de 2015

DBMS_NETWORK_ACL_ADMIN

Install Package DBMS_NETWORK_ACL_ADMIN

Aplica para 11.2.0.1 y posteriores

The DBMS_NETWORK_ACL_ADMIN package is installed when the XDB component is being installed. To install XDB follow the procedure outlined in  Note 1292089.1 - Master Note for Oracle XML Database (XDB) Installation.

If XDB is already installed but the ACL package is not available and a reinstall of XDB is not possible then the only way to install the DBMS_NETWORK_ACL_ADMIN package is to run the 

*nacl scripts: 


sqlplus / as sysdba 

*********************************
RUN

 /rdbms/admin/catnacl.sql 
 /rdbms/admin/dbmsnacl.sql
 /rdbms/admin/prvtnacl.plb
*********************************

martes, 13 de mayo de 2014

Tabla Particionada Dinamica

Estas tablas con particiones que van generándose segun la necesidad las podemos crear a partir de Oracle 11g. El siguiente script crea una tabla particionada por el campo FECHA con particiones mensuales a partir del 01/01/2013

 CREATE TABLE EVENT_LOG(

  calldate         DATE,
  clid             VARCHAR2(80),
  email            VARCHAR2(50),
  descrip          VARCHAR2(100),
  rate_seg         NUMBER,
  costo_llamada_bs NUMBER,
  fecha            DATE default sysdate
 )
 PARTITION BY RANGE (fecha) INTERVAL (NUMTOYMINTERVAL(1,'MONTH'))
 (PARTITION P1 VALUES LESS THAN (TO_DATE('2013-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS')));

lunes, 7 de abril de 2014

Error on Install OBIEE

Durante la Instalacion de Oracle Business Intelligence 11.x.x.x me encontre un error bastante molesto, ya que pensaba que las medias se habian descargado corruptas o durante la transferencia a los servers se habian dañado de alguna forma.

Durante la instalacion de software se presenta el siguiente error


"Enter the disk with label Oracle Fusion Middleware Business Intelligence 11g and disk number 4 or browse to the location containing the files for the disk, then press"


Cuando descomprimo los .zip descargados de la pagina de oracle solo existen las carpetas

Disk1/
Disk2/
Disk3/



Como se puede observar solo existen las opciones para descargar 3 Discos. 

La solucion?? no descargar de esa pagina sino del centro de descargas:
https://edelivery.oracle.com/

Alli encontraran las medias restantes y otros packs de Software



lunes, 30 de septiembre de 2013

Deadlock detected

ORA-00060 Deadlock detected

De vez en cuando puede pasar que dos sesiones que se pisen se bloqueen al intentar hacer cambios en los mismos datos (a nivel de registro o a nivel de tabla). En sistemas no concurrentes y/o bien diseñados no tiene por que pasar ya que las aplicaciones suelen estar mínimamente pensadas para evitarlo; o en todo caso en pruebas pre-producción ya se detecta y se corrige. El caso es que incluso aunque se planee evitarlos se pueden producir. En la mayoría de casos se resuelven solitos al acabar de realizar los cambios la sesión bloqueante, incluso ni nos daremos cuenta. En otros casos más infrecuentes se producen bloqueos circulares irresolubles, “deadlocks”, donde se acaba haciendo rollback de una transacción y se genera una entrada en el fichero de alerta:
ORA-00060: Deadlock detected. More info in file /opt/oracle/admin/XXX/udump/XXX_ora_28205.trc
Si consultamos el fichero de traza encontraremos información más detallada: sesiones involucradas, objeto, registro, consulta que lo provoca, etc... Aquí incluyo algunas partes de un fichero de ejemplo. En la primera parte del fichero vemos que sesión sufrirá el rollback(marcada en negrita) y más abajo vemos el bloqueo circular (donde la 1706 espera a la 1693 y viceversa):

------------------------------------------------------------------------------------------------------------
*** ACTION NAME:() 2011-01-27 08:07:36.110
*** MODULE NAME:(Servicio.exe) 2011-01-27 08:07:36.110
*** SERVICE NAME:(SYS$USERS) 2011-01-27 08:07:36.110
*** SESSION ID:(1693.30703) 2011-01-27 08:07:36.110
DEADLOCK DETECTED ( ORA-00060 )
[Transaction Deadlock]
The following deadlock is not an ORACLE error. It is a
deadlock due to user error in the design of an application
or from issuing incorrect ad-hoc SQL. The following
information may aid in determining the deadlock:
Deadlock graph:
                       ---------Blocker(s)--------  ---------Waiter(s)---------
Resource Name          process session holds waits  process session holds waits
TX-00090022-00173f07        82    1693     X             21    1706           X
TX-00030014-0013a2dd        21    1706     X             82    1693           X
Rows waited on:
Session 1706: obj - rowid = 0000CF1C - AAAM8cAA5AAACX+AAF
  (dictionary objn - 53020, file - 57, block - 9726, slot - 5)
Session 1693: obj - rowid = 0000CF1C - AAAM8cAA5AAACX+AAI
  (dictionary objn - 53020, file - 57, block - 9726, slot - 8)
------------------------------------------------------------------------------------------------------------


Con esta información también podemos saber exactamente que objetos y registro/s es el origen de la disputa. Si es algo que se repite de forma cíclica podemos ayudar al responsable de la aplicación dandole más datos (además de las consultas) para que lo resuelva. Para saber que registro de que tabla:
Convertimos a decimal el obj que se indica al final en hex (0000CF1C->53020)
Obtenemos el nombre del objeto del diccionario de datos:

     SELECT owner, object_name, object_type FROM dba_objects WHERE object_id = 53020;
Consultamos la tabla obtenida buscando el registro por el rowid:
    SELECT * FROM tabla WHERE rowid=’AAAM8cAA5AAACX+AAF’’

Un poco más abajo del fichero también se puede ver que consultas han provocado el deadlock y otra información como la cantidad de “waits” de la session en cuestión etc...
Todo esto me hace gracia comentarlo porque a veces desarrolladores mal acostumbrados nos piden que comprobemos si existen bloqueos entre usuarios porque tienen algo que no va tan rápido como siempre. En contraposición también tenemos a usuarios muy impacientes, que cierran a saco sus aplicaciones... Si a ti te pillan en horario, te vienen a preguntar, lo miras sin renegar, miras si existe y si la sessión bloqueante sigue trabajando... Si es el caso y hay que esperar, ¿que le dices? La primera vez le explicas de que va el tema, la segunda vez se lo recuerdas y la tercera que se vaya a tomar un café...

fuente: http://www.dataprix.com/blogs/il-masacratore/ora10g-ora-00060-deadlock-detected

Aqui coloco un link para convertir Decimal, binario y Hexadecimal:
http://www.disfrutalasmatematicas.com/numeros/binario-decimal-hexadecimal-conversor.html

martes, 26 de febrero de 2013

Comandos Utiles de S.O.

Comandos de monitoreo del S.O.



  • #ps -fu oracle
  • Listado de los procesos pertenecientes al usuario oracle
  • #ps -ef 
  • Listado completo de los procesos actuales
  • #sysctl -p 
  • Carga los parámetros del Kernel definidos en /etc/sysctl.conf
  • #sysctl -a 
  • Lista de los parámetros actuales del kernel.
  • #lsof -p  
  • Listado de los ficheros actualmente en uso por un proceso PID
  • #lsof -u oracle 
  • Listado de los ficheros actualmente en uso por el usuario oracle
  • #free -tlos 10 -c 15
  • Lista cada 10 segundos y 15 iteraciones el uso de la memoria (física y swap).

viernes, 9 de julio de 2010

Tirandose y Creando el Repositio del EM

En caso de tener problemas para iniciar el EM, y haber intentado muchas posibles soluciones y este dando un error como este:

Stopping Oracle Enterprise Manager 11g Database Control ...
--- Failed to shutdown DBConsole Gracefully --- failed.

Podemos intentar recrear todo el Enterprise Manager sin afectar el funcionamiento de nuestra querida BD.


1.- BORRAR EL REPOSITORIO DEL ENTERPRISE MANAGER

# emca -deconfig dbcontrol db -repos drop


2.- BORRAR EL USUARIO SYSMAN CON TODO LO QUE EL TIENE
# Drop user sysman cascade;
# drop user dbsnmp cascade;
# Drop role mgmt_user;
# drop user mgmt_view cascade;
# drop public synonym mgmt_target_blackouts;


3.- EJECUTAR LOS SIGUIENES SCRIPTS
# catsnmp.sql !!# SCRIPT PARA RECREAR EL USUARIO dbsnmp #
# catalog.sql
# catproc.sql
# utlrp.sql

# select object_name, object_type, status, last_ddl_time from dba_objects where owner='SYS' and object_name='DBMS_REGISTRY_SYS';
En caso de que el query anterior muestre un objeto invalido
# prvtcr.plb !!# SCRIPT para recompilar el paquete SYS.DBMS_REGISTRY_SYS


4.- CREAR EL REPOSITORIO DEL ENTERPRISE MANAGER
# emca -config dbcontrol db -repos create
Este comando nos solicitara:
4.1- SID de la DB
4.2- Puerto del Listener
4.3- Password del usuario SYS, SYSMAN Y DBSNMP
4.3- Ruta de ORACLE_HOME (opcional)
4.3- Dos correos de notificacion (opcional)

jueves, 18 de marzo de 2010

Instalacion Oracle 11g en Solaris 10












Instalando Oracle 11.2.0.1.0 en Solaris 10
En 10 Simples pasos :)

0. Como ROOT ejecutar los pasos del 1 al 6


1.crear los grupos
# groupadd oinstall
# groupadd oracle
# groupadd dba


2. Crear el usuario y su carpeta
# useradd -u2009 -d /export/home/oracle -m -g oinstall -G dba oracle


3. Establecer la contraseña
# passwd oracle

4. Agrear el usuario a bash
# usermod -s /bin/bash oracle

5. Verificar que los siguientes paquetes (o una version mas reciente este intalada) esten instalados, de faltar alguno instalar.
# pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot SUNWsprox SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt

6. En Solaris 10 es necesario crear un proyecto para los parametros del kernel. El proyecto de se crea de la siguiente forma:

# projadd -U oracle -K "project.max-shm-memory=(priv,5GB,deny)" user.oracle
# projmod -sK "project.max-sem-nsems=(priv,256,deny)" user.oracle
# projmod -sK "project.max-sem-ids=(priv,100,deny)" user.oracle
# projmod -sK "project.max-shm-ids=(priv,100,deny)" user.oracle

Si quieres cambiar el semaforo del maximo SGA
# projmod -sK "project.max-shm-memory=(priv,8000000000,deny)" user.oracle

Con la Primera instruccion asignamos un maximo de 5GB para la SGA, esto quiere decir que nuestra instancia nunca podra superar los 5GB de SGA

Verificar los parámetros del proyecto con el comando projects -l

# projects -l

7. Editar el profile del usuario oracle, para configurar las variables
# vi /export/home/oracle/.profile

-------Agregar las siguientes lineas ----------
# VARIABLES ORACLE
ORACLE_BASE=/export/home/oracle; export ORACLE_BASE
#ORACLE_HOME=/export/home/oracle/product/11.2.0/dbhome_1; export ORACLE_HOME
# nombre de la instancia
ORACLE_SID=XXX; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_OWNER=oracle; export ORACLE_OWNER

------- Si no se tienen setedas las variables java agregar estas lineas (ojo editarlas para coloar la direccion correctamente)-------
# VARIABLES JAVA
J2RE_HOME=/export/home/oracle/java/jdk1.6.0_18; export J2RE_HOME
JAVA_HOME=/export/home/oracle/java/jdk1.6.0_18; export JAVA_HOME
JAVA_BIN=/export/home/oracle/java/jdk1.6.0_18/bin; export JAVA_BIN
PATH=/export/home/oracle/java/jdk1.6.0_18/bin:$PATH; export PATH

8. Recargar el .profile
# . ~/.profile

9. Descomprimir los archivos de instalacion de Oracle


10. Iniciar la Instalacion Grafica
Si se esta en el servidor ejecutar el instalador grafico
# sh export/home/oracle/database/./runInstaller

Si la instalacion se esta haciendo de forma remota, conectarse desde una maquina en linux y ejecutar el siguiente ssh
# ssh -X -l oracle xxx.xxx.xxx.xxx
luego de logearse ejecutar el instalador grafico
# sh export/home/oracle/database/./runInstaller

domingo, 20 de septiembre de 2009

Configuracion Listener Dinamico

El listener dinamico lo utilizamos para esconder el nombre de la instancia, o utilizar un SERVICE_NAME diferente en los clientes al SERVICE_NAME en nuestra BD

Primiero modificaremos algunos parametros de la BD
# ALTER SYSTEM SET SERVICE_NAMES = SERVICIO_1;
# ALTER SYSTEM SET INSTANCE_NAME =ORCL;
#ALTER SYSTEM SET LOCAL_LISTENER =LISTENER_2;

El parametro LOCAL_LISTENER sera el nombre de listener que se va a crear


Luego abrimos para editar los archivos tnsnames.ora y listener.ora

---***** EN EL TNSNAMES *****---
Agregamos las siguientes lineas al final del archivo

LISTENER_2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521))
  )
---------
---***** EN EL LISTENER*****---
Agregamos las siguientes lineas al final del archivo

LISTENER_2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = I´P)(PORT = 1521))
  )
SID_LIST_LISTENER_2 =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = acseldes)
      (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_2)
      (SID_NAME = clone)
    )
  )
---------

Guardamos los cambios en los archivos, iniciamos los servicios de la instancia y luego nos vamos a la herramienta del listener.

LSNRCTL> set current_listener LISTENER_2
LSNRCTL> START

luego ejecutamos:
LSNRCTL> STAT

con este comando verificamos que los servicios del listener se esten ejecutando correctamente.



Si todo esta correcto los clientes se podran conectar a la BD usando algun cliente y especificando el parametro HOST como el
IDENTIFICADOR que definimos en el TNSNAMES

viernes, 3 de julio de 2009

Instalacion Oracle 10.2.0 en Ubuntu 9.04


Instalando Oracle 10.2.0 en Ubuntu 9.04


1.-
Se deben crear los siguientes grupos para la instalacion y manejo de la BD: oinstall (Grupo principal de la instalacion), oracle, dba (grupos secundarios a los que debe pertenecer el usuario que manejara e instalara oracle)


Creamos los grupos con el siguiente comando en una consola:

groupadd oinstall
groupadd oracle
groupadd dba

Para crear el usuario junto con sus carpetas y asignarlo a los grupos ejecutar el siguiente comando como root:

useradd USUARIO -u2009 -d /home/USUARIO -m -g oinstall -G dba,oracle

/** EXPLICACION: **/
El parametro useradd creara un usuario con nombre USUARIO
El parametro -u debe ser un identificador unico para cada usuario
El parametro -d indicara la ruta de la carpeta que pertecece la usuario
El parametro -m forzamos a la creacion de la carpeta y los archivos referentes al usuario
El parametro -g indica al grupo principal al que pertece el usuario
El parametro -G indica los grupos secundarios a los que va a pertecer el usuario, podemos agregar todos lo que se necesiten separdos por coma (,)

/*************************************************/

2.- Una vez creado el usuario tenemos que asignarle una clave, para ello ejecutamos el siguiente comando como root:

passwd USUARIO

Cuando se ejecute el comando sera solicitada dos veces la contraseña para el USUARIO. Si queremos cambiar el shell de usuario ejecutamos lo siguiente:

usermod -s /bin/bash USUARIO


/*************************************************/

3.- Se deben instalar los siguientes paquetes:

sudo apt-get install gcc
sudo apt-get install libaio1
sudo apt-get install lesstif2
sudo apt-get install lesstif-dev
sudo apt-get install make
sudo apt-get install rpm
sudo apt-get install libc6
sudo apt-get install libstdc++5
sudo apt-get install binutils
sudo apt-get install libmotif

Nota: Se deben terner instalados eso paquetes para que la instancia de oracle funcione correctamente


/*************************************************/


4.- Configurando las variables de entorno en el profile.
Para ejecutar oracle se debe tener instalado java. Si ya tienes instalado java y hecho los export puedes saltarte este paso, de lo contrario debes descargar e instalar java. descarga la version mas reciente del JDK de la siguiente pagina : http://java.sun.com/javase/downloads/index.jsp Una vez descargado el paquete .deb lo instalas en la carpeta que os parezca mejor y pasamos a configurar las variables java en el profile, para eso vamos a editar el arhivo que se encuentra en la carpeta del usuario ejecutando el siguiente comando

nano /home/USUARIO/.profile

Ese comando nos mostrara un achivo en el cual debemos agregar las siguientes lineas al final para configurar las varibles java:

export J2RE_HOME="/home/USUARIO/java/jdk1.6.0_12"
export JAVA_HOME="/home/USUARIO/java/jdk1.6.0_12"
export JAVA_BIN="/home/USUARIO/java/jdk1.6.0_12/bin"
export PATH="/home/USUARIO/java/jdk1.6.0_12/bin:$PATH"
export CLASSPATH="."


NOTA: Suponiendo que instale el java en la carpeta del usuario /home/USUARIO/java. de lo contrario debes especificar la ruta donde se ha instalado java
Con eso ya tenemos las variables listas en nuestro archivo .profile, ahora agregaremos las variables del entorno oracle. Agregar estas lineas al final del archivo:


export ORACLE_BASE=/home/USUARIO/oracle/product/10.2.0
export ORACLE_HOME=$ORACLE_BASE/db_1
export ORACLE_SID=inst_name
export ORACLE_TERM=xterm
export ORACLE_OWNER=USUARIO
#export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=american_america.WE8ISO8859P1
export ORA_NLS10=${ORACLE_HOME}/db_1/nls/data
export CLASSPATH=${CLASSPATH}:${ORACLE_HOME}/jdbc/lib/classes12.zip
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib
export DISABLE_HUGETLBFS=1
export TEMP=/tmp
export TMPDIR=/tmp
export PATH=$PATH:/home/app/oracle/oracle/product/10.2.0/db_1/bin

NOTAS:
La ruta de la variable ORACLE_BASE (y por tanto ORACLE_HOME, TNS_ADMIN, LD_LIBRARY_PATH) depende de donde quieras que se instale el software es personalizada para cada usuario que desee instalar.
La variable ORACLE_SID es el nombre de la instancia de oracle que estas creando y no debe tener espacios ni mas de 8 caracteres.
La variable NLS_LANG es el idioma que manejara la instancia y BD.
La variable TNS_ADMIN se descomentara luego de la instalacion.
Con esto ya hemos terminado de hacer la configuracion basica del .profile, para salvar los cambios presionamos CTRL+O y para salir CTRL+X.
Para que las variables sean cargadas debes cerrar la sesion e iniciarla nuevamente.


/*************************************************/

5.- Configurando los parametros del kernel (Opcional). Debemos configurar los parametros del kernel para un mejor funcionamiento sin embargo este paso lo podemos obviar y aun asi la instalacion funcionara correctamente.

NOTA: Ubuntu no esta oficialmente soportado para Oracle, sin embargo funciona fino. Los parametros del kernel varian segun el S.O. y la maquina donde esta instalado. Si deseamos realizar una instalacion para un ambiente de produccion o uno muy parecido a este se recomienda tener un S.O. oficialmente soportado por Oracle y revisar la documentacion para los parametros del kernel.

Estos son los valores minimos del kernel y como mostrar el valor actual en nuestro S.O.

Parametro: semmsl
Valor: 250
Comando: sudo more /proc/sys/kernel/sem


Parametro: semmns
Valor: 32000
comando: sudo more /proc/sys/kernel/sem


Parametro: semopm
Valor: 100
Comando: sudo more /proc/sys/kernel/sem


Parametro: semmni
Valor: 128
Comando: sudo more /proc/sys/kernel/sem

Parametro
: shmall
Valor: 2097152
Comando: sudo more /proc/sys/kernel/shmall

Parametro:
shmmax
Valor: Siempre > que la SGA
Comando: sudo more /proc/sys/kernel/shmmax

Parametro:
shmmni
Valor: 4096
Comando: sudo more /proc/sys/kernel/shmmni


Parametro: file-max
Valor: 512 *procesos
Comando: sudo more /proc/sys/fs/file-max


Paramtro: ip_local_port_range
Valores: 1024 65000
Comando: sudo more /proc/sys/net/ipv4/ip_local_port_range


Parametro: rmem_default
Valor: 4194304
Comando:sudo more /proc/sys/net/core/rmem_default


Parametro: wmem_default
Valor:
262144
Comando:
sudo more /proc/sys/net/core/wmem_default

Parametro: rmem_max
Valor:
4194304
Comando:
sudo more /proc/sys/net/core/rmem_max

Parametro:wmem_max
Valor:
262144
Comando:
sudo more /proc/sys/net/core/wme

Si alguno de los parametros no cumple los requisitos pasamos a modificarlo.
Para configurar el kernel editamos el archivo sysctl.conf para ello ejecutamos el siguiente comando:

sudo nano /etc/sysctl.conf


En el archivo editamos (de existir ) las siguientes lineas, sino existen las agregamos al final. Si hay otros parametros del kernel que debamos modificar tambien las agregamos, por ahora estas son las importantes:

kernel.shmall = 2147483648
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536

Luego ejecutamos el siguiente comando para recargar el kernel

sudo sysctl -p


/** EXPLICACION **/
El parametro shmall = Cantidad máxima de memoria compartida disponible
El parametro shmmax es la cantidad maxima de un segmento de memoria compartido que el kernel va a permitir que alguien use de memoria compartida puede ser igual, menor o mayor que la memoria fisica. pero SIEMPRE debe ser mayor que la SGA que asignemos a la instancia de Oracle
El parametro shmmni =Número máximo de segmentos de memoria compartida en todo el sistema
El parametro sem = cada numero separado por un espacio es el valor asigando a subparametros del semaforo
El parametro fs.file-max = Numero maximo de archivos abiertos por el sistema

/*************************************************/

6.- Configurando el Shell del usuario Oracle (opcional) editamos (si existe el archivo limits.conf) sino lo crearemos. Ejecutamos el siguiente comando:

sudo nano /etc/security/limits.conf

Agregamos al final del archivo las siguientes lineas:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

/**EXPLICACION **/
nproc es el maximo numero de procesos en shell
nproc es el maximo numero de archivos abiertos


Ejecutamos el siguiente comando para crear o editar el siguiente archivo:

sudo nano /etc/pam.d/login

Linea que debemos agregar:

session required /lib/security/pam_limits.so


/*************************************************/

7.- Logueate con el usuario oracle

Entra en la carpeta del usuario y ejecuta lo siguienteen una consola:

ls -l

Deberia mostrar algo como esto:

lrwxrwxrwx 1 USUARIO oinstall 26 2009-06-30 14:53 Examples

Lo que nos interesa es que seguido del USUARIO aparezca OINSTALL que es el grupo para la instalacion, si esto no es asi revisa si hiciste correctamente el paso 1

/*************************************************/

8.- Descargar la version de oracle 10 para linux 32 o 64 bits de la siguiente pagina:
http://www.oracle.com/technology/software/products/database/index.html


/*************************************************/
9.-Descomprimir el archivo. Una vez que eso este hecho se crera una carpeta llamada DATABASE alli esta el instalador grafico de oracle. Para descomprimir ejecutamos lo siguiente:

unzip 10201_database_linux32.zip

si se llama de otra forma

unzip como_se_llame.zip

/*************************************************/


10.- Realiza este paso si estas instalando en un servidor remoto, de lo contrario continua al paso siguiente. Habre una consola y escribe el siguiente comando:

ssh -X -l USUARIO ip_del_servidor

USUARIO = Es el usuario que creaste para la instalacion y manejo de oracle
Ip_del_servidor = ip del servidor remoto al cual te estas conectando

Tambien lo puedes usar si tienes varios usuarios en la maquina loca y no quieres cambiar el entorno grafico. Ahora las aplicaciones graficas que ejecutes en el servidor remoto se mostraran en la pantalla que tienes en frente como se supone que ya tienes descomprimido el instalador dirigete a la carpeta DATABASE y una vez alli ejecuta el siguiente comando para que se inicie la instalacion grafica de oracle:

./runInstaller -ignoreSysPreReqs

y listo se iniciara la instalacion grafica


/*************************************************/
11.- Ahora si, finalmente vamos a instalar el software. Como se supone que ya tienes descomprimido el instalador dirigete a la carpeta DATABASE y una vez alli ejecuta el siguiente comando:

./runInstaller -ignoreSysPreReqs

con esto iniciamos la instalacion grafica de oracle

/*************************************************/

12.- Bien una vez instalado oracle y suponiendo que no marcaste la opcion de crear una base de datos por defecto vamos a proceder a crear una instancia y una base datos.

Creando la Instancia:

  • Debemos crear un parameter file para levantar la instancia, el archivo se debe llamar init+nombre_de_la_instancia.ora, en este ejemplo el nombre de la instancia lo definimos en el paso 4 (export ORACLE_SID=inst_name) por lo tanto el arhivo deberia llamarse initinst_name.ora y debe estar en la siguiente ruta $ORACLE_BASE/db_1/dbs/
  • Una vez definido el pfile o parameter file (y haber chequedo que todos los paramtros del archivo estan OK ) ejecutamos el siguiente comando desde una consola:
sqlplus / as sysdba

Deberia indicarnos que nos estamos conectando a una instancia idle

Iniciando la Instancia:

  • Una vez conectado al SQL ejecutamos el siguiente comando:
(Obviamente vas a reemplazar RUTA_DEL_ORACLE_BASE por la ruta del oracle_base y init+instancia.ora por el nombre del pfile que definiste)

startup nomount pfile=RUTA_DEL_ORACLE_BASE/db_1/dbs/init+instancia.ora


Creando la Base de Datos:
  • Abrimos un editor de texto que queramos y creamos el sql que definira la BD
  • Guardamos el achivo en donde nos parezca mejor y con extension .sql
  • Desde la consola que tiene el SQL abierto ejecutamos:
@RUTA_DEL_ARCHIVO_D_CREACION_DB/archivo_crear_BD.sql


Listo ya la BD esta creada, para iniciarla ejecutamos el comando:

alter database mount

NOTA: El nombre de la BD que se coloca en el archivo archivo_crear_BD.sql debe coincidir con el que se encuentra en el parameter file



/*************************************************/
13.- Iniciando los servicios LISTENER
Para que los usuarios puedan comunicarse con la base de datos debemos iniciar el listener para ello ejecutamos desde la consola:

lsnrctl

luego:

start

**o simplemente**

lsnrctl start

con eso iniciamos los servicios de listener, si queremos detenerlo ejecutamos:

lsnrctl stop