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
- Software
- Guía de instalación Oracle
- Quick Install Guide, por Alex Gorbachev
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_SIDal 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:
Hola, como puedes instalar sobre opt si no se puede lanzar el instalador como root ni con sudo
Gracias
Antes de iniciar la instalación, crea con root el subdirectorio sobre opt y modifícale los permisos.
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
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