viernes, 15 de mayo de 2009
VB 6 y Cursores De Oracle
un ejemplo muy sencillo la conexion a la base de datos desde visual basic abre en promedio 2 a 4 cursores segun he podido probar.
El problema se presenta cuando usamos muchos recorset sin cerrarlos , podemos hacer una simetría de un rs = un cursor de oracle.
Cuando actualizamos los datos no se abre ningún cursor ya que son consultas que no devuelven registros.
Podemos ver los cursores abiertos con la vista v$open_cursor
select count(*) , user_name
from v$open_cursor
group by user_name
notar que hay cursores que abre oracle para actualizar las estadísticas de la tabla y mas , osea por mas que nosotros abramos 3 cursores desde vb en la vista pueden aparecer 6 o 7 que son propios de oracle.
Muchas veces podemos ver que nos aparece la siguiente advertencia
Current Open Cursors Count
son las cantidad de cursores que tenemos abiertos , esto depende del tamaño de nuestra sga , normalmente podemos usar para calcular el tamaño de la shared_pool viendo la cantidad de cursores abiertos cuando la base esta a full , pero no dejar también de ver la aplicación porque una aplicación mal desarrollada lleva a los dba a a hacer sucesivos ajustes a la bd que por ahí tocando solo la aplicación los problemas se resuelven.
fuente : http://support.microsoft.com/kb/183639/es
jueves, 14 de mayo de 2009
ORACLE 10G R2 + UBUNTU 8.10 + UBUNTU 9.04 + UBUNTU 9.10
BAJAMOS ESTE ARCHIVO | ||
10201_database_linux32.zip |
Instalar esta paqueteria
apt-get install gcc libaio1 lesstif2 lesstif2-dev make rpm libc6 libstdc++5 binutils
libmotif3
como root crea las siguientes enlaces simbolicos:
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /usr/bin/basename /bin/basename
Ahora editar el archivo /etc/sysctl.conf y añade o modifica estas líneas:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
luego
/sbin/sysctl -p
Editamos el fichero /etc/security/limits.conf para modificar estos valores:
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
Añade lo siguiente a /etc/pam.d/login:
session required /lib/security/pam_limits.so
pam_limits.so es el módulo que procesa la configuración del fichero /etc/security/limits.conf que cambiamos antes.
Crear usuario oracle
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/groupadd nobody
/usr/sbin/useradd -c "oracle" -g oinstall -G dba oracle
/usr/sbin/useradd -g nobody nobody
# cambiamos el password del usuario oracle
passwd oracle
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
mkdir -p /home/oracle
chown -R oracle:oinstal /home/oracle
conectate como usuario oracle y añade esto al fichero /home/oracle/.bash_profile:
umask 022
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=SID_TU_BASE; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_OWNER=oracle; export ORACLE_OWNER
#TNS_ADMIN=/home/oracle/config/10.1.0 export TNS_ADMIN
NLS_LANG=SPANISH_SPAIN.WE8ISO8859P1; export NLS_LANG
#ORA_NLS10=${ORACLE_HOME}/db_1/nls/data; export ORA_NLS10
CLASSPATH=${CLASSPATH}:${ORACLE_HOME}/jdbc/lib/classes12.zip
LD_LIBRARY_PATH=${ORACLE_HOME}/lib; export LD_LIBRARY_PATH
DISABLE_HUGETLBFS=1; export DISABLE_HUGETLBFS
TEMP=/tmp; export TEMP
TMPDIR=/tmp; export TMP
PATH=$PATH:/u01/app/oracle/product/10.2.0/db_1/bin; export PATH
Crea tambien estos directorios:
mkdir /var/lock/subsys
entramos a la parte grafica como usuario oracle y ejecutamos esto
./runInstaller -ignoreSysPreReqs
para 7.1 :
Espero que les sirva. saludos!!