• a m o x + b l o g s
  • Instalar Oracle 10G R2 en Mac OS X

    Después de que sólo estuvo disponible para versión server del sistema operativo y para equipos con procesadores PPC, no hace mucho Oracle por fin puso a disposición la versión 10G R2 de la base de datos para equipos con procesador intel, para versiones 10.5 y superiores del sistema operativo. Si bien tiene sus limitaciones (no RAC, no iSQLPlus, Applications Server, entre otros), para efectos de pruebas, ayuda en tanto que evita tener que requerir de una máquina virtual.

    La instalación está bien documentada y no hay mayor problema con ello, más si me ví cauto en modificar algunos parámetros del sistema operativo, así como corroborar que el acceso a la bd por otros usuarios no oracle debe ser mediante el uso de un alias de tnsnames y no de manera local (bequeath).

    Sólo como observación, esta instalación es para pruebas únicamente, y puede no seguir recomendaciones de seguiridad, por lo que para su para un sistema en producción, consultar con su DBA.

    Información

    Prerequisitos

    • Sistema Operativo: Mac OS X 10.5.4 o Superior
    • Procesador: Intel, 32 o 64 bits
    • Software Adicional: Xcode, disponible en los medios de instalación del sistema operativo, o bien en el sitio de apple.
    • Espacio en Disco: Unos 5 Gb en total, incluyendo sw de instalación
    • Memoria: 1 Gb Mínimo, ideal de 2 Gb para arriba. Yo uso 4 y sin impacto alguno en desempeño

    Creación de Usuarios y grupos

    Si se tiene instalado la versión server del sistema operativa, existe una herramienta gráfica, más ocupo la versión estándar así que hay que utilizar línea de comandos. Primero que nada hay que abrir una nueva sesión de la terminal y hacer un sudo para un nuevo shell, de tal manera que estemos con el usuario root y podamos llevar a cabo tareas administrativas así como otras al finalizar la instalación. Será necesario proporcionar la contraseña del usuario administrador.

    sudo sh
    Password:
    
    Ahora, teclear lo siguiente para crear los grupos oinstall, dba y el usuario oracle, al final, establecemos contraseña para el usuario. La penúltima línea evita mostrar el nombre de usuario en la pantalla de login:
    dscl . -create /groups/oinstall
    dscl . -append /groups/oinstall gid 4200
    dscl . -append /groups/oinstall passwd "*"
    
    dscl . -create /groups/dba
    dscl . -append /groups/dba gid 4201
    dscl . -append /groups/dba passwd "*"
    
    dscl . -create /users/oracle
    dscl . -append /users/oracle uid 4200
    dscl . -append /users/oracle gid 4200
    dscl . -append /Groups/dba GroupMembership oracle
    dscl . -append /users/oracle shell /bin/bash
    dscl . -append /users/oracle home /Users/oracle
    dscl . -append /users/oracle realname "Oracle software owner"
    dscl . -append /Groups/dba GroupMembership oracle
    mkdir /Users/oracle
    chown oracle:oinstall /Users/oracle
    defaults write /Library/Preferences/com.apple.loginwindow HiddenUsersList -array-add oracle
    passwd oracle
    

    Para validar que todo quedó de acuerdo a lo esperado, teclear id oracle, lo cual debe mostrar algo como lo siguiente:

    uid=502(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
    

    Parámetros del Kernel

    Para el correcto funcionamiento del software de oracle, será necesario modificar algunos parámetros del kernel. Dado que son varios, y algunos requieren reinstalación, se listan aquí sólo los que son necesarios, así como algunos adicionales a establecer en la sesión del usuario. Estos, probados en una Mac Book Pro intel de 2da generación.

    Crear o editar el archivo /etc/sysctl.conf con los siguientes parámetros:

    kern.sysv.shmall=2097152
    kern.sysv.shmmni=4096
    kern.maxproc=1024
    kern.maxprocperuid=512
    

    Abrir otra ventana de terminal e iniciar sesión con el usuario oracle, crear el archivo .bash_profile y agregar las siguientes líneas:

    # Must match kern.maxprocperuid
    ulimit -Hu 266
    ulimit -Su 266
    # Must match kern.maxfilesperproc
    ulimit -Hn 10240
    ulimit -Sn 10240
    # Evitar fallas en la creación de la BD
    ulimit -s 32000
    

    Crear directorios para instalación

    Para utilizar la estructura existente en el sistema operativo Mac y una de las sugerencias de Oracle para la instalación, se crearán los directorios bajo /opt, esto en la sesión de root.

    mkdir /opt/oracle
    mkdir /opt/oraInventory
    chown oracle:oinstall /opt/oraInventory/
    chown oracle:oinstall /opt/oracle/
    chmod 775 /opt/oracle
    chmod 775 /opt/oraInventory
    

    Preparar la instalación

    En la sesión de oracle, agregar lo siguiente al archivo .bash_profile. Modificar el

    ORACLE_SID
    al que deseen utilizar
    umask 022
    ORACLE_BASE=/opt/oracle
    ORACLE_SID=mbp
    ORACLE_HOME=/opt/oracle/oracle/product/10.2.0/db_1
    DYLD_LIBRARY_PATH=$ORACLE_HOME/lib
    ORACLE_HOSTAME=localhost
    TNS_ADMIN=$ORACLE_HOME/network/admin
    export ORACLE_BASE ORACLE_SID ORACLE_HOME DYLD_LIBRARY_PATH ORACLE_HOSTNAME TNS_ADMIN
    PATH=$PATH:$ORACLE_HOME/bin
    

    Teclear lo siguiente para establecer las variables:

    . ./.bash_profile
    

    Y validar que existan utilizando echo.

    Establecer la variable DISPLAY:

    export DISPLAY=:0.0
    

    Iniciar la instalación

    Cambiarse al directorio donde se bajó el software, folder Disk1. Desde ahí teclear lo siguiente:

    ./runInstaller
    

    Esto iniciará una ventana gráfica con el wizard de instalación. Utilizar la instalación típica y cambiar la información sólo si se desea:

    • Oracle Home Location: /opt/oracle/oracle/product/10.2.0/db_1
    • Installation Type: Enterprise Edition
    • UNIX DBA Group: dba
    • Create Starter Database: Seleccionado
    • Global Database Name: Igual que el valor para $ORACLE_SID
    • Database Password: Password para system y sys

    De aquí para adelante, seguir las instrucciones. Al final se creará la bd de ejemplo, donde algunas cuentas estándar estarán bloqueadar (scott, hr, ...). Seleccionar el botón Password Management sí se desean activar en este momento.

    Subir y bajar la base de datos

    Con el usuario oracle, conectarse a sqlplus de la siguiente manera y utilizar startup/shutdown para iniciar y dar de baja la base de datos:

    sqlplus /nolog
    sql> conn / as sysdba
    sql> startup
    sql> shutdown
    

    Asegurar conectividad con otros usuarios del sistema operativo

    Ya para efectos de trabajar con la base, y no tener que utilizar el usuario oracle, se requieren algunos pasos adicionales, considerando que no es posible hacer una conexión local (bequeath), y ésta debe hacerse vía tcp.

    Primero, en la base de datos, modificar el parámetro local_listener, en este caso, para escuchar por el puerto 10521. Hecho esto, por si las dudas subir y bajar la bd para que tome el parámetro.

    alter system set local_listener='(address=(protocol=TCP)(host=localhost)(port=10521))' ;
    alter system register ;
    

    Ahora, desde sistema operativo, hay que subir el listener:

    lsnrctl start
    

    Crear o editar el archivo tnsnames.ora:

    vi $TNS_ADMIN/tnsnames.ora
    

    Para agregar el alias a la bd, utilizando el SID definido para la instalación:

    mbp =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 10521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = mbp)
        )
      )
    

    Verificar acceso con otros usuarios

    Logearse con el usuario con que se desea conectarse a oracle y teclear lo siguiente para ver la definición del .bash_profile de oracle y copiar lo que se muestre. Posteriormente editar el .bash_profile del usuario y agregar las líneas copiadas.

    more /Users/oracle/.bash_profile

    Validar que funciona la conectividad:

    sqlplus /nolog
    sql> conn system@mbp
    

    De así desearlo, agregar el usuario al grupo dba, para no requerir proporcionar los passwords de sys y system:

    dscl . -append /Groups/dba GroupMembership usuario
    

    4 comments:

    Anonymous said...

    Hola, como puedes instalar sobre opt si no se puede lanzar el instalador como root ni con sudo

    Gracias

    am0x said...

    Antes de iniciar la instalación, crea con root el subdirectorio sobre opt y modifícale los permisos.

    Carl said...

    Hola yo tengo instalado oracle en snow leopard y funciona de maravilla, hace migraciones y todo tipo de administración, ahora he querido instalarlo en el macbook de un amigo, una vez instalado desde sql developer no me conecta. Creo que he seguido todo los pasos pero no hay manera. Mi pregunta es ¿con esta instalación que haces funciona sin problemas en snow leopard? pues yo tuve que hacer mas modificaciones cuando segui un blog en inglés

    am0x said...

    No he actualizado a snow leopard aún, así que no podría decirte si funciona de la misma manera.
    Habría que diagnosticar primero desde sqlplus, sobretodo por que no funciona como una instalación local, hay que declarar el alias en el tnsnames para conectarse.
    Del sqldeveloper, sobretodo por la cuestión de que utiliza jdbc para la conexión habría que probar utilizando el service_name en lugar del SID

    Post a Comment

    No spam