Oracle publicó el material de las charlas dadas en el reciente Oracle Open World, con acceso libre y gratuito.
Entre tantos temas interesantes que se presentan todos los años, quiero resaltar la presentación "Oracle Optimizer: Best Practices for Managing Optimizer Statistics" dada por integrantes del grupo de desarrollo del optimizador de Oracle. Ellos además publican artículos muy interesantes en su Blog: http://blogs.oracle.com/optimizer
En esta charla se explican muchos detalles técnicos, entre ellos el uso y gestión de histogramas, donde se menciona el parámetro oculto _optim_peek_user_binds para enfrentar los problemas de bind peeking que ocurren en 10g.
Este último es un problema muy conocido y con muchas referencias.
Una muy didáctica, y con una interesante discusión posterior es esta de Alex del Pythian Group.
Descuento que en el próximo Oracle OpenWorld Latin America en San Pablo vamos a tener la posibilidad de ver oradores muy buenos también, como ocurrió el año pasado.
Un saludo.
Nota 19/12/2011: actualicé el título de la entrada para reflejar mejor el contenido, ya que del OOW hablo en la siguiente entrada.
miércoles, 26 de octubre de 2011
lunes, 5 de septiembre de 2011
11.2 XE es producción
El post anterior vino sin saber que la versión final se iba a publicar en pocos días.
Así que viene bien validar si sigue siendo un problema el reinicio.
Para no complicar la prueba, desinstalo la versión 11.2 beta y hago una instalación nueva:
Ni este mensaje ni el manual de instalación dice explícitamente que los 2048 Mb de swap tienen que estar libres.
Reviso si ese es el problema:
El método fácil de liberar el swap usado es deshabilitar y habilitar el área de swap.
Esto se puede hacer siempre que haya memoria RAM disponible. Sino, hay que agregar un archivo, usando dd/mkswap/swapon.
Ahora sí, repetimos la instalación:
Configuramos, otra vez sin elegir inicio automático.
Mirando el código de /etc/rc.status, el mensaje de error parece inofensivo, así que continúo como si no estuviera.
Valido si quedó levantada, y su configuración de inicio:
Ok, todo en orden y misma configuración que antes.
Funciona ahora el script de reinicio aunque hayamos elegido que no se inicie de forma automática?
Esta vez sí funciona.
Ahora hay que empezar a usarla en serio para ver todos los chiches nuevos!.
Así que viene bien validar si sigue siendo un problema el reinicio.
Para no complicar la prueba, desinstalo la versión 11.2 beta y hago una instalación nueva:
oraculo:~ # rpm -qa | grep oracle
oracle-xe-11.2.0-0.5.x86_64
oraculo:~ # rpm -e oracle-xe-11.2.0-1.0.x86_64
oraculo:~ # unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
Archive: oracle-xe-11.2.0-1.0.x86_64.rpm.zip
creating: Disk1/
creating: Disk1/upgrade/
inflating: Disk1/upgrade/gen_inst.sql
creating: Disk1/response/
inflating: Disk1/response/xe.rsp
inflating: Disk1/oracle-xe-11.2.0-1.0.x86_64.rpm
oraculo:~ # mv Disk1/* /local/soft/oracle/xe-112
oraculo:~ # cd /local/soft/oracle/xe-112
oraculo:/local/soft/oracle/xe-112 # rpm -Uvh oracle-xe-11.2.0-1.0.x86_64.rpm
Preparing... ########################################### [100%]
This system does not meet the minimum requirements for swap space. Based on
the amount of physical memory available on the system, Oracle Database 11g
Express Edition requires 2048 MB of swap space. This system has 1799 MB
of swap space. Configure more swap space on the system and retry the
installation.
error: %pre(oracle-xe-11.2.0-1.0.x86_64) scriptlet failed, exit status 1
error: install: %pre scriptlet failed (2), skipping oracle-xe-11.2.0-1.0
Ni este mensaje ni el manual de instalación dice explícitamente que los 2048 Mb de swap tienen que estar libres.
Reviso si ese es el problema:
oraculo:/local/soft/oracle/xe-112 # free
total used free shared buffers cached
Mem: 4048624 3653880 394744 0 27340 1556616
-/+ buffers/cache: 2069924 1978700
Swap: 2104476 262172 1842304
El método fácil de liberar el swap usado es deshabilitar y habilitar el área de swap.
Esto se puede hacer siempre que haya memoria RAM disponible. Sino, hay que agregar un archivo, usando dd/mkswap/swapon.
oraculo:/local/soft/oracle/xe-112 # swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2104476 1176 -1
oraculo:/local/soft/oracle/xe-112 # swapoff /dev/sda5
oraculo:/local/soft/oracle/xe-112 # swapon /dev/sda5
oraculo:/local/soft/oracle/xe-112 # free
total used free shared buffers cached
Mem: 4048624 3872168 176456 0 38672 1576076
-/+ buffers/cache: 2257420 1791204
Swap: 2104476 0 2104476
Ahora sí, repetimos la instalación:
oraculo:/local/soft/oracle/xe-112 # rpm -Uvh oracle-xe-11.2.0-1.0.x86_64.rpm
Preparing... ########################################### [100%]
1:oracle-xe ########################################### [100%]
Executing post-install steps...
You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.
Configuramos, otra vez sin elegir inicio automático.
oraculo:/local/soft/oracle/xe-112 # /etc/init.d/oracle-xe configure
Oracle Database 11g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 11g Express
Edition. The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts. Pressto accept the defaults.
Ctrl-C will abort.
Specify the HTTP port that will be used for Oracle Application Express [8080]:
Specify a port that will be used for the database listener [1521]:
Specify a password to be used for database accounts. Note that the same
password will be used for SYS and SYSTEM. Oracle recommends the use of
different passwords for each database account. This can be done after
initial configuration:
Confirm the password:
Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:n
Starting Oracle Net Listener...Done
/etc/rc.status: line 70: test: 46 113: integer expression expected
Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.
Mirando el código de /etc/rc.status, el mensaje de error parece inofensivo, así que continúo como si no estuviera.
Valido si quedó levantada, y su configuración de inicio:
oraculo:/local/soft/oracle/xe-112 # ps -eaf | grep pmon
oracle 10758 1 0 16:41 ? 00:00:00 xe_pmon_XE
root 11720 8148 0 20:18 pts/1 00:00:00 grep pmon
oraculo:/local/soft/oracle/xe-112 # grep XE /etc/oratab
XE:/u01/app/oracle/product/11.2.0/xe:N
oraculo:/local/soft/oracle/xe-112 # grep DBENABLED /etc/sysconfig/oracle-xe
# ORACLE_DBENABLED:'true' means to load the Database at system boot.
ORACLE_DBENABLED=false
Ok, todo en orden y misma configuración que antes.
Funciona ahora el script de reinicio aunque hayamos elegido que no se inicie de forma automática?
oraculo:/local/soft/oracle/xe-112 # service oracle-xe stop
Shutting down Oracle Database 11g Express Edition instance.
Stopping Oracle Net Listener.
oraculo:/local/soft/oracle/xe-112 # ps -eaf | grep pmon
root 11860 8148 0 20:19 pts/1 00:00:00 grep pmon
Esta vez sí funciona.
Ahora hay que empezar a usarla en serio para ver todos los chiches nuevos!.
sábado, 27 de agosto de 2011
Usando la última versión de Oracle XE (11.2)
Oracle ofrece una edición gratiuta de la base de datos, llamada XE, que tiene algunos límites respecto a la versión comercial.
Desde Abril está disponible la última versión, 11.2 en beta y sólo para linux 64 bits o windows 32 bits.
En esta versión, los límites de recursos que puede utilizar son:
La instalación en Opensuse 11.4 es simple.
En mi caso, ya tenía una instalación de oracle anterior y por lo tanto ya estaba creado el usuario oracle en el sistema operativo, instalados los paquetes necesarios y ajustados los parámetros del kernel.
En una instalación nueva sin estos, son unos pasos más siguiendo el manual, o usando el paquete orarun.
Hecha la introducción, me interesa comentar algo que encontré y no está tan claro: para bajar la base, el script provisto funciona sólo si está configurado el inicio autómatico. Sino, debe bajarse manualmente.
En mi instalación, respondí que no quería inicio automático de la base al momento de la configuración:
Una vez que está funcionando..
..cuando intentamos bajarla, no lo hace:
Revisando el código de /etc/init.d/oracle-xe se puede ver a partir de la línea 644 que la bajada depende de la configuración escrita en /etc/sysconfig/oracle-xe ($CONFIGURATION):
Comprobamos que entramos en el segundo if ($ORACLE_DBENABLED):
La solución simple es bajarla manualmente, y no olvidarse de bajar el listener.
Sino, habilitar el inicio automático:
Desde Abril está disponible la última versión, 11.2 en beta y sólo para linux 64 bits o windows 32 bits.
En esta versión, los límites de recursos que puede utilizar son:
- una sola instancia
- una CPU
- 11 GB de datos de usuario
- 1 GB RAM
La instalación en Opensuse 11.4 es simple.
oraculo:/local/soft/oracle/oracle-xe # rpm -Uvh oracle-xe-11.2.0-0.5.x86_64.rpm
Preparing... ########################################### [100%]
1:oracle-xe ########################################### [100%]
Executing post-install steps...
You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.
En mi caso, ya tenía una instalación de oracle anterior y por lo tanto ya estaba creado el usuario oracle en el sistema operativo, instalados los paquetes necesarios y ajustados los parámetros del kernel.
En una instalación nueva sin estos, son unos pasos más siguiendo el manual, o usando el paquete orarun.
Hecha la introducción, me interesa comentar algo que encontré y no está tan claro: para bajar la base, el script provisto funciona sólo si está configurado el inicio autómatico. Sino, debe bajarse manualmente.
En mi instalación, respondí que no quería inicio automático de la base al momento de la configuración:
oraculo:/local/soft/oracle/oracle-xe # /etc/init.d/oracle-xe configure
Oracle Database 11g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 11g Express
Edition. The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts. Pressto accept the defaults.
Ctrl-C will abort.
Specify the HTTP port that will be used for Oracle Application Express [8080]:
Specify a port that will be used for the database listener [1521]:
Specify a password to be used for database accounts. Note that the same
password will be used for SYS and SYSTEM. Oracle recommends the use of
different passwords for each database account. This can be done after
initial configuration:
Confirm the password:
Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:n
Starting Oracle Net Listener...Done
Configuring database...Done
Starting Oracle Database 11g Express Edition instance...Done
Installation completed successfully.
Una vez que está funcionando..
oraculo:/local/soft/oracle/oracle-xe # ps -eaf | grep XE | grep pmon
oracle 7663 1 0 01:50 ? 00:00:09 xe_pmon_XE
oracle@oraculo:/u01/app/oracle/product/11.2.0/xe/bin> sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Beta on Sun Aug 28 13:14:36 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Beta
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Beta
PL/SQL Release 11.2.0.2.0 - Beta
CORE 11.2.0.2.0 Production
TNS for Linux: Version 11.2.0.2.0 - Beta
NLSRTL Version 11.2.0.2.0 - Production
..cuando intentamos bajarla, no lo hace:
oraculo:/local/soft/oracle/oracle-xe # service oracle-xe stop
oraculo:/local/soft/oracle/oracle-xe # ps -eaf | grep XE | grep pmon
oracle 7663 1 0 01:50 ? 00:00:09 xe_pmon_XE
Revisando el código de /etc/init.d/oracle-xe se puede ver a partir de la línea 644 que la bajada depende de la configuración escrita en /etc/sysconfig/oracle-xe ($CONFIGURATION):
stop)
if test -f "$CONFIGURATION"
then
if test "$ORACLE_DBENABLED" != "true"
then
exit 0
fi
else
echo "Oracle Database 11g Express Edition is not configured. You must run
'/etc/init.d/oracle-xe configure' as the root user to configure the database."
exit 0
fi
stop
;;
Comprobamos que entramos en el segundo if ($ORACLE_DBENABLED):
oraculo:> grep DBENABLED /etc/sysconfig/oracle-xe
# ORACLE_DBENABLED:'true' means to load the Database at system boot.
ORACLE_DBENABLED=false
La solución simple es bajarla manualmente, y no olvidarse de bajar el listener.
Sino, habilitar el inicio automático:
oraculo: # service oracle-xe enable
oraculo:> grep DBENABLED /etc/sysconfig/oracle-xe
# ORACLE_DBENABLED:'true' means to load the Database at system boot.
ORACLE_DBENABLED=true
oraculo: # service oracle-xe stop
Shutting down Oracle Database 11g Express Edition instance.
Stopping Oracle Net Listener.
oraculo: # ps -eaf | grep XE
root 22607 7011 0 13:00 pts/0 00:00:00 grep XE
Suscribirse a:
Entradas (Atom)